Untitled

 avatar
unknown
plain_text
3 months ago
19 kB
7
Indexable
#include <YSI_Coding\y_hooks>

	//-------------------------------------------------------------------
	//					Project create by #nDP 						   //
	//					Fb.com/nguyenduyphuong.com  			       //
	//					Copyright by nDP" 							   //
	//-------------------------------------------------------------------

//____________________________________________________________________________//

hook OnPlayerDisconnect(playerid, reason)
{
    if(ChonTaiXiu[playerid] == 1)
    {
        ChonTaiAll--;
        TienCuocTaiAll -= TienCuocTaiXiu[playerid];
        TienCuocTaiXiu[playerid] = 0;
        ChonTaiXiu[playerid] = 0;
    }
	if(ChonTaiXiu[playerid] == 2)
    {
        ChonXiuAll--;
        TienCuocXiuAll -= TienCuocTaiXiu[playerid];
        TienCuocTaiXiu[playerid] = 0;
        ChonTaiXiu[playerid] = 0;
    }
    return 1;
}

hook OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
	if(dialogid == DIALOG_TAIXIU && response == 1) {
		if(listitem == 0) { // Thông tin phiên tài xỉu hiện tại
			thongtin_phienTX(playerid);
			return 1;
		}

		if(listitem == 1) { // Danh sách người đặt cược tài xỉu hiện tại
			showAllPlayerTX(playerid);
			return 1;
		}

		if(listitem == 2) { // Xem lịch sử phiên tài xỉu
			ShowPlayerDialog(playerid, DIALOG_LS_TAIXIU, DIALOG_STYLE_INPUT, "TAI/XIU", "{ffe066}>{FFFFFF} Ban vui long nhap phien tai xiu, ma ban muon xem lai: ", "Xem ngay", "Huy bo");
			return 1;
		}

		if(listitem == 4) { // Đăng ký tài xỉu
			if(khoaDatCuocTX == 1) {
				SendClientMessage(playerid, -1, "{ff0000}[!]{FFFFFF} Thoi gian dat cuoc da het, vui long doi phien tai xiu tiep theo.");
				return 1;
			}
			DangKyTaiXiu(playerid);
			return 1;
		}
		return 1;
	}

	if(dialogid == DIALOG_LS_TAIXIU && response == 1) {
		if(!IsNumeric(inputtext) || strval(inputtext) < 0 || strval(inputtext) > MAX_PHIEN_TAIXIU) {
            SendClientMessage(playerid, -1, "{ff0000}[!]{FFFFFF} Loi, phien tai xiu ban nhap khong hop le.");
            return 1;
        }

        if(strval(inputtext) > Phientaixiu + 1) {
        	new string[1280];
        	format(string, sizeof(string), "{ff0000}[!]{FFFFFF} Phien tai xiu hien tai chi la phien %s, ban khong the nhap phien lon hon.", Phientaixiu);
        	SendClientMessage(playerid, -1, string);
        	return 1;
        }

        if(PlayerInfo[playerid][pAdmin] == 0) {
	        if(tx_countMoney_Tai[strval(inputtext)] == 0 || tx_countMoney_Tai[strval(inputtext)] == 0) {
	        	SendClientMessage(playerid, -1, "{ff0000}[!]{FFFFFF} Phien tai xiu nay khong hoat dong.");
	        	return 1;
	        }
	    }

        HistoryTX(playerid, strval(inputtext));
        return 1;
	}

	if(dialogid == DIALOG_DANGKY_TAIXIU && response == 1) {
		datcuoc_taixiu(playerid, listitem);
		return 1;
	}

	if(dialogid == DIALOG_DATCUOC_TAI && response == 1) 
	{
		if(LockTaiXiu == 1) {
			SendClientMessageEx(playerid, -1, "{ffe066}[!]{FFFFFF} Hien tai he thong tai xiu, chua duoc mo!");
			return 1;
		}

		if(khoaDatCuocTX == 1) {
			SendClientMessage(playerid, -1, "{ff0000}[!]{FFFFFF} Thoi gian dat cuoc da het, vui long doi phien tai xiu tiep theo.");
			return 1;
		}

		if(!IsNumeric(inputtext)) {
            SendClientMessage(playerid, -1, "{ff0000}[!]{FFFFFF} Loi ban khong duoc phep su dung ky tu trong nay.");
            return 1;
        }

        if(strval(inputtext) < MIN_TAIXIU) {
        	new string[1280];
        	format(string, sizeof(string), "{ff0000}[!]{FFFFFF} So tien dat cuoc cua ban khong duoc nho hon %s$.", number_format(MIN_TAIXIU));
        	SendClientMessage(playerid, -1, string);
        	return 1;
        }

        if(strval(inputtext) > MAX_TAIXIU) {
        	new string[1280];
        	format(string, sizeof(string), "{ff0000}[!]{FFFFFF} So tien dat cuoc cua ban khong duoc lon hon %s$.", number_format(MAX_TAIXIU));
        	SendClientMessage(playerid, -1, string);
        	return 1;
        }

        new ChenhLech = TienCuocTaiAll - TienCuocXiuAll;
		if (ChenhLech < 0) {
		    ChenhLech = -ChenhLech; // Đưa về giá trị tuyệt đối
		}

		new Float:TiLeChoPhep = 0.1; // 10% tổng cược
		new GioiHanChenhLech = floatround((TienCuocTaiAll + TienCuocXiuAll) * TiLeChoPhep);

		if (ChenhLech >= GioiHanChenhLech) {
			SendClientMessage(playerid, -1, "{ff0000}[!]{FFFFFF} Hien tai tien cuoc tai qua nhieu so voi xiu ban hien chi co the cuoc xiu !!!.");
		    return 1; // Không cho phép đặt cược nếu chênh lệch quá 10%
		}


        // --------------------------------------------------------------------------
        new tiencuoc = strval(inputtext);
        if(tiencuoc > PlayerInfo[playerid][pCash]) {
        	SendClientMessage(playerid, -1, "{ff0000}[!]{FFFFFF} So tien dat cuoc nay lon hon so tien ban dang co, vui long thu lai.");
        	return 1;
        }

        ChonTaiXiu[playerid] = 1;
        TienCuocTaiXiu[playerid] = tiencuoc;
        PlayerInfo[playerid][pCash] -= tiencuoc;
        ChonTaiAll++;
        TienCuocTaiAll += tiencuoc;
        TimeChonTaiXiu[playerid] = TimeTaiXiu;

        new string[1280];
        format(string,sizeof(string),"{ffe066}>{FFFFFF} Ban da dat cuoc thanh cong %s$ vao {ff0000}Tai{FFFFFF} thanh cong | Phien tai xiu : %d.",number_format(tiencuoc), Phientaixiu);
        SendClientMessageEx(playerid, -1, string);

        if(tiencuoc > TienIdTaiWin)
        {
            IdTaiWin = playerid;
            TienIdTaiWin = tiencuoc;
        }

        new log_taixiu[1280];
        format(log_taixiu,sizeof(log_taixiu),"%s, da dat cuoc %s$ vao Tai o phien tai xiu %d thanh cong.", GetPlayerNameEx(playerid), number_format(tiencuoc), Phientaixiu);
        Log("logs/dangky_taixiu.log", log_taixiu);
        // --------------------------------------------------------------------------
		return 1;
	}


	if(dialogid == DIALOG_DATCUOC_XIU && response == 1) {

		if(LockTaiXiu == 1) {
			SendClientMessageEx(playerid, -1, "{ffe066}[!]{FFFFFF} Hien tai he thong tai xiu, chua duoc mo!");
			return 1;
		}

		if(khoaDatCuocTX == 1) {
			SendClientMessage(playerid, -1, "{ff0000}[!]{FFFFFF} Thoi gian dat cuoc da het, vui long doi phien tai xiu tiep theo.");
			return 1;
		}

		if(!IsNumeric(inputtext)) {
            SendClientMessage(playerid, -1, "{ff0000}[!]{FFFFFF} Loi ban khong duoc phep su dung ky tu trong nay.");
            return 1;
        }

        if(strval(inputtext) < MIN_TAIXIU) {
        	new string[1280];
        	format(string, sizeof(string), "{ff0000}[!]{FFFFFF} So tien dat cuoc cua ban khong duoc nho hon %s$.", number_format(MIN_TAIXIU));
        	SendClientMessage(playerid, -1, string);
        	return 1;
        }

        if(strval(inputtext) > MAX_TAIXIU) {
        	new string[1280];
        	format(string, sizeof(string), "{ff0000}[!]{FFFFFF} So tien dat cuoc cua ban khong duoc lon hon %s$.", number_format(MAX_TAIXIU));
        	SendClientMessage(playerid, -1, string);
        	return 1;
        }

        new ChenhLech = TienCuocTaiAll - TienCuocXiuAll;
		if (ChenhLech < 0) {
		    ChenhLech = -ChenhLech; // Đưa về giá trị tuyệt đối
		}

		new Float:TiLeChoPhep = 0.1; // 10% tổng cược
		new GioiHanChenhLech = floatround((TienCuocTaiAll + TienCuocXiuAll) * TiLeChoPhep);

		if (ChenhLech >= GioiHanChenhLech) {
			SendClientMessage(playerid, -1, "{ff0000}[!]{FFFFFF} Hien tai tien cuoc xiu qua nhieu so voi tai ban hien chi co the cuoc tai !!!.");
		    return 1; // Không cho phép đặt cược nếu chênh lệch quá 10%
		}

        // --------------------------------------------------------------------------
        new tiencuoc = strval(inputtext);
        if(tiencuoc > PlayerInfo[playerid][pCash]) {
        	SendClientMessage(playerid, -1, "{ff0000}[!]{FFFFFF} So tien dat cuoc nay lon hon so tien ban dang co, vui long thu lai.");
        	return 1;
        }

        ChonTaiXiu[playerid] = 2;
        TienCuocTaiXiu[playerid] = tiencuoc;
        PlayerInfo[playerid][pCash] -= tiencuoc;
        ChonXiuAll++;
        TienCuocXiuAll += tiencuoc;
        TimeChonTaiXiu[playerid] = TimeTaiXiu;

        new string[1280];
        format(string,sizeof(string),"{ffe066}>{FFFFFF} Ban da dat cuoc thanh cong %s$ vao {00ff00}Xiu{FFFFFF} thanh cong | Phien tai xiu : %d.",number_format(tiencuoc), Phientaixiu);
        SendClientMessageEx(playerid, -1, string);

        if(tiencuoc > TienIdXiuWin)
        {
            IdXiuWin = playerid;
            TienIdXiuWin = tiencuoc;
        }

        new log_taixiu[1280];
        format(log_taixiu,sizeof(log_taixiu),"%s, da dat cuoc %s$ vao Xiu o phien tai xiu %d thanh cong.", GetPlayerNameEx(playerid), number_format(tiencuoc), Phientaixiu);
        Log("logs/dangky_taixiu.log", log_taixiu);
        // --------------------------------------------------------------------------
		return 1;
	}
	return 1;
}

