02.07.2012, 21:36
Tava tentando fazer um sistema de prisгo e deu certo, mas nгo consigo usar os comandos ( /presos /prender e /pagarfianca ) , onde estб o erro?
pawn Код:
#include <a_samp>
#include <zcmd>
#include <sscanf2>
#include <DOF2>
new TempoPreso[MAX_PLAYERS], bool:Preso[MAX_PLAYERS];
public OnFilterScriptInit(){return 1;}
public OnFilterScriptExit(){DOF2_Exit();return 1;}
public OnPlayerSpawn(playerid)
{
if(Preso[playerid] == true){ChecarPresos(playerid);}
return 1;
}
CMD:prender(playerid, params[])
{
new id,tempo,motivo;
if(sscanf(params, "uds[128]", id,tempo,motivo)) return SendClientMessage(playerid, 0xC4C4FFAA, "Uso: /prender [id] [tempo] [motivo]");
if(Preso[id] == true) return SendClientMessage(playerid, 0xC4C4FFAA, "[>] Este jogador jб estб preso.");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xC4C4FFAA, "[>] Jogador nгo estб conectado!");
if(id == playerid) return SendClientMessage(playerid, 0xC4C4FFAA, "[>] Vocк nгo pode se prender.!");
if(GetPlayerWantedLevel(id) < 1) return SendClientMessage(playerid, 0xC4C4FFAA, "[>] Este Jogador nгo estб procurado!");
new nid[MAX_PLAYER_NAME], npd[MAX_PLAYER_NAME], str[200];
TempoPreso[playerid] = SetTimerEx("Liberar", 60000 + tempo, false, "i", playerid);
GetPlayerName(playerid, nid, sizeof(nid));
GetPlayerName(id, npd, sizeof(npd));
format(str, sizeof(str), "[ CADEIA ] O Policial %s prendeu vocк. (Motivo: %s) - Tempo: %s", nid, motivo, tempo);
SendClientMessage(id, 0xA9C4E4AA, str);
format(str, sizeof(str), "[ PRESOS ] Vocк prendeu o jogador '%s' (Motivo: %s) - Tempo: %s", npd, motivo, tempo);
SendClientMessage(playerid, 0xA9C4E4AA, str);
GameTextForPlayer(id, "~w~PRESO!", 3000, 0);
ResetPlayerWeapons(id);
ChecarPresos(id);
return 1;
}
CMD:presos(playerid)
{
SendClientMessage(playerid, 0x98FB98AA, "(!) Lista de Presidiarios :");
new string[200];
for(new i=0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(Preso[i] == true)
{
format(string, sizeof(string), "%s (%d) - Tempo : %s minuto(s)", nome(i), i , TempoPreso[i]);
SendClientMessage(playerid, 0xFFFFFFAA, string);
}
}
}
return 1;
}
CMD:pagarfianca(playerid, params[])
{
new str[128], id, sendername[MAX_PLAYER_NAME], giveplayer[MAX_PLAYER_NAME];
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(id, giveplayer, sizeof(giveplayer));
if(sscanf(params, "u[128]", id)) return SendClientMessage(playerid, 0xC4C4FFAA, "Uso: /pagarfianca [id]");
if(Preso[id] == false) return SendClientMessage(playerid, 0xC4C4FFAA, "[>] Este jogador nгo estб preso.");
if (GetPlayerWantedLevel(id) == 1)
{
if (GetPlayerMoney(playerid) < 2000) return SendClientMessage(playerid, 0xFF0000AA, "[ CADEIA ] Vocк precisa ter R$2000 para pagar a fianзa desse jogador e retirб-lo da prisгo.");
KillTimer(TempoPreso[id]);
GivePlayerMoney(playerid, -2000);
format(str, sizeof(str), "[ CADEIA ] O jogador %s pagou a sua fianзa de R$2000 e vocк foi solto da prisгo.", sendername);
SendClientMessage(id, 0xA9C4E4AA, str);
format(str, sizeof(str), "[ CADEIA ] Vocк pagou a fianзa de R$2000 para soltar o jogador %s da prisгo.", giveplayer);
SendClientMessage(playerid, 0xA9C4E4AA, str);
SetPlayerInterior(id, 6);
SetPlayerPos(id, 265.9714, 83.1550, 1001.0391);
SetPlayerWantedLevel(id, 0);
Preso[id] = false;
}
else if (GetPlayerWantedLevel(id) == 2)
{
if (GetPlayerMoney(playerid) < 4000) return SendClientMessage(playerid, 0xFF0000AA, "[ CADEIA ] Vocк precisa ter R$4000 para pagar a fianзa desse jogador e retirб-lo da prisгo.");
KillTimer(TempoPreso[id]);
GivePlayerMoney(playerid, -4000);
format(str, sizeof(str), "[ CADEIA ] O jogador %s pagou a sua fianзa de R$4000 e vocк foi solto da prisгo.", sendername);
SendClientMessage(id, 0xA9C4E4AA, str);
format(str, sizeof(str), "[ CADEIA ] Vocк pagou a fianзa de R$4000 para soltar o jogador %s da prisгo.", giveplayer);
SendClientMessage(playerid, 0xA9C4E4AA, str);
SetPlayerInterior(id, 6);
SetPlayerPos(id, 265.9714, 83.1550, 1001.0391);
SetPlayerWantedLevel(id, 0);
Preso[id] = false;
}
else if (GetPlayerWantedLevel(id) == 3)
{
if (GetPlayerMoney(playerid) < 6000) return SendClientMessage(playerid, 0xFF0000AA, "[ CADEIA ] Vocк precisa ter R$6000 para pagar a fianзa desse jogador e retirб-lo da prisгo.");
KillTimer(TempoPreso[id]);
GivePlayerMoney(playerid, -6000);
format(str, sizeof(str), "[ CADEIA ] O jogador %s pagou a sua fianзa de R$6000 e vocк foi solto da prisгo.", sendername);
SendClientMessage(id, 0xA9C4E4AA, str);
format(str, sizeof(str), "[ CADEIA ] Vocк pagou a fianзa de R$6000 para soltar o jogador %s da prisгo.", giveplayer);
SendClientMessage(playerid, 0xA9C4E4AA, str);
SetPlayerInterior(id, 6);
SetPlayerPos(id, 265.9714, 83.1550, 1001.0391);
SetPlayerWantedLevel(id, 0);
Preso[id] = false;
}
else if (GetPlayerWantedLevel(id) == 4)
{
if (GetPlayerMoney(playerid) < 8000) return SendClientMessage(playerid, 0xFF0000AA, "[ CADEIA ] Vocк precisa ter R$8000 para pagar a fianзa desse jogador e retirб-lo da prisгo.");
KillTimer(TempoPreso[id]);
GivePlayerMoney(playerid, -8000);
format(str, sizeof(str), "[ CADEIA ] O jogador %s pagou a sua fianзa de R$8000 e vocк foi solto da prisгo.", sendername);
SendClientMessage(id, 0xA9C4E4AA, str);
format(str, sizeof(str), "[ CADEIA ] Vocк pagou a fianзa de R$8000 para soltar o jogador %s da prisгo.", giveplayer);
SendClientMessage(playerid, 0xA9C4E4AA, str);
SetPlayerInterior(id, 6);
SetPlayerPos(id, 265.9714, 83.1550, 1001.0391);
SetPlayerWantedLevel(id, 0);
Preso[id] = false;
}
else if (GetPlayerWantedLevel(id) == 5)
{
if (GetPlayerMoney(playerid) < 10000) return SendClientMessage(playerid, 0xFF0000AA, "[ CADEIA ] Vocк precisa ter R$10000 para pagar a fianзa desse jogador e retirб-lo da prisгo.");
KillTimer(TempoPreso[id]);
GivePlayerMoney(playerid, -10000);
format(str, sizeof(str), "[ CADEIA ] O jogador %s pagou a sua fianзa de R$10000 e vocк foi solto da prisгo.", sendername);
SendClientMessage(id, 0xA9C4E4AA, str);
format(str, sizeof(str), "[ CADEIA ] Vocк pagou a fianзa de R$10000 para soltar o jogador %s da prisгo.", giveplayer);
SendClientMessage(playerid, 0xA9C4E4AA, str);
SetPlayerInterior(id, 6);
SetPlayerPos(id, 265.9714, 83.1550, 1001.0391);
SetPlayerWantedLevel(id, 0);
Preso[id] = false;
}
else if (GetPlayerWantedLevel(id) == 6)
{
if (GetPlayerMoney(playerid) < 12000) return SendClientMessage(playerid, 0xFF0000AA, "[ CADEIA ] Vocк precisa ter R$12000 para pagar a fianзa desse jogador e retirб-lo da prisгo.");
KillTimer(TempoPreso[id]);
GivePlayerMoney(playerid, -12000);
format(str, sizeof(str), "[ CADEIA ] O jogador %s pagou a sua fianзa de R$12000 e vocк foi solto da prisгo.", sendername);
SendClientMessage(id, 0xA9C4E4AA, str);
format(str, sizeof(str), "[ CADEIA ] Vocк pagou a fianзa de R$12000 para soltar o jogador %s da prisгo.", giveplayer);
SendClientMessage(playerid, 0xA9C4E4AA, str);
SetPlayerInterior(id, 6);
SetPlayerPos(id, 265.9714, 83.1550, 1001.0391);
SetPlayerWantedLevel(id, 0);
Preso[id] = false;
}
else if (GetPlayerWantedLevel(id) > 7)
{
if (GetPlayerMoney(playerid) < 25000) return SendClientMessage(playerid, 0xFF0000AA, "[ CADEIA ] Vocк precisa ter R$25000 para pagar a fianзa desse jogador e retirб-lo da prisгo.");
KillTimer(TempoPreso[id]);
GivePlayerMoney(playerid, -25000);
format(str, sizeof(str), "[ CADEIA ] O jogador %s pagou a sua fianзa de R$25000 e vocк foi solto da prisгo.", sendername);
SendClientMessage(id, 0xA9C4E4AA, str);
format(str, sizeof(str), "[ CADEIA ] Vocк pagou a fianзa de R$25000 para soltar o jogador %s da prisгo.", giveplayer);
SendClientMessage(playerid, 0xA9C4E4AA, str);
SetPlayerInterior(id, 6);
SetPlayerPos(id, 265.9714, 83.1550, 1001.0391);
SetPlayerWantedLevel(id, 0);
Preso[id] = false;
}
ChecarPresos(id);
return 1;
}
stock nome(playerid){new nj[MAX_PLAYER_NAME];GetPlayerName(playerid, nj, sizeof(nj));return nj;}
stock ChecarPresos(playerid)
{
if(Preso[playerid] == true)
{
new conta[200];
format(conta, sizeof(conta), "Contas/Presidiarios/%s.ini", nome(playerid));
if(GetPlayerWantedLevel(playerid) == 1)
{
DOF2_SetString(conta, "TempoPreso", TempoPreso[playerid]);
DOF2_SetString(conta, "TempoPreso", Preso[playerid]);
SetPlayerInterior(playerid, 6);
Preso[playerid] = true;
GameTextForPlayer(playerid, "~w~PRESO!", 3000, 0);
SetPlayerPos(playerid, 264.5996, 77.7367, 1001.0391);
TempoPreso[playerid] = SetTimerEx("Liberar", 120000, false, "i", playerid);
ResetPlayerWeapons(playerid);
}
else if(GetPlayerWantedLevel(playerid) == 2)
{
DOF2_SetString(conta, "TempoPreso", TempoPreso[playerid]);
DOF2_SetString(conta, "TempoPreso", Preso[playerid]);
SetPlayerInterior(playerid, 6);
Preso[playerid] = true;
GameTextForPlayer(playerid, "~w~PRESO!", 3000, 0);
SetPlayerPos(playerid, 264.5996, 77.7367, 1001.0391);
TempoPreso[playerid] = SetTimerEx("Liberar", 240000, false, "i", playerid);
ResetPlayerWeapons(playerid);
}
else if(GetPlayerWantedLevel(playerid) == 3)
{
DOF2_SetString(conta, "TempoPreso", TempoPreso[playerid]);
DOF2_SetString(conta, "TempoPreso", Preso[playerid]);
SetPlayerInterior(playerid, 6);
Preso[playerid] = true;
GameTextForPlayer(playerid, "~w~PRESO!", 3000, 0);
SetPlayerPos(playerid, 264.5996, 77.7367, 1001.0391);
TempoPreso[playerid] = SetTimerEx("Liberar", 480000, false, "i", playerid);
ResetPlayerWeapons(playerid);
}
else if(GetPlayerWantedLevel(playerid) == 4)
{
DOF2_SetString(conta, "TempoPreso", TempoPreso[playerid]);
DOF2_SetString(conta, "TempoPreso", Preso[playerid]);
SetPlayerInterior(playerid, 6);
Preso[playerid] = true;
GameTextForPlayer(playerid, "~w~PRESO!", 3000, 0);
SetPlayerPos(playerid, 264.5996, 77.7367, 1001.0391);
TempoPreso[playerid] = SetTimerEx("Liberar", 600000, false, "i", playerid);
ResetPlayerWeapons(playerid);
}
else if(GetPlayerWantedLevel(playerid) == 5)
{
DOF2_SetString(conta, "TempoPreso", TempoPreso[playerid]);
DOF2_SetString(conta, "TempoPreso", Preso[playerid]);
SetPlayerInterior(playerid, 6);
Preso[playerid] = true;
GameTextForPlayer(playerid, "~w~PRESO!", 3000, 0);
SetPlayerPos(playerid, 264.5996, 77.7367, 1001.0391);
TempoPreso[playerid] = SetTimerEx("Liberar", 720000, false, "i", playerid);
ResetPlayerWeapons(playerid);
}
else if(GetPlayerWantedLevel(playerid) == 6)
{
DOF2_SetString(conta, "TempoPreso", TempoPreso[playerid]);
DOF2_SetString(conta, "TempoPreso", Preso[playerid]);
SetPlayerInterior(playerid, 6);
Preso[playerid] = true;
GameTextForPlayer(playerid, "~w~PRESO!", 3000, 0);
SetPlayerPos(playerid, 264.5996, 77.7367, 1001.0391);
TempoPreso[playerid] = SetTimerEx("Liberar", 840000, false, "i", playerid);
ResetPlayerWeapons(playerid);
}
else if(GetPlayerWantedLevel(playerid) > 7)
{
DOF2_SetString(conta, "TempoPreso", TempoPreso[playerid]);
DOF2_SetString(conta, "TempoPreso", Preso[playerid]);
SetPlayerInterior(playerid, 6);
Preso[playerid] = true;
GameTextForPlayer(playerid, "~w~PRESO!", 3000, 0);
SetPlayerPos(playerid, 264.5996, 77.7367, 1001.0391);
TempoPreso[playerid] = SetTimerEx("Liberar", 900000, false, "i", playerid);
ResetPlayerWeapons(playerid);
}
}
DOF2_SaveFile();
}
public OnPlayerDeath(playerid, killerid, reason){ChecarPresos(playerid);return 1;}
forward Liberar(playerid);
public Liberar(playerid)
{
static conta[200];
format(conta, sizeof(conta), "Contas/Presidiarios/%s.ini", nome(playerid));
DOF2_SetInt(conta, "TempoPreso", 0);
DOF2_SetInt(conta, "TempoPreso", 0);
SetPlayerInterior(playerid, 6);
SetPlayerPos(playerid, 265.9714, 83.1550, 1001.0391);
SetPlayerWantedLevel(playerid, 0);
Preso[playerid] = false;
SendClientMessage(playerid, 0xA9C4E4AA, "[ CADEIA ] Vocк foi solto automбticamente por cumprir a sua pena na cadeia!");
KillTimer(TempoPreso[playerid]);
return true;
}