PDA

Просмотр полной версии : [Вопрос] с арестом..



Unknown
29.08.2014, 01:37
сажаю игрока через арест но получается так что сажаю сам себя, а тот игрок просто умирает и появляется в любой точке карты с сигаретой xD


if(strcmp(cmd, "/arrest", true) == 0)
{
if(!IsACop(playerid)) return error(playerid, "Вы не состоите в правоохранительных органах.");
if(PlayerToPoint(6.0, playerid, -1596.0530,676.2716,-5.2422) || PlayerToPoint(6.0, playerid,-1344.6638,455.9733,7.1875) || PlayerToPoint(6.0, playerid,1528.7246,-1687.9677,5.8906) || PlayerToPoint(6.0, playerid,2241.1509,2434.2542,10.8203))
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return error(playerid, "/arrest [Деньги] [Время] [bail (0=no 1=yes)] [bailprice]");
moneys = strval(tmp);
if(moneys < 50 || moneys > 10000) return error(playerid, "Тюремный выкуп не может быть меньше 50$ и выше 10000$.");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return error(playerid, "/arrest [Деньги] [Время] [bail (0=no 1=yes)] [bailprice]");
new time = strval(tmp);
if(time < 5 || time > 60) return error(playerid, "Время заключения не может быть ниже 5 и больше 60.");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return error(playerid, "/arrest [Деньги] [Время] [bail (0=no 1=yes)] [bailprice]");
new bail = strval(tmp);
if(bail < 0 || bail > 1) return error(playerid, "Тюремный залог: 1 - есть, 0 - нет.");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return error(playerid, "Используйтe: /arrest [Деньги] [Время] [bail (0=no 1=yes)] [bailprice]");
new bailprice = strval(tmp);
if(bailprice < 0 || bailprice > 10000) return error(playerid, "Тюремный выкуп не может быть меньше 1$ или выше 10000$.");
new suspect = GetClosestPlayer(playerid);
if(!IsPlayerConnected(suspect)) return error(playerid, "Некому вас арестовать.");
if(GetDistanceBetweenPlayers(playerid,suspect) > 5) return 1;
GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
if(PlayerInfo[suspect][pWanted] < 1) return error(playerid, "У игрока нет розыска.");
PlayerInfo[suspect][pMoney] -= moneys;
format(string, sizeof(string), "*арестован %s ~n~ for %d$", sendername, moneys);
GameTextForPlayer(suspect, string, 5000, 5);
ServerResetPlayerWeaponsAC(suspect);
if(PlayerInfo[playerid][pMember]==1||PlayerInfo[playerid][pLeader]==1)
{
format(string, sizeof(string), "« Законник %s арестовал преступника %s на %d минут. »", sendername, giveplayer, time);
SendClientMessageToAll(COLOR_BLUE, string);
}
else if(PlayerInfo[playerid][pMember]==2||PlayerInfo[playerid][pLeader]==2)
{
format(string, sizeof(string), "« Законник %s арестовал преступника %s на %d минут. »", sendername, giveplayer, time);
SendClientMessageToAll(COLOR_BLUE, string);
}
else if(PlayerInfo[playerid][pMember]==3||PlayerInfo[playerid][pLeader]==3)
{
format(string, sizeof(string), "« Законник %s арестовал преступника %s на %d минут. »", sendername, giveplayer, time);
SendClientMessageToAll(COLOR_BLUE, string);
}
else if(PlayerInfo[playerid][pMember]==19||PlayerInfo[playerid][pLeader]==19)
{
format(string, sizeof(string), "« Законник %s арестовал преступника %s на %d минут. »", sendername, giveplayer, time);
SendClientMessageToAll(COLOR_BLUE, string);
}
PlayerInfo[giveplayerid][pJailed] = 1;
SetPlayerSkin(giveplayerid, 268);
PlayerInfo[giveplayerid][pJailTime] = moneys*60;
SetPlayerInterior(giveplayerid, 5);
new rand = random(sizeof(LSPDSpawns));
SetPlayerPosServer(giveplayerid,LSPDSpawns[rand][0], LSPDSpawns[rand][1], LSPDSpawns[rand][2]);
if(bail == 1)
{
JailPrice[suspect] = bailprice;
format(string, sizeof(string), "Вас посадили в тюрьму на %d секунд. Залог: %d$.", PlayerInfo[suspect][pJailTime], JailPrice[suspect]);
SendClientMessage(suspect, COLOR_BLUE, string);
}
else
{
JailPrice[suspect] = 0;
format(string, sizeof(string), "Вас посадили в тюрьму на %d секунд. Залог: Невозможен.", PlayerInfo[suspect][pJailTime]);
SendClientMessage(suspect, COLOR_BLUE, string);
}
PlayerInfo[suspect][pArrested] += 1;
PlayerInfo[suspect][pWanted] = 0; SetPlayerWantedLevel(suspect, PlayerInfo[suspect][pWanted]);
WantLawyer[suspect] = 1;
SpawnPlayer(suspect);
return true;
}