task eventtaixiu[1000]()
{
	if(LockTaiXiu == 0) 
	{
	    if(TimeTaiXiu > 0) 
		{
		    TimeTaiXiu--;
		    if(TimeTaiXiu == 10) {
		    	khoaDatCuocTX = 1;
		    	new string_tx[1280];
		    	format(string_tx,sizeof(string_tx),"[TAI/XIU] Phien tai xiu #%s, sap dien ra tham gia ngay (( /taixiu ))",number_format(Phientaixiu));
        		SendClientMessageToAll(-1, string_tx);
		    }
		}

		if(TimeTaiXiu <= 0) 
		{
		    new ketqua[32];
		    if(HeThongTaiXiu == 0)
			{
			    new TaiLienTuc = (LichSuTaiXiu[0] == 1 && LichSuTaiXiu[1] == 1);
			    new XiuLienTuc = (LichSuTaiXiu[0] == 2 && LichSuTaiXiu[1] == 2);

			    if (TaiLienTuc)
			    {
			        // Nếu có 2 ván Tài liên tục, tăng tỷ lệ Xỉu
			        KetQuaTaiXiu = (random(100) < 70) ? 2 : 1;
			    }
			    else if (XiuLienTuc)
			    {
			        // Nếu có 2 ván Xỉu liên tục, tăng tỷ lệ Tài
			        KetQuaTaiXiu = (random(100) < 70) ? 1 : 2;
			    }
			    else
			    {
			        // Xác suất bình thường
			        /*switch(random(4))
			        {
			            case 0,2,4: KetQuaTaiXiu = 1;
			            case 1,3: KetQuaTaiXiu = 2;
			        }*/

			        new KetQuaXucXac1 = randomTaixiu(1, 6);
					new KetQuaXucXac2 = randomTaixiu(1, 6);
					new KetQuaXucXac3 = randomTaixiu(1, 6);
					new TongDiem = KetQuaXucXac1 + KetQuaXucXac2 + KetQuaXucXac3;

					if (TongDiem == 3 || TongDiem == 18) {
					    KetQuaTaiXiu = 0; // Trường hợp đặc biệt (nhà cái ăn hết hoặc xử lý riêng)
					} 
					else if (TongDiem >= 4 && TongDiem <= 10) {
					    KetQuaTaiXiu = 2; // Xỉu
					} 
					else {
					    KetQuaTaiXiu = 1; // Tài
					}
			    }

			    // Cập nhật lịch sử ván trước
			    LichSuTaiXiu[2] = LichSuTaiXiu[1];
			    LichSuTaiXiu[1] = LichSuTaiXiu[0];
			    LichSuTaiXiu[0] = KetQuaTaiXiu;
			}
			if(HeThongTaiXiu == 1)
		    {
				KetQuaTaiXiu = 1;
			}
			if(HeThongTaiXiu == 2)
		    {
				KetQuaTaiXiu = 2;
			}
			if(HeThongTaiXiu == 3 && TienCuocTaiAll > TienCuocXiuAll)
		    {
				KetQuaTaiXiu = 1;
			}
			if(HeThongTaiXiu == 3 && TienCuocTaiAll < TienCuocXiuAll)
		    {
				KetQuaTaiXiu = 2;
			}
			if(HeThongTaiXiu == 3 && TienCuocTaiAll == TienCuocXiuAll)
		    {
				new TaiLienTuc = (LichSuTaiXiu[0] == 1 && LichSuTaiXiu[1] == 1);
			    new XiuLienTuc = (LichSuTaiXiu[0] == 2 && LichSuTaiXiu[1] == 2);

			    if (TaiLienTuc)
			    {
			        // Nếu có 2 ván Tài liên tục, tăng tỷ lệ Xỉu
			        KetQuaTaiXiu = (random(100) < 70) ? 2 : 1;
			    }
			    else if (XiuLienTuc)
			    {
			        // Nếu có 2 ván Xỉu liên tục, tăng tỷ lệ Tài
			        KetQuaTaiXiu = (random(100) < 70) ? 1 : 2;
			    }
			    else
			    {
			        // Xác suất bình thường
			        /*switch(random(4))
			        {
			            case 0,2,4: KetQuaTaiXiu = 1;
			            case 1,3: KetQuaTaiXiu = 2;
			        }*/

			        new KetQuaXucXac1 = randomTaixiu(1, 6);
					new KetQuaXucXac2 = randomTaixiu(1, 6);
					new KetQuaXucXac3 = randomTaixiu(1, 6);
					new TongDiem = KetQuaXucXac1 + KetQuaXucXac2 + KetQuaXucXac3;

					if (TongDiem == 3 || TongDiem == 18) {
					    KetQuaTaiXiu = 0; // Trường hợp đặc biệt (nhà cái ăn hết hoặc xử lý riêng)
					} 
					else if (TongDiem >= 4 && TongDiem <= 10) {
					    KetQuaTaiXiu = 2; // Xỉu
					} 
					else {
					    KetQuaTaiXiu = 1; // Tài
					}
			    }

			    // Cập nhật lịch sử ván trước
			    LichSuTaiXiu[2] = LichSuTaiXiu[1];
			    LichSuTaiXiu[1] = LichSuTaiXiu[0];
			    LichSuTaiXiu[0] = KetQuaTaiXiu;
			}
			if(HeThongTaiXiu == 4 && TienCuocTaiAll > TienCuocXiuAll)
		    {
				KetQuaTaiXiu = 2;
			}
			if(HeThongTaiXiu == 4 && TienCuocTaiAll < TienCuocXiuAll)
		    {
				KetQuaTaiXiu = 1;
			}
			if(HeThongTaiXiu == 4 && TienCuocTaiAll == TienCuocXiuAll)
		    {
				new TaiLienTuc = (LichSuTaiXiu[0] == 1 && LichSuTaiXiu[1] == 1);
			    new XiuLienTuc = (LichSuTaiXiu[0] == 2 && LichSuTaiXiu[1] == 2);

			    if (TaiLienTuc)
			    {
			        // Nếu có 2 ván Tài liên tục, tăng tỷ lệ Xỉu
			        KetQuaTaiXiu = (random(100) < 70) ? 2 : 1;
			    }
			    else if (XiuLienTuc)
			    {
			        // Nếu có 2 ván Xỉu liên tục, tăng tỷ lệ Tài
			        KetQuaTaiXiu = (random(100) < 70) ? 1 : 2;
			    }
			    else
			    {
			        // Xác suất bình thường
			        /*switch(random(4))
			        {
			            case 0,2,4: KetQuaTaiXiu = 1;
			            case 1,3: KetQuaTaiXiu = 2;
			        }*/

			        new KetQuaXucXac1 = randomTaixiu(1, 6);
					new KetQuaXucXac2 = randomTaixiu(1, 6);
					new KetQuaXucXac3 = randomTaixiu(1, 6);
					new TongDiem = KetQuaXucXac1 + KetQuaXucXac2 + KetQuaXucXac3;

					if (TongDiem == 3 || TongDiem == 18) {
					    KetQuaTaiXiu = 0; // Trường hợp đặc biệt (nhà cái ăn hết hoặc xử lý riêng)
					} 
					else if (TongDiem >= 4 && TongDiem <= 10) {
					    KetQuaTaiXiu = 2; // Xỉu
					} 
					else {
					    KetQuaTaiXiu = 1; // Tài
					}
				}
			}
			switch(KetQuaTaiXiu)
			{
			    case 1: ketqua = "{ff0000}Tai{ffffff}";
			    case 2: ketqua = "{00ff00}Xiu{ffffff}";
			}
			new totalwealth;
			totalwealth = TienCuocTaiAll + TienCuocXiuAll - TienCuocTraAll;
			
			new taixiucc[1280];
			if(TienCuocTaiAll == 0 && KetQuaTaiXiu == 1)
			{
        		format(taixiucc,sizeof(taixiucc),"[TAI/XIU] Phien #%s ket qua (%s) chien thang. Tong tien cuoc : %s$",number_format(Phientaixiu),ketqua,number_format(totalwealth));
        		SendClientMessageToAll(-1, taixiucc);
			}
			if(TienCuocTaiAll > 0 && KetQuaTaiXiu == 1)
			{
        		format(taixiucc,sizeof(taixiucc),"[TAI/XIU] Phien #%s ket qua (%s) chien thang. Tong tien cuoc : %s$ - (%s %s$)",number_format(Phientaixiu),ketqua,number_format(totalwealth),GetPlayerNameEx(IdTaiWin),number_format(TienIdTaiWin*2));
        		SendClientMessageToAll(-1, taixiucc);
			}
			if(TienCuocXiuAll == 0 && KetQuaTaiXiu == 2)
			{
        		format(taixiucc,sizeof(taixiucc),"[TAI/XIU] Phien #%s ket qua (%s) chien thang. Tong tien cuoc : %s$",number_format(Phientaixiu),ketqua,number_format(totalwealth));
        		SendClientMessageToAll(-1, taixiucc);
			}
			if(TienCuocXiuAll > 0 && KetQuaTaiXiu == 2)
			{
        		format(taixiucc,sizeof(taixiucc),"[TAI/XIU] Phien #%s ket qua (%s) chien thang. Tong tien cuoc : %s$ - (%s %s$)",number_format(Phientaixiu),ketqua,number_format(totalwealth),GetPlayerNameEx(IdXiuWin),number_format(TienIdXiuWin*2));
        		SendClientMessageToAll(-1, taixiucc);
			}

		    foreach(new i: Player)
			{
				if(TimeChonTaiXiu[i] < 10)
				{
				    if(TienCuocTaiXiu[i] > 0)
				    {
				    	new string[1280];
						format(string,sizeof(string),"[TAI/XIU] Ban da duoc tra lai %s$ va bi loai khoi phien tai xiu nay de can bang phien tai xiu", number_format(TienCuocTaiXiu[i]));
	            		SendClientMessageEx(i, -1, string);

	            		SendClientMessageEx(i, -1, "[TAI/XIU] Co gang tham gia som hon de khong bi loai ra nhe");
	            		
	            		PlayerInfo[i][pCash] += TienCuocTaiXiu[i];
	                    TienCuocTraAll = TienCuocTraAll + TienCuocTaiXiu[i];
					}
	            	ChonTaiXiu[i] = 0;
					TimeChonTaiXiu[i] = 0;
					TienCuocTaiXiu[i ]= 0;
				}
				if(TimeChonTaiXiu[i] >= 10)
				{
					if(ChonTaiXiu[i] == KetQuaTaiXiu)
					{  
		            	if(TienCuocTaiXiu[i] > 10000000) {
		            		PlayerInfo[i][pCash] += TienCuocTaiXiu[i]*2;
		            		PlayerInfo[i][pCash] -= floatround((TienCuocTaiXiu[i]*2) * 0.1);

		            		new string[1280];
		            		format(string,sizeof(string),"[TAI/XIU] Chuc mung, ban da chien thang trong phien tai xiu nay va nhan duoc %s$ (Phi : %s$)", number_format(TienCuocTaiXiu[i]*2), number_format(floatround((TienCuocTaiXiu[i]*2) * 0.1)));
		            		SendClientMessage(i, -1, string);
		            	}
		     			else {
		     				PlayerInfo[i][pCash] += TienCuocTaiXiu[i]*2;

		     				new string[1280];
		     				format(string,sizeof(string),"[TAI/XIU] Chuc mung, ban da chien thang trong phien tai xiu nay va nhan duoc %s$",number_format(TienCuocTaiXiu[i]*2));
		            		SendClientMessage(i, -1, string);
		     			}

		            	ChonTaiXiu[i] = 0;
						TimeChonTaiXiu[i] = 0;
						TienCuocTaiXiu[i ]= 0;
					}
					else if(ChonTaiXiu[i] != KetQuaTaiXiu)
					{
		            	if(ChonTaiXiu[i] > 0)
		            	{
		            		SendClientMessageEx(i, -1, "[TAI/XIU] Ban da thua trong phien tai xiu nay, chia buon =]]z");
						}
		            	ChonTaiXiu[i] = 0;
						TimeChonTaiXiu[i] = 0;
						TienCuocTaiXiu[i ]= 0;
					}
				}
			}

			// LỊCH SỬ PHIÊN TÀI XỈU 
			new year, month, day;
			getdate(year, month, day);
			format(tx_Time[Phientaixiu], 1280, "%d/%d/%d - %d:%d:%d", month, day, year, hour, minuite,second);
			tx_countMoney_Tai[Phientaixiu] = TienCuocTaiAll;
			tx_countMoney_Xiu[Phientaixiu] = TienCuocXiuAll;

			format(tx_Ketqua[Phientaixiu], 1280, "%s", ketqua);
			if(KetQuaTaiXiu == 1) {
				format(tx_NguoiWinner[Phientaixiu], 1280, "%s", GetPlayerNameEx(IdTaiWin));
				tx_WinnerMoney[Phientaixiu] = TienIdTaiWin*2;
			}
			else if(KetQuaTaiXiu == 2) {
				format(tx_NguoiWinner[Phientaixiu], 1280, "%s", GetPlayerNameEx(IdXiuWin));
				tx_WinnerMoney[Phientaixiu] = TienIdXiuWin*2;
			}

			// --------------------------------------------

			Phientaixiu++;
			KetQuaTaiXiu = 0;
			TimeTaiXiu = THOIGIAN_TAIXIU;
			ChonTaiAll = 0;
			ChonXiuAll = 0;
			TienCuocTaiAll = 0;
			TienCuocXiuAll = 0;
			IdTaiWin = -1;
			IdXiuWin = -1;
			TienIdTaiWin = -1;
			TienIdXiuWin = -1;
			TienCuocTraAll = 0;
			khoaDatCuocTX = 0;
		}
	}
	return 1;
}
Editor is loading...
Leave a Comment