sdd19517
Компетентный
Суть в том что команду /ticket не кто не можешь юзать, даже копы. А команду /domote могут юзать все. Два часа провозился и все в пустую...
PHP:
else if(strcmp(cmd, "/ticket", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(!IsACop(playerid) || !IsAFbi(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Вы не полицейский!");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /ticket [id] [цена] [причина]");
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /ticket [id] [цена] [причина]");
moneys = strval(tmp);
if(moneys < 1 || moneys > 10000) { SendClientMessage(playerid, COLOR_GREY, "Штраф не должен привышать 10000 и не должен быть меньше 0 вирт!"); return 1; }
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if (ProxDetectorS(8.0, playerid, giveplayerid))
{
if(GetSRVMoney(giveplayerid) < moneys) return SendClientMessage(playerid, COLOR_GRAD1, "У игрока нет столько денег!");
if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "{DB7093} [Ошибка]: {D3D3D3} Вы указали свой ID"); return 1; }
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_WHITE, "Введите: /ticket [id] [цена] [причина]");
return 1;
}
format(string, sizeof(string), "Вы выписали штраф в размере %d вирт %s. Причина: %s",moneys, giveplayer, (result));
SendClientMessage(playerid, COLOR_BLUE, string);
format(string, sizeof(string), "Офицер %s выписал вам штраф в размере %d вирт. Причина: %s", sendername, moneys, (result));
SendClientMessage(giveplayerid, COLOR_BLUE, string);
SendClientMessage(giveplayerid, COLOR_WHITE, "(( Введите: /accept ticket, чтобы оплатить штраф ))");
TicketOffer[giveplayerid] = playerid;
TicketMoney[giveplayerid] = moneys;
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Этот Человек далеко от вас!");
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "{DB7093} [Ошибка]: {D3D3D3} Человек не найден!");
return 1;
}
}
return 1;
}
PHP:
if(strcmp(cmd, "/demote", true) == 0)
{
new demotegiveplayer;
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(demotegiveplayer, giveplayer, sizeof(giveplayer));
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, " Используйте: /demote [id]");
return 1;
}
if(!IsAFbi(playerid) && PlayerInfo[playerid][pRank] >= 8)
{
SendClientMessage(playerid, COLOR_GRAD2, "Вы не можите использывать команду");
return 1;
}
demotegiveplayer = ReturnUser(tmp);
if(IsPlayerConnected(demotegiveplayer))
{
if(demotegiveplayer != INVALID_PLAYER_ID)
{
new demotefrakid[MAX_PLAYERS];
demotefrakid[demotegiveplayer] = PlayerInfo[demotegiveplayer][pMember];
if(demotefrakid[demotegiveplayer] == 1 || demotefrakid[demotegiveplayer] == 10 || demotefrakid[demotegiveplayer] == 21 || demotefrakid[demotegiveplayer] == 3 || demotefrakid[demotegiveplayer] == 19)
{
new grini;
PlayerInfo[demotegiveplayer][pRank] --;
grini = PlayerInfo[demotegiveplayer][pRank];
format(string,sizeof(string),"Вы понизили %s до %d ранга",giveplayerid,grini);
SendClientMessage(playerid,0x6AB1FFAA,string);
format(string, sizeof(string), "Агент ФБР %s понизил вас до %d ранга", sendername, grini);
SendClientMessage(demotegiveplayer, 0x6AB1FFAA, string);
if(IsACop(demotegiveplayer) && PlayerInfo[demotegiveplayer][pRank] < 2)
{
PlayerInfo[demotegiveplayer][pMember] = 19;
PlayerInfo[demotegiveplayer][pRank] = 4;
SetPlayerInterior(demotegiveplayer,5);
ShowMenuForPlayer(ChoseSkin,demotegiveplayer);
new rand = random(sizeof(gInviteSpawns));
SetPlayerPos(demotegiveplayer, gInviteSpawns[rand][0], gInviteSpawns[rand][1], gInviteSpawns[rand][2]);
SetPlayerFacingAngle(demotegiveplayer, gInviteSpawns[rand][3]);
SetPlayerCameraPos(demotegiveplayer,gInviteSpawns[rand][0] + 3, gInviteSpawns[rand][1], gInviteSpawns[rand][2]);
SetPlayerCameraLookAt(demotegiveplayer,gInviteSpawns[rand][0], gInviteSpawns[rand][1], gInviteSpawns[rand][2]);
TogglePlayerControllable(demotegiveplayer, 0);
SelectChar[demotegiveplayer] = 255;
SelectCharID[demotegiveplayer] = PlayerInfo[demotegiveplayer][pMember];
SelectCharPlace[demotegiveplayer] = 1;
PlayerInfo[demotegiveplayer][pModel] = ChosenSkin[demotegiveplayer];
SetPlayerVirtualWorld(demotegiveplayer,1);
OnPlayerUpdateRL(demotegiveplayer);
format(string, sizeof(string), "Агент ФБР %s перевел вас обратно в армию", sendername);
SendClientMessage(demotegiveplayer, 0x6AB1FFAA, string);
SendClientMessage(demotegiveplayer, 0xBC2C2CAA, "Используйте клавишу 'Быстрый бег'(пробел по умолчанию)");
SendClientMessage(demotegiveplayer, 0xBC2C2CAA, "Используйте клавиши 'Вверх, вниз'( W, S по умолчанию)");
format(string,sizeof(string),"Вы перевели %s обратно в армию",giveplayer);
SendClientMessage(playerid,0x6AB1FFAA,string);
return 1;
}
if(IsAArm(demotegiveplayer) && PlayerInfo[demotegiveplayer][pRank] < 2)
{
format(string, sizeof(string), "Агент ФБР %s уволил вас из армии", sendername);
SendClientMessage(demotegiveplayer, 0x6AB1FFAA, string);
format(string,sizeof(string),"Вы уволили %s из армии",giveplayer);
SendClientMessage(playerid,0x6AB1FFAA,string);
PlayerInfo[demotegiveplayer][pMember] = 0;
PlayerInfo[demotegiveplayer][pLeader] = 0;
PlayerInfo[demotegiveplayer][pRank] = 0;
SetPlayerInterior(demotegiveplayer, 0);
PlayerInfo[demotegiveplayer][pInt] = 0;
SetPlayerArmourAC(demotegiveplayer,0);
Delgun(demotegiveplayer);
ResetPlayerWeapons(demotegiveplayer);
SpawnPlayer(demotegiveplayer);
return 1;
}
}
else { SendClientMessage(playerid, COLOR_GRAD2, "Он не состоит в армии/полиции"); return 1; }
}
}
else { SendClientMessage(playerid, COLOR_GRAD2, "Человек не найден"); return 1;}
}
return 1;
}