DeimoS
29.08.2014, 08:07
if(strcmp(cmd, "/arrest", true) == 0)
{
if(!IsACop(playerid)) return error(playerid, "Вы не состоите в правоохранительных органах.");
if(!PlayerToPoint(6.0, playerid, -1596.0530,676.2716,-5.2422) && !PlayerToPoint(6.0, playerid,-1344.6638,455.9733,7.1875) && !PlayerToPoint(6.0, playerid,1528.7246,-1687.9677,5.8906) && !PlayerToPoint(6.0, playerid,2241.1509,2434.2542,10.8203)) return error(playerid, "Вы не находитесь у камер");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return error(playerid, "/arrest [Деньги] [Время] [bail (0=no 1=yes)] [bailprice]");
moneys = strval(tmp);
if(moneys < 50 || moneys > 10000) return error(playerid, "Тюремный выкуп не может быть меньше 50$ и выше 10000$.");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return error(playerid, "/arrest [Деньги] [Время] [bail (0=no 1=yes)] [bailprice]");
new time = strval(tmp);
if(time < 5 || time > 60) return error(playerid, "Время заключения не может быть ниже 5 и больше 60.");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return error(playerid, "/arrest [Деньги] [Время] [bail (0=no 1=yes)] [bailprice]");
new bail = strval(tmp);
if(bail < 0 || bail > 1) return error(playerid, "Тюремный залог: 1 - есть, 0 - нет.");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return error(playerid, "Используйтe: /arrest [Деньги] [Время] [bail (0=no 1=yes)] [bailprice]");
new bailprice = strval(tmp);
if(bailprice < 0 || bailprice > 10000) return error(playerid, "Тюремный выкуп не может быть меньше 1$ или выше 10000$.");
new suspect = GetClosestPlayer(playerid);
if(!IsPlayerConnected(suspect)) return error(playerid, "Некому вас арестовать.");
if(GetDistanceBetweenPlayers(playerid,suspect) > 5) return 1;
GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
if(PlayerInfo[suspect][pWanted] < 1) return error(playerid, "У игрока нет розыска.");
PlayerInfo[suspect][pMoney] -= moneys;

format(string, sizeof(string), "*арестован %s ~n~for %d$", sendername, moneys);
GameTextForPlayer(suspect, string, 5000, 5);

ServerResetPlayerWeaponsAC(suspect);

if(PlayerInfo[playerid][pMember] == 1|| PlayerInfo[playerid][pLeader] == 1) format(string, sizeof(string), "« Законник %s арестовал преступника %s на %d минут. »", sendername, giveplayer, time);
else if(PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2) format(string, sizeof(string), "« Законник %s арестовал преступника %s на %d минут. »", sendername, giveplayer, time);
else if(PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] ==3 ) format(string, sizeof(string), "« Законник %s арестовал преступника %s на %d минут. »", sendername, giveplayer, time);
else if(PlayerInfo[playerid][pMember] == 19 || PlayerInfo[playerid][pLeader] == 19) format(string, sizeof(string), "« Законник %s арестовал преступника %s на %d минут. »", sendername, giveplayer, time);
SendClientMessageToAll(COLOR_BLUE, string);

PlayerInfo[suspect][pJailed] = 1;
SetPlayerSkin(suspect, 268);
PlayerInfo[suspect][pJailTime] = moneys*60;
SetPlayerInterior(suspect, 5);
new rand = random(sizeof(LSPDSpawns));
SetPlayerPosServer(suspect, LSPDSpawns[rand][0], LSPDSpawns[rand][1], LSPDSpawns[rand][2]);
if(bail == 1)
{
JailPrice[suspect] = bailprice;
format(string, sizeof(string), "Вас посадили в тюрьму на %d секунд. Залог: %d$.", PlayerInfo[suspect][pJailTime], JailPrice[suspect]);
SendClientMessage(suspect, COLOR_BLUE, string);
}
else
{
JailPrice[suspect] = 0;
format(string, sizeof(string), "Вас посадили в тюрьму на %d секунд. Залог: Невозможен.", PlayerInfo[suspect][pJailTime]);
SendClientMessage(suspect, COLOR_BLUE, string);
}
PlayerInfo[suspect][pArrested] += 1;
PlayerInfo[suspect][pWanted] = 0; SetPlayerWantedLevel(suspect, PlayerInfo[suspect][pWanted]);
WantLawyer[suspect] = 1;
SpawnPlayer(suspect);
return true;
}

Salvacore
29.08.2014, 09:11
И тут я такой : "sscanf братан,sscanf".

Unknown
29.08.2014, 18:41
Стёба выше не понял), Темку Closed)