if(strcmp(cmd, "/duvida", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_GREY, "Vocк nгo estб logado!");
return 1;
}
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_GRAD2, "USE: /duvida [texto]");
return 1;
}
if(gPlayerLogged[playerid] == 1)
{
format(string, sizeof(string), "Dъvida enviada de %s[%d]: %s ", sendername, playerid, (result));
ABroadCast(COLOR_ORANGE,string,1);
SendClientMessage(playerid, COLOR_ORANGE, "Sua Dъvida foi enviado aos Admins, aguarde uma resposta...");
Duvida[giveplayerid] = strlen(result);
DuvidaEntregue[playerid] = 1;
}
}
return 1;
}
if(strcmp(cmd, "/rduvida", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_GREY, "Vocк nгo estб logado!");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /rduvida [id] [Resposta]");
return 1;
}
giveplayerid = ReturnUser(tmp);
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_GRAD2, "USE: /rduvida [id] [Resposta]");
return 1;
}
new id = strval(tmp);
if(!IsPlayerConnected(id))
{
SendClientMessage(playerid, COLOR_RED, " O ID Informado й Invalido.");
return 1;
}
if(gPlayerLogged[playerid] == 1)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s", Duvida[giveplayerid]); //linha do problema, a duvida do jogador nao aparece.
SendClientMessage(giveplayerid, COLOR_ORANGE, string);
format(string, sizeof(string), " O %s %s Respondeu sua Duvida: %s", CargoAdmin(playerid), sendername, (result));
SendClientMessage(giveplayerid, COLOR_ORANGE, string);
SendClientMessage(playerid, COLOR_ORANGE, " Sua Resposta Foi enviado ao Jogador.");
}
DuvidaEntregue[playerid] = 1;
SetTimerEx("MandarDuvida", 30000,false,"i",playerid);
}
return 1;
}
/*
Consideraзхes:
- Qualquer jogador tinha acesso ao comando /rDuvida.
Eu adicionei uma condicional para isto, IsPlayerAdmin(somente Rcons), vocк pode alterar.
- O timer no comando /rDuvida serve para quк?
A resposta й enviada instantaneamente, se for para zerar a vбriavel DuvidaEntregue й
desnecessбrio tambйm.
Demais funзхes encontradas nele, SE NECESSБRIAS, remover o comentбrio no script.
- A variбvel Duvida seja ela string(que teria que ser) ou nгo, й desnecessбria, eu usei
PVar's para guardar a dъvida do jogador, use apenas DuvidaEntregue para
verificaзхes de dъvidas.
- Eu nгo testei o script, qualquer erro tente solucionar olhando o log do compilador,
se mesmo assim nгo obter кxito vir ao fуrum solicitar ajuda.
Se houver erros de lуgica no script e nгo conseguir solucionar, me chame no privado.
*/
if(strcmp(cmd, "/duvida", true) == 0)
{
if(gPlayerLogged[playerid] == 0)
return SendClientMessage(playerid, COLOR_GREY, "Vocк nгo estб logado!");
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))
return SendClientMessage(playerid, COLOR_GRAD2, "USE: /duvida [texto]");
format(string, sizeof(string), "Dъvida enviada de %s[%d]: {FFFF00}%s ", sendername, playerid, (result));
ABroadCast(COLOR_ORANGE,string,1);
SendClientMessage(playerid, COLOR_ORANGE, "Sua dъvida foi enviada aos administradores, aguarde uma resposta...");
SetPVarString(playerid, "duv", (result));
DuvidaEntregue[playerid] = 1;
return 1;
}
if(strcmp(cmd, "/rduvida", true) == 0)
{
if(!IsPlayerAdmin(playerid))
return SendClientMessage(playerid, COLOR_GREY, "Vocк nгo й um Administrador RCON!");
if(gPlayerLogged[playerid] == 0)
return SendClientMessage(playerid, COLOR_GREY, "Vocк nгo estб logado!");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
return SendClientMessage(playerid, COLOR_GRAD2, "USE: /rduvida [id] [Resposta]");
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))
return SendClientMessage(playerid, COLOR_GRAD2, "USE: /rduvida [id] [Resposta]");
new id = strval(tmp);
if(!IsPlayerConnected(id))
return SendClientMessage(playerid, COLOR_RED, "O ID informado й invбlido.");
if(DuvidaEntregue[id] == 0) // Verificar se o jogador enviou alguma dъvida, se nгo retorna erro para o Administrador
return SendClientMessage(playerid, COLOR_RED, "O ID informado nгo possuн nenhuma dъvida pendente.");
GetPlayerName(id, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new duv[128];
GetPVarString(id, "duv", duv, sizeof(duv));
format(string, sizeof(string), "Sua dъvida: {FFFF00}%s", duv);
SendClientMessage(id, COLOR_ORANGE, string);
format(string, sizeof(string), "O [%s] %s respondeu sua dъvida: {FFFF00}%s", CargoAdmin(playerid), sendername, (result));
SendClientMessage(id, COLOR_ORANGE, string);
format(string, sizeof(string), "Sua resposta foi enviada ao jogador {FFFF00}%s.", giveplayer);
SendClientMessage(playerid, COLOR_ORANGE, string);
//SetTimerEx("MandarDuvida", 30000, false, "i", playerid); // Isso й necessбrio? A resposta й enviada instantaneamente.
// Zerando a variбvel de dъvida do jogador.
DuvidaEntregue[id] = 0;
return 1;
}
[php]
Consideraзхes: - Qualquer jogador tinha acesso ao comando /rDuvida. Eu adicionei uma condicional para isto, IsPlayerAdmin(somente Rcons), vocк pode alterar. - O timer no comando /rDuvida serve para quк? A resposta й enviada instantaneamente, se for para zerar a vбriavel DuvidaEntregue й desnecessбrio tambйm. Demais funзхes encontradas nele, SE NECESSБRIAS, remover o comentбrio no script. - A variбvel Duvida seja ela string(que teria que ser) ou nгo, й desnecessбria, eu usei PVar's para guardar a dъvida do jogador, use apenas DuvidaEntregue para verificaзхes de dъvidas. - Eu nгo testei o script, qualquer erro tente solucionar olhando o log do compilador, se mesmo assim nгo obter кxito vir ao fуrum solicitar ajuda. Se houver erros de lуgica no script e nгo conseguir solucionar, me chame no privado. |