14.08.2014, 01:49
Criei um comando /procurar pro meu servidor, e decidi postar aqui.
Lembrando: O comandos esta adaptado para minha Gm, se quiser, vocк tera que adaptar para a sua
Esta bem basico, mas vocк pode aperfeiзoar
Acho que postei certo, qualquer erro me avise
Lembrando: O comandos esta adaptado para minha Gm, se quiser, vocк tera que adaptar para a sua
Esta bem basico, mas vocк pode aperfeiзoar
pawn Код:
//Topo da GM
enum Info
{
Logado,
Emprego,
Policial,
Procurando,
};
new PlayerInfo[MAX_PLAYERS][Info];
//Na public OnPlayerConnect(playerid)
public OnPlayerConnect(playerid)
{
PlayerInfo[playerid][Logado] = 0; //No meu Gm, o player so fica logado, apos logar sua conta
PlayerInfo[playerid][Emprego] = 0;
PlayerInfo[playerid][Policial] = 0;
PlayerInfo[playerid][Procurando] = -1;
}
//Na public OnPlayerCommandText(playerid, cmdtext[])
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[128], idx;
cmd = strtok(cmdtext, idx);
if(strcmp(cmd, "/procurar", true) == 0)
{
if(PlayerInfo[playerid][Emprego] == 1 || PlayerInfo[playerid][Policial] == 1)
{
new tmp[128]; new pid;
tmp = strtok(cmdtext, idx);
if(strlen(tmp) == 0)
{
SendClientMessage(playerid, COR_GRAD, "[Erro] Use: /procurar [ID]");
return 1;
}
pid = strval(tmp);
if(PlayerInfo[pid][Logado] == 1)
{
if(pid != playerid)
{
PlayerInfo[playerid][Procurando] = pid;
SetTimerEx("TempoProcurando" ,500, 0, "i", playerid);
}
else
{
SendClientMessage(playerid, COR_GRAD, "[Erro] Vocк nгo pode se procurar");
}
}
else
{
SendClientMessage(playerid, COR_GRAD, "[Erro] Este jogador nгo esta logado");
}
}
else
{
SendClientMessage(playerid, COR_GRAD, "Vocк nгo й um Detetive ou um Policial");
}
return 1;
}
if(strcmp(cmdtext,"/pararprocurar", true)==0 || strcmp(cmdtext,"/retirarprocurar", true)==0)
{
if(PlayerInfo[playerid][Emprego] == 1 || PlayerInfo[playerid][Policial] == 1)
{
PlayerInfo[playerid][Procurando] = -1;
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid, COR_GRAD, "[Info] Vocк parou de procurar o player");
}
return 1;
}
return 1;
}
//Crie essa public no final da Gm, se preferir crie onde quiser =D
forward TempoProcurando(playerid);
public TempoProcurando(playerid)
{
if(PlayerInfo[playerid][Procurando] >= 0)
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(PlayerInfo[playerid][Procurando], X, Y, Z);
SetPlayerCheckpoint(playerid, X, Y, Z, 4);
SetTimerEx("TempoProcurando" ,500, 0, "i", playerid);
}
else
{
DisablePlayerCheckpoint(playerid);
}
return 1;
}
//Coloque isto no final da sua GM
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}