Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Система костей (Advance RP)

Статус
В этой теме нельзя размещать новые ответы.

илюха

Компетентный
Ко всем new
PHP:
new OpustitRuki[MAX_PLAYERS];
new ZapretDice[MAX_PLAYERS];
new dicetime;
new KostiName[MAX_PLAYERS];
new KostiMoney[MAX_PLAYERS];
В OnPlayerConnect(playerid)
PHP:
OpustitRuki[playerid] = 0;
ZapretDice[playerid] = 0;
KostiName[playerid] = 999;
KostiMoney[playerid] = 0;
К командам
PHP:
YCMD:dice(playerid, params[], help) // CMD:dice(playerid, params[]) 
{    
    if(PlayerInfo[playerid][pLogin] == 0) return true;    
    if(!PlayerToPoint(30.0,playerid,1130.7448,-1.4491,1000.6797)) return SendClientMessage(playerid, -1, "Вы должны находиться в казино!"); 
    if(sscanf(params, "ud", params[0],params[1])) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /dice [id игрока] [ставка]");   
    if(params[1] < 100 || params[1] > 500000) return SendClientMessage(playerid, -1, "Минимальная ставка 100$ максимальная 500 000$");   
    if(ZapretDice[params[0]] == 1) return SendClientMessage(playerid, -1, "В данный момент игрок не может играть!");    
    if(PlayerInfo[params[0]][pCash] < params[1]) return SendClientMessage(playerid, -1, "У этого игрока нет столько денег!");    
    if(dicetime > gettime()) return SendClientMessage(playerid, -1, "В данный момент вы не можете играть!");    
    if(!IsPlayerConnected(params[0])) return true;    if(!ProetectorS(6.0, playerid, params[0])) return true;    
    if(params[0] == playerid) return true;    
    format(YCMDstr, sizeof(YCMDstr), "Вы предложили %s бросить кости. Ставка: $%i",Name(params[0]),params[1]);    
    SendClientMessage(playerid, 0x6495EDFF, YCMDstr);    
    format(YCMDstr, sizeof(YCMDstr), "%s предлагает бросить кости. Ставка: $%i",Name(playerid),params[1]);    
    SendClientMessage(params[0], 0x6495EDFF, YCMDstr);    
    SendMes(params[0], COLOR_WHITE, "Нажмите {48FC23}Y {FFFFFF}чтобы согласиться {FF0000}N {FFFFFF}для отказа");    
    ZapretDice[playerid] = 1;    
    KostiName[params[0]] = playerid;   
    KostiMoney[params[0]] = params[1];    
    return true;
}
в обычные команды OnPlayerCommandText(playerid, cmdtext[])
PHP:
if(strcmp(cmd, "/dice", true) == 0) 
{ 
    if(PlayerInfo[playerid][pLogin] == 0) return true; 
    if(!PlayerToPoint(30.0,playerid,1130.7448,-1.4491,1000.6797)) return SendClientMessage(playerid, -1, "Вы должны находиться в казино!"); 
    tmp = strtok(cmdtext, idx); 
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /dice [id игрока] [ставка]"); 
    new giveplayerid = ReturnUser(tmp); 
    tmp = strtok(cmdtext, idx); 
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /dice [id игрока] [ставка]"); 
    new price = strval(tmp); 
    if(price  < 100 || price  > 500000) return SendClientMessage(playerid, -1, "Минимальная ставка 100$ максимальная 500 000$"); 
    if(ZapretDice[giveplayerid] == 1) return SendClientMessage(playerid, -1, "В данный момент игрок не может играть!"); 
    if(PlayerInfo[giveplayerid][pCash] < price) return SendClientMessage(playerid, -1, "У этого игрока нет столько денег!"); 
    if(dicetime > gettime()) return SendClientMessage(playerid, -1, "В данный момент вы не можете играть!"); 
    if(!IsPlayerConnected(giveplayerid)) return true; 
    if(!ProetectorS(6.0, playerid, giveplayerid)) return true; 
    if(giveplayerid == playerid) return true; 
    format(YCMDstr, sizeof(YCMDstr), "Вы предложили %s бросить кости. Ставка: $%i",Name(giveplayerid),price); 
    SendClientMessage(playerid, 0x6495EDFF, YCMDstr); 
    format(YCMDstr, sizeof(YCMDstr), "%s предлагает бросить кости. Ставка: $%i",Name(playerid),price); 
    SendClientMessage(giveplayerid, 0x6495EDFF, YCMDstr); 
    SendMes(giveplayerid, COLOR_WHITE, "Нажмите {48FC23}Y {FFFFFF}чтобы согласиться {FF0000}N {FFFFFF}для отказа"); 
    ZapretDice[playerid] = 1; 
    KostiName[giveplayerid] = playerid; 
    KostiMoney[giveplayerid] = price; 
    return true; 
}
В OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
PHP:
if(newkeys == 65536)    
{    
if(KostiName[playerid] < 999)            
{                    
new dice = random(12)+1;                   
new dice1 = random(12)+1;                    
format(YCMDstr, sizeof(YCMDstr), "%s и %s бросили кости. Результат: {CC9900}%i:%i",Name(KostiName[playerid]),Name(playerid),dice,dice1);                    
Proetector(5.0, playerid, YCMDstr, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);                   
if(dice > dice1)                    
{
PlayerInfo[KostiName[playerid]][pCash] += KostiMoney[playerid];                           
PlayerInfo[playerid][pCash] -= KostiMoney[playerid];                            
SendMes(KostiName[playerid], COLOR_GREEN, "Поздравляем, Вы выиграли!");                            
SendMes(playerid, COLOR_ORANGE, "К сожалению, Вы проиграли!");                           
format(YCMDstr, sizeof(YCMDstr), "~g~+%d$", KostiMoney[playerid]);                            
GameTextForPlayer(KostiName[playerid], YCMDstr, 3000, 1);                           
format(YCMDstr, sizeof(YCMDstr), "~r~-%d$", KostiMoney[playerid]);                            
GameTextForPlayer(playerid, YCMDstr, 3000, 1);                            
format(string,sizeof(string), "Выпало: %i",dice1);                            
SetPlayerChatBubble(playerid,string,COLOR_ORANGE,30.0,10000);                            
format(string,sizeof(string), "Выпало: %i",dice);                            
SetPlayerChatBubble(KostiName[playerid],string,TEAM_GROVE_COLOR,30.0,10000);                            
ApplyAnimation(playerid,"CARRY","crry_prtial",4.1,1,0,0,1,1);                            
SetPlayerAttachedObject(playerid, 1, 1851, 1, 0.062400, 0.453750, 0.000000, 0.000000, 94.689310, 0.000000);                           
ApplyAnimation(KostiName[playerid],"CARRY","crry_prtial",4.1,1,0,0,1,1);                           
SetPlayerAttachedObject(KostiName[playerid], 1, 1851, 1, 0.062400, 0.453750, 0.000000, 0.000000, 94.689310, 0.000000);                            
SetTimer("DiceOff", 5000, 0);                            
OpustitRuki[playerid] = 1;                            
OpustitRuki[KostiName[playerid]] = 1;                            
dicetime = gettime() + 5;                            
ZapretDice[playerid] = 0;                            
ZapretDice[KostiName[playerid]] = 0;                            
KostiMoney[playerid] = 0;                            
KostiName[playerid] = 999;                    
}                   
if(dice < dice1)                    
{                            
PlayerInfo[KostiName[playerid]][pCash] -= KostiMoney[playerid];                            
PlayerInfo[playerid][pCash] += KostiMoney[playerid];                            
SendMes(playerid, COLOR_GREEN, "Поздравляем, Вы выиграли!");                            
SendMes(KostiName[playerid], COLOR_ORANGE, "К сожалению, Вы проиграли!");                            
format(YCMDstr, sizeof(YCMDstr), "~g~+%d$", KostiMoney[playerid]);                            
GameTextForPlayer(playerid, YCMDstr, 3000, 1);                            
format(YCMDstr, sizeof(YCMDstr), "~r~-%d$", KostiMoney[playerid]);                            
GameTextForPlayer(KostiName[playerid], YCMDstr, 3000, 1);                            
format(string,sizeof(string), "Выпало: %i",dice1);                            
SetPlayerChatBubble(playerid,string,TEAM_GROVE_COLOR,30.0,10000);                            
format(string,sizeof(string), "Выпало: %i",dice);                            
SetPlayerChatBubble(KostiName[playerid],string,COLOR_ORANGE,30.0,10000);                            
ApplyAnimation(playerid,"CARRY","crry_prtial",4.1,1,0,0,1,1);                            
SetPlayerAttachedObject(playerid, 1 , 1851, 1, 0.062397, 0.453746, 0.000000, 0.000000, 94.689308, 0.000000);                            
ApplyAnimation(KostiName[playerid],"CARRY","crry_prtial",4.1,1,0,0,1,1);                            
SetPlayerAttachedObject(KostiName[playerid], 1, 1851, 1, 0.062400, 0.453750, 0.000000, 0.000000, 94.689310, 0.000000);                            
SetTimer("DiceOff", 5000, 0);                            
OpustitRuki[playerid] = 1;                            
OpustitRuki[KostiName[playerid]] = 1;                           
dicetime = gettime() + 5;                            
ZapretDice[playerid] = 0;                            
ZapretDice[KostiName[playerid]] = 0;                            
KostiMoney[playerid] = 0;                            
KostiName[playerid] = 999;                    
}                    
if(dice == dice1)                    
{                            
SendMes(playerid, COLOR_ORANGE, "Игра закончилась в ничью!");                            
SendMes(KostiName[playerid], COLOR_ORANGE, "Игра закончилась в ничью!");                            
format(string,sizeof(string), "Выпало: %i",dice1);                            
SetPlayerChatBubble(playerid,string,COLOR_LIGHTBLUE,30.0,10000);                            
format(string,sizeof(string), "Выпало: %i",dice);                            
SetPlayerChatBubble(KostiName[playerid],string,COLOR_LIGHTBLUE,30.0,10000);                            
ApplyAnimation(playerid,"CARRY","crry_prtial",4.1,1,0,0,1,1);                           
SetPlayerAttachedObject(playerid, 1 , 1851, 1, 0.062397, 0.453746, 0.000000, 0.000000, 94.689308, 0.000000);                            
ApplyAnimation(KostiName[playerid],"CARRY","crry_prtial",4.1,1,0,0,1,1);                            
SetPlayerAttachedObject(KostiName[playerid], 1, 1851, 1, 0.062400, 0.453750, 0.000000, 0.000000, 94.689310, 0.000000);                           
SetTimer("DiceOff", 5000, 0);                            
OpustitRuki[playerid] = 1;                            
OpustitRuki[KostiName[playerid]] = 1;                            
dicetime = gettime() + 5;                            
ZapretDice[playerid] = 0;                            
ZapretDice[KostiName[playerid]] = 0;                            
KostiMoney[playerid] = 0;                            
KostiName[playerid] = 999;                    
}            
}            
else            
{                    
SendClientMessage(playerid, -1, "Вам никто не предлагал бросить кости");                   
return true;            
}            
return true;
}
if(newkeys == 131072)  
{     
if(KostiName[playerid] < 999)       
{         
KostiName[playerid] = 999;            
KostiMoney[playerid] = 0;        
} 
}
В конец мода
PHP:
publics: DiceOff()
{        
for(new idx=0, i=0; idx<cvector_size(players); idx++)        
{               
if(OpustitRuki[i] == 1)                
{                       
i = cvector_get(players, idx);                        
OpustitRuki[i] = 0;                        
if(IsPlayerAttachedObjectSlotUsed(i,1)) RemovePlayerAttachedObject(i,1);// забрали кубик                        
ClearAnimations(i);                        
ClearAnim(i);                
}        
}
}
У меня стоит плагин Vectoral, у кого его нет просто замените на это:
PHP:
publics: DiceOff()
{        
for(new i=0; i<MAX_PLAYERS; i++)   
{               
if(OpustitRuki[i] == 1)                
{                                           
OpustitRuki[i] = 0;                        
if(IsPlayerAttachedObjectSlotUsed(i,1)) RemovePlayerAttachedObject(i,1);// забрали кубик                        
ClearAnimations(i);                        
ClearAnim(i);                
}        
}
}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу