iScreen
Дата: Вторник, 15.07.2014, 12:51 | Сообщение # 1
Боец
Сообщений: 57
Статус: Offline
Привет всем, с вами iScreen. Сегодня я объясню вам работу системы "Кости" на проекте Samp RolePlay. Многие говорят, то что существуют тактики и так далее... Сама система казино очень проста и состоит из: TextDraw'оф - картинок на которые вы кликаете. Функция которая генерирует число называемая random Выгядит она так. Код
new vip = random(11)+1; // Там самая функция которая генерирует число. format(str,sizeof(str),"В общей сумме на двух кубиках выпало %d",vip); // Текст который показывает сколько у вас выпало.
И из таймера который ведет счет времени, тех самых 30 секунд. И функции GivePlayerMoney, которая забирает или прибавляет вам деньги. Все очень просто... Я не думаю, что бы основали замудрялись над "тактиками". Так как они и так ленивые)) Всем спасибо, с вами был iScreen. Кому нужна система костей,она под спойлером. Система под спойлером! А теперь FileScript's смотрите код сами, никаких тактик.
Код
#include <a_samp> #include <a_players> #include <a_deamx> #define FILESCRIPT #define DIALOG_CRP (931) #define DIALOG_PAY (932) #define MIN_IGROKOV (1) #define MIN_STAVKA (1000) #define MAX_STAVKA (5000000) #define EXIT_DIALOG (933) #pragma tabsize 0 new TimeStavka[8] = 0; new Text:KostiBox[8], Text:TableName[8], Text:KostiInfo[8], Text:KostiGameInfo[8], Text:KostiKeyExit, Text:KostiKeyDone, Text:KostiKeyStavka; new Float:StolCoor[8][3] ={ {2251.41, 1608.66, 1005.67}, {2251.46, 1618.77, 1005.67}, {2259.99, 1618.89, 1005.67}, {2260.06, 1608.79, 1005.67}, {2253.55, 1588.27, 1005.67}, {2271.43, 1590.14, 1005.67}, {2253.76, 1599.95, 1005.67}, {2271.59, 1600.08, 1005.67} }; new pickup; enum Stol { Gamer[5], Stavka, Bank, Crupe, Igrokov, GameStart } new StolInfo[8][Stol]; main() { print("\n---------------------------------------"); print("iScreen and Rex Dobermann special Cheat-Master.Ru\n"); print("Только рандом!\n"); print("---------------------------------------\n"); } public OnFilterScriptInit() { AntiDeAMX(); new tabname[16]; SetGameModeText("Samp-Rp.Ru"); for(new i; i< sizeof(StolCoor);i++) { StolInfo[i][Crupe] = INVALID_PLAYER_ID; for(new h;h<5;h++){ StolInfo[i][Gamer][h] = INVALID_PLAYER_ID;} StolInfo[i][GameStart] = 0; //---------------------------------------- KostiBox[i] = TextDrawCreate(550,160,"~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~"); TextDrawUseBox(KostiBox[i],1); TextDrawTextSize(KostiBox[i],100.0,100.0); TextDrawBoxColor(KostiBox[i],0x00000045); TextDrawAlignment(KostiBox[i],2); format(tabname,sizeof(tabname),"Table %d",i+1); TableName[i] = TextDrawCreate(550,160,tabname); TextDrawFont(TableName[i],0); TextDrawLetterSize(TableName[i],0.500,1.200); TextDrawSetProportional(TableName[i],1); TextDrawColor(TableName[i],0x007fffFF); TextDrawSetOutline(TableName[i],1); TextDrawAlignment(TableName[i],2); KostiInfo[i] = TextDrawCreate(505,180,"1.--___________________--~n~2.--___________________--~n~3.--___________________--~n~4.--___________________--~n~5.-- ___________________--~n~"); TextDrawFont(KostiInfo[i],1); TextDrawLetterSize(KostiInfo[i],0.210,0.78); TextDrawSetProportional(KostiInfo[i],1); TextDrawColor(KostiInfo[i],0xFFFFFFFF); TextDrawSetOutline(KostiInfo[i],0); TextDrawSetShadow(KostiInfo[i],0); KostiGameInfo[i] = TextDrawCreate(505,230,"~w~Bet:_~r~N/A~n~~w~Bank:_~r~N/A"); TextDrawFont(KostiGameInfo[i],1); TextDrawLetterSize(KostiGameInfo[i],0.250,1.20); TextDrawSetProportional(KostiGameInfo[i],1); TextDrawColor(KostiGameInfo[i],0xFFFFFFFF); TextDrawSetOutline(KostiGameInfo[i],0); TextDrawSetShadow(KostiGameInfo[i],0); } KostiKeyStavka = TextDrawCreate(550,263,"SET BET"); TextDrawFont(KostiKeyStavka,1); TextDrawLetterSize(KostiKeyStavka,0.400,1.40); TextDrawSetProportional(KostiKeyStavka,1); TextDrawColor(KostiKeyStavka,0xFFFFFFFF); TextDrawSetOutline(KostiKeyStavka,1); TextDrawSetShadow(KostiKeyStavka,0); TextDrawAlignment(KostiKeyStavka,2); TextDrawUseBox(KostiKeyStavka,1); TextDrawTextSize(KostiKeyStavka,10,70); TextDrawBoxColor(KostiKeyStavka,0x80808077); TextDrawSetSelectable(KostiKeyStavka,1); KostiKeyDone = TextDrawCreate(550,283,"DICE"); TextDrawFont(KostiKeyDone,1); TextDrawLetterSize(KostiKeyDone,0.400,1.40); TextDrawSetProportional(KostiKeyDone,1); TextDrawColor(KostiKeyDone,0xFFFFFFFF); TextDrawSetOutline(KostiKeyDone,1); TextDrawSetShadow(KostiKeyDone,0); TextDrawAlignment(KostiKeyDone,2); TextDrawUseBox(KostiKeyDone,1); TextDrawTextSize(KostiKeyDone,10,70); TextDrawBoxColor(KostiKeyDone,0x80808077); TextDrawSetSelectable(KostiKeyDone,1); KostiKeyExit = TextDrawCreate(550,303,"EXIT"); TextDrawFont(KostiKeyExit,1); TextDrawLetterSize(KostiKeyExit,0.400,1.40); TextDrawSetProportional(KostiKeyExit,1); TextDrawColor(KostiKeyExit,0xFFFFFFFF); TextDrawSetOutline(KostiKeyExit,1); TextDrawSetShadow(KostiKeyExit,0); TextDrawAlignment(KostiKeyExit,2); TextDrawUseBox(KostiKeyExit,1); TextDrawTextSize(KostiKeyExit,10,70); TextDrawBoxColor(KostiKeyExit,0x80808077); TextDrawSetSelectable(KostiKeyExit,1); //------------------------------ new str[144]; for(new i;i<sizeof(StolCoor);i++) { format(str,sizeof(str),"{ffcc00}[Игра Кости]\n{03c03c}Игровой стол #%d\nНажмите {ffffff} 'ENTER'{03c03c} для начала игры",i+1); CreateObject(1824,StolCoor[i][0],StolCoor[i][1],StolCoor[i][2],0,0,0); Create3DTextLabel(str,0xFFFFFFFF,StolCoor[i][0],StolCoor[i][1],StolCoor[i][2]+1.5,10.0,0); } pickup = CreatePickup(1275,2,2271.0493,1637.6260,1008.3594); SetTimer("Secund",1000,1); } public OnPlayerConnect(playerid) { SetPVarInt(playerid,"GameStol",-1); SetPVarInt(playerid,"Ochki",88); RemoveBuildingForPlayer(playerid, 2786, 2273.4609, 1596.4766, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2786, 2268.7188, 1596.4688, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2786, 2273.4609, 1589.7969, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2786, 2268.7188, 1589.7969, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2786, 2263.6563, 1589.7969, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2786, 2258.2578, 1589.7969, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2786, 2253.2344, 1589.7969, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2786, 2263.6563, 1596.4844, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2786, 2258.2578, 1596.4766, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2786, 2253.2344, 1596.4844, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2786, 2254.1797, 1596.4844, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2786, 2259.2188, 1596.4844, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2786, 2264.6250, 1596.4844, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2786, 2269.6719, 1596.4844, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2786, 2274.4063, 1596.4844, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2786, 2274.4063, 1589.7891, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2786, 2269.6563, 1589.7891, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2786, 2264.6094, 1589.7891, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2786, 2259.1875, 1589.7969, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2786, 2254.1563, 1589.7969, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 14621, 2204.4766, 1601.9922, 1010.6406, 0.25); RemoveBuildingForPlayer(playerid, 1895, 2252.0313, 1584.4219, 1007.1094, 0.25); RemoveBuildingForPlayer(playerid, 1895, 2261.6328, 1584.4297, 1007.1094, 0.25); RemoveBuildingForPlayer(playerid, 2785, 2264.6094, 1589.7891, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2785, 2263.6563, 1589.7969, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2785, 2258.2578, 1589.7969, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2785, 2253.2344, 1589.7969, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2785, 2259.1875, 1589.7969, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2785, 2254.1563, 1589.7969, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2785, 2258.2578, 1596.4766, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2785, 2263.6563, 1596.4844, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2785, 2253.2344, 1596.4844, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2785, 2254.1797, 1596.4844, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2785, 2259.2188, 1596.4844, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2785, 2264.6250, 1596.4844, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 1836, 2253.1250, 1609.6406, 1006.0000, 0.25); RemoveBuildingForPlayer(playerid, 2325, 2255.1563, 1609.6016, 1006.7656, 0.25); RemoveBuildingForPlayer(playerid, 1836, 2257.2422, 1609.6406, 1006.0000, 0.25); RemoveBuildingForPlayer(playerid, 2784, 2255.2109, 1609.8750, 1006.4922, 0.25); RemoveBuildingForPlayer(playerid, 1837, 2253.1016, 1610.1172, 1006.0000, 0.25); RemoveBuildingForPlayer(playerid, 1837, 2257.2500, 1610.1172, 1006.0000, 0.25); RemoveBuildingForPlayer(playerid, 2325, 2255.1875, 1610.1250, 1006.7656, 0.25); RemoveBuildingForPlayer(playerid, 1837, 2253.1016, 1614.1641, 1006.0000, 0.25); RemoveBuildingForPlayer(playerid, 1836, 2253.1250, 1613.6875, 1006.0000, 0.25); RemoveBuildingForPlayer(playerid, 2325, 2255.1563, 1613.6484, 1006.7656, 0.25); RemoveBuildingForPlayer(playerid, 1837, 2257.2500, 1614.1641, 1006.0000, 0.25); RemoveBuildingForPlayer(playerid, 1836, 2257.2422, 1613.6875, 1006.0000, 0.25); RemoveBuildingForPlayer(playerid, 2325, 2255.1875, 1614.1719, 1006.7656, 0.25); RemoveBuildingForPlayer(playerid, 2784, 2255.2109, 1613.9141, 1006.4922, 0.25); RemoveBuildingForPlayer(playerid, 1836, 2253.1250, 1617.5781, 1006.0000, 0.25); RemoveBuildingForPlayer(playerid, 1836, 2257.2422, 1617.5781, 1006.0000, 0.25); RemoveBuildingForPlayer(playerid, 2325, 2255.1563, 1617.5469, 1006.7656, 0.25); RemoveBuildingForPlayer(playerid, 2784, 2255.2109, 1617.8125, 1006.4922, 0.25); RemoveBuildingForPlayer(playerid, 1837, 2253.1016, 1618.0547, 1006.0000, 0.25); RemoveBuildingForPlayer(playerid, 1837, 2257.2500, 1618.0547, 1006.0000, 0.25); RemoveBuildingForPlayer(playerid, 2325, 2255.1875, 1618.0703, 1006.7656, 0.25); RemoveBuildingForPlayer(playerid, 1895, 2271.7266, 1584.4219, 1007.1094, 0.25); RemoveBuildingForPlayer(playerid, 2785, 2268.7188, 1589.7969, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2785, 2269.6563, 1589.7891, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2785, 2268.7188, 1596.4688, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2785, 2269.6719, 1596.4844, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 1837, 2269.2578, 1604.5938, 1006.0000, 0.25); RemoveBuildingForPlayer(playerid, 1836, 2269.7344, 1604.6172, 1006.0000, 0.25); RemoveBuildingForPlayer(playerid, 2325, 2269.7734, 1606.6484, 1006.7656, 0.25); RemoveBuildingForPlayer(playerid, 1837, 2269.2578, 1608.7422, 1006.0000, 0.25); RemoveBuildingForPlayer(playerid, 2325, 2269.2500, 1606.6797, 1006.7656, 0.25); RemoveBuildingForPlayer(playerid, 1836, 2269.7344, 1608.7344, 1006.0000, 0.25); RemoveBuildingForPlayer(playerid, 2784, 2269.5078, 1606.7031, 1006.4922, 0.25); RemoveBuildingForPlayer(playerid, 2785, 2273.4609, 1589.7969, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2785, 2274.4063, 1589.7891, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2785, 2273.4609, 1596.4766, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2785, 2274.4063, 1596.4844, 1006.0156, 0.25); RemoveBuildingForPlayer(playerid, 2325, 2273.2969, 1606.6797, 1006.7656, 0.25); RemoveBuildingForPlayer(playerid, 1837, 2273.3047, 1604.5938, 1006.0000, 0.25); RemoveBuildingForPlayer(playerid, 1837, 2273.3047, 1608.7422, 1006.0000, 0.25); RemoveBuildingForPlayer(playerid, 2784, 2273.5469, 1606.7031, 1006.4922, 0.25); RemoveBuildingForPlayer(playerid, 2325, 2273.8203, 1606.6484, 1006.7656, 0.25); RemoveBuildingForPlayer(playerid, 1836, 2273.7813, 1604.6172, 1006.0000, 0.25); RemoveBuildingForPlayer(playerid, 1836, 2273.7813, 1608.7344, 1006.0000, 0.25); return 1; } public OnPlayerUpdate(playerid) { new s = GetPVarInt(playerid,"GameStol"); if(IsPlayerNearStol(playerid) != -1 && s == -1) GameTextForPlayer(playerid,"~g~PRESS ENTER",1300,4); if(GetPVarInt(playerid,"GameStol") != -1) SelectTextDraw(playerid,0x4169e1FF); return 1; } //---------------------------------------------------------- stock IsPlayerNearStol(playerid) { for(new i;i<sizeof(StolCoor);i++) { if(GetPlayerDistanceFromPoint(playerid,StolCoor[i][0],StolCoor[i][1],StolCoor[i][2]) < 4.0) return i; } return -1; } public OnPlayerCommandText(playerid,cmdtext[]) { if(strcmp(cmdtext,"/test",false) == 0) { SetPlayerPos(playerid,2271.4404, 1632.8517, 1007.8111); SetPlayerInterior(playerid,1); GivePlayerMoney(playerid,500000); SendClientMessage(playerid,0xFF0000,"Вы телепортированы в Казино. Тут проходит тестирование системы {ffffff}\"Кости\" "); } if(strcmp(cmdtext,"/stopgame",false) == 0) { new stolid = GetPVarInt(playerid,"GameStol"); TextDrawHideForPlayer(playerid,KostiBox[stolid]); TextDrawHideForPlayer(playerid,TableName[stolid]); TextDrawHideForPlayer(playerid,KostiInfo[stolid]); TextDrawHideForPlayer(playerid,KostiGameInfo[stolid]); TextDrawHideForPlayer(playerid,KostiKeyExit); TextDrawHideForPlayer(playerid,KostiKeyDone); TextDrawHideForPlayer(playerid,KostiKeyStavka); SetPVarInt(playerid,"GameStol",-1); TogglePlayerControllable(playerid,1); CancelSelectTextDraw(playerid); } return 0; } public OnPlayerPickUpPickup(playerid,pickupid) { if(pickupid == pickup) { ShowPlayerDialog(playerid,DIALOG_CRP,0,"Начало рабочего дня:","Доброго времени суток, здесь Вы можете подработать Крупье!\nОсновный команды: {03c03c}/startgame\n\n{ff0000}Скрипт написан by Rex_Dobermann aka Kamilot73\nДля дескриминации скриптеров Samp-Rp!\n", "Начать","Закончить"); } return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if( dialogid == EXIT_DIALOG) { if(!response) return 1; new stolid = GetPVarInt(playerid,"GameStol"); TextDrawHideForPlayer(playerid,KostiBox[stolid]); TextDrawHideForPlayer(playerid,TableName[stolid]); TextDrawHideForPlayer(playerid,KostiInfo[stolid]); TextDrawHideForPlayer(playerid,KostiGameInfo[stolid]); TextDrawHideForPlayer(playerid,KostiKeyExit); TextDrawHideForPlayer(playerid,KostiKeyDone); TextDrawHideForPlayer(playerid,KostiKeyStavka); SetPVarInt(playerid,"GameStol",-1); SetPVarInt(playerid,"StolReg",88); TogglePlayerControllable(playerid,1); CancelSelectTextDraw(playerid); DelName(playerid,stolid); SetPVarInt(playerid,"Ochki",88); } if(dialogid == DIALOG_CRP) { new cr = GetPVarInt(playerid,"Crup"); if(!response){ SetPlayerSkin(playerid,19); return 1; } if(cr == 1) return SendClientMessage(playerid,0x808080,"Ошибочка, ты уже работаешь Крупье!"); SetPVarInt(playerid,"Crup",1); SendClientMessage(playerid,0xFF0000,"Вы начали работу Крупье. Подойдите к любому столику и нажмите {ffffff}'ENTER'"); SetPlayerSkin(playerid,189); } if(dialogid == DIALOG_PAY) { new s = GetPVarInt(playerid,"GameStol"); if(StolInfo[s][Stavka] != 0) return SendClientMessage(playerid,0x808080,"Ставка уже была установлена! Изменять можно только в след.раунде!"); new stavka = strval(inputtext); if(stavka < MIN_STAVKA) return SendClientMessage(playerid,0x808080,"Введная ставка слишком мала для начала игры!"); if(stavka > MAX_STAVKA) return SendClientMessage(playerid,0x808080,"Введная ставка привышает ценновую политику штата!"); if(StolInfo[s][GameStart] != 0) return SendClientMessage(playerid,0x808080,"Вы не можете изменить ставку в процессе игры!"); StolInfo[s][Stavka] = stavka; SendClientMessage(playerid,0xFF0000,"Ставка успешно установлена! Можете позвать игроков к столу!"); new str[144]; format(str,sizeof(str),"Bet: %d ~g~$~n~~w~Bank: 0 ~g~$",stavka); TextDrawSetString(KostiGameInfo[s],str); } return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if(newkeys & KEY_SECONDARY_ATTACK && IsPlayerNearStol(playerid) != -1) { new s = GetPVarInt(playerid,"GameStol"); new stolid = IsPlayerNearStol(playerid); new g = GetPVarInt(playerid,"Crup"); if(g == 1 && StolInfo[stolid][Crupe] != INVALID_PLAYER_ID) return SendClientMessage(playerid,0x808080,"Тут уже работает крупье!"); if(s != -1) return SendClientMessage(playerid,0x808080,"Ты уже зарегистрирован на другом столе!"); if(StolInfo[stolid][Crupe] == INVALID_PLAYER_ID && g != 1) return SendClientMessage(playerid,0x808080,"Данный столик не работает!{ffffff} (( Нужен Крупье ))"); TextDrawShowForPlayer(playerid,KostiBox[stolid]); TextDrawShowForPlayer(playerid,TableName[stolid]); TextDrawShowForPlayer(playerid,KostiInfo[stolid]); TextDrawShowForPlayer(playerid,KostiGameInfo[stolid]); TextDrawShowForPlayer(playerid,KostiKeyExit); TextDrawShowForPlayer(playerid,KostiKeyDone); TextDrawShowForPlayer(playerid,KostiKeyStavka); SetPVarInt(playerid,"GameStol",stolid); TogglePlayerControllable(playerid,0); SelectTextDraw(playerid,0x4169e1FF); if(g == 1) StolInfo[stolid][Crupe] = playerid; } return 1; } public OnPlayerClickTextDraw(playerid, Text:clickedid) { if(clickedid == KostiKeyExit) { new g = GetPVarInt(playerid,"Crup"); new stolid = GetPVarInt(playerid,"GameStol"); if(StolInfo[stolid][GameStart] == 1) return SendClientMessage(playerid,0xFF0000FF,"Игра запущена!Выйти нельзя!"); if(GetPVarInt(playerid,"StolReg") != 88) return ShowPlayerDialog(playerid,EXIT_DIALOG,0,"Вы уверены?","На кону стоит Ваша ставка, при выходе она сгорит.\nВы уверены что хотите закончить игру?","Да","Отмена"); if(StolInfo[stolid][Stavka] > 0 && g == 1) return SendClientMessage(playerid,0xFFCC00FF,"Вы не можете покинуть стол! Вы уже запустили игру!"); TextDrawHideForPlayer(playerid,KostiBox[stolid]); TextDrawHideForPlayer(playerid,TableName[stolid]); TextDrawHideForPlayer(playerid,KostiInfo[stolid]); TextDrawHideForPlayer(playerid,KostiGameInfo[stolid]); TextDrawHideForPlayer(playerid,KostiKeyExit); TextDrawHideForPlayer(playerid,KostiKeyDone); TextDrawHideForPlayer(playerid,KostiKeyStavka); SetPVarInt(playerid,"GameStol",-1); SetPVarInt(playerid,"StolReg",88); TogglePlayerControllable(playerid,1); CancelSelectTextDraw(playerid); DelName(playerid,stolid); SetPVarInt(playerid,"Ochki",88); if(g == 1) { StolInfo[stolid][Crupe] = INVALID_PLAYER_ID; StolInfo[stolid][Stavka] = 0; } } if(clickedid == KostiKeyStavka) { new stolid = GetPVarInt(playerid,"GameStol"); new g = GetPVarInt(playerid,"Crup"); if(stolid == GetPVarInt(playerid,"StolReg")) return SendClientMessage(playerid,0x808080,"Ты уже играешь здесь!"); if(g != 1 && StolInfo[stolid][Stavka] == 0) return SendClientMessage(playerid,0x808080,"Ожидайте! {ffffff}Крупье не установил ставку"); if(g != 1 && GetPlayerMoney(playerid) < StolInfo[stolid][Stavka]) return SendClientMessage(playerid,0xFFFFFFFF,"У Вас нету средств на игру!"); if(g != 1) {if(SetNameStol(playerid,stolid) == 0) return SendClientMessage(playerid,0x808080,"Стол переполнен!");} new str[144]; format(str,sizeof(str),"{ffffff}Установить {03c03c}ставку {ffffff}для стола\nМинимальная ставка: {03c03c}%d $\n{ffffff}Максимальная ставка: {03c03c}%d $",MIN_STAVKA,MAX_STAVKA); if(g == 1) return ShowPlayerDialog(playerid,DIALOG_PAY,1,"Установка ставки для игры:",str,"Далее",""); GivePlayerMoney(playerid,-StolInfo[stolid][Stavka]); StolInfo[stolid][Bank] += StolInfo[stolid][Stavka]; } if(clickedid == KostiKeyDone) { new stolid = GetPVarInt(playerid,"GameStol"); new g = GetPVarInt(playerid,"Crup"); if(g == 1) {if(StolInfo[stolid][Igrokov] >= MIN_IGROKOV) {TimeStavka[stolid] = 30; StolInfo[stolid][GameStart] = 1;} else SendClientMessage(playerid,0x808080,"Не хватает игроков для старта!"); return 1;} else { if(GetPVarInt(playerid,"Ochki") != 88) return SendClientMessage(playerid,0x808080,"Вы уже кидали кубики в этом раунде!"); /*new vip = random(11)+1; format(str,sizeof(str),"В общей сумме на двух кубиках выпало - %d",vip); SendClientMessage(playerid,0xFFCC00,str); SetPVarInt(playerid,"Ochki",vip);*/ SendClientMessage(playerid,0xFFCC00FF,"Кидать кубики вне таймера - In Dev."); } } return 1; } stock SetNameStol(playerid,stolid) { SetPVarInt(playerid,"StolReg",stolid); StolInfo[stolid][Igrokov]++; if(StolInfo[stolid][Gamer][0] == INVALID_PLAYER_ID) {StolInfo[stolid][Gamer][0] = playerid; return 1;} if(StolInfo[stolid][Gamer][1] == INVALID_PLAYER_ID) {StolInfo[stolid][Gamer][1] = playerid; return 1;} if(StolInfo[stolid][Gamer][2] == INVALID_PLAYER_ID) {StolInfo[stolid][Gamer][2]= playerid; return 1;} if(StolInfo[stolid][Gamer][3] == INVALID_PLAYER_ID) {StolInfo[stolid][Gamer][3] = playerid; return 1;} if(StolInfo[stolid][Gamer][4] == INVALID_PLAYER_ID) {StolInfo[stolid][Gamer][4] = playerid; return 1;} SetPVarInt(playerid,"StolReg",88); return 0; } stock DelName(playerid,stolid) { if(StolInfo[stolid][Gamer][0] == playerid) {StolInfo[stolid][Gamer][0] = INVALID_PLAYER_ID;StolInfo[stolid][Igrokov]--; return 1;} if(StolInfo[stolid][Gamer][1] == playerid) {StolInfo[stolid][Gamer][1] = INVALID_PLAYER_ID;StolInfo[stolid][Igrokov]--; return 1;} if(StolInfo[stolid][Gamer][2] == playerid) {StolInfo[stolid][Gamer][2] = INVALID_PLAYER_ID;StolInfo[stolid][Igrokov]--; return 1;} if(StolInfo[stolid][Gamer][3]== playerid) {StolInfo[stolid][Gamer][3] = INVALID_PLAYER_ID;StolInfo[stolid][Igrokov]--; return 1;} if(StolInfo[stolid][Gamer][4] == playerid) {StolInfo[stolid][Gamer][4] = INVALID_PLAYER_ID;StolInfo[stolid][Igrokov]--; return 1;} return 0; } stock GetCasinName(id) { new name[64]; if(id == INVALID_PLAYER_ID) name = "~w~--____________________"; else{ GetPlayerName(id,name,sizeof(name)); new v = 20 - strlen(name); for(new g;g<v;g++) { strcat(name,"_",sizeof(name)); } } return name; } forward Secund(); public Secund() { for(new i;i<8;i++) { if(TimeStavka[i] > 0) { TimeStavka[i] --; for(new g;g<GetMaxPlayers();g++) { if(GetPVarInt(g,"GameStol") == i){ new str[144]; format(str,sizeof(str),"~g~%d",TimeStavka[i]); GameTextForPlayer(g,str,1000,6); if(TimeStavka[i] == 1 && GetPVarInt(g,"StolReg") == i){ new vip = random(11)+1; format(str,sizeof(str),"В общей сумме на двух кубиках выпало %d",vip); SendClientMessage(g,0xFFCC00,str); SetPVarInt(g,"Ochki",vip); ShowItog(i); } } } } } for(new s;s<8;s++) { new str[256],sstr[40]; format(str,sizeof(str),"Bet: %d ~g~$~n~~w~Bank: %d ~g~$",StolInfo[s][Stavka],StolInfo[s][Bank]); TextDrawSetString(KostiGameInfo[s],str); format(str,sizeof(str),""); for(new i;i<5;i++) { new text[15]; text = "~w~--"; if(GetPVarInt(StolInfo[s][Gamer][i],"StolReg") == s) text = "~g~OK"; if(GetPVarInt(StolInfo[s][Gamer][i],"Ochki") != 88) format(text,sizeof(text),"%d",GetPVarInt(StolInfo[s][Gamer][i],"Ochki")); format(sstr,sizeof(sstr),"~w~%d. %s%s~n~",i+1,GetCasinName(StolInfo[s][Gamer][i]),text); strcat(str,sstr,256); } TextDrawSetString(KostiInfo[s],str); } } stock ShowItog(stolid) { new maxs = 0,id = -1; for(new i;i<GetMaxPlayers();i++) { if(GetPVarInt(i,"StolReg") == stolid) { new v = GetPVarInt(i,"Ochki"); if(v > maxs) maxs = v; id = i; } } new name[25]; GetPlayerName(id,name,sizeof(name)); new str[144]; format(str,sizeof(str),"%s набирает %d очков и побеждает!",name,maxs); GivePlayerMoney(id,StolInfo[stolid][Bank]); SendClientMessage(id,0xFFFFFFFF,"Поздравляем!Вы победитель этой игры!"); for(new i;i<GetMaxPlayers();i++) { if(GetPVarInt(i,"GameStol") == stolid) { SendClientMessage(i,0xFFCC00FF,str); SetPVarInt(i,"Ochki",88); SetPVarInt(i,"StolReg",88); } } for(new i;i<5;i++){ StolInfo[i][Gamer][i] = INVALID_PLAYER_ID;} StolInfo[stolid][Stavka] = 0; StolInfo[stolid][Bank] = 0; StolInfo[stolid][Igrokov] = 0; StolInfo[stolid][GameStart] = 0; return 1; }
Сообщение отредактировал iScreen - Вторник, 15.07.2014, 15:41