11.10.2016, 12:51
(
Последний раз редактировалось Psicotico; 11.10.2016 в 15:28.
)
RESOLVIDO!
A mensagem serб mantida para os outros jogadores que quiserem o comando ou tiverem a mesma dъvida.
Alguйm me dб uma ajuda?
Queria salvar o cargo de quem agendou a cadeia do jogador, mas nгo consigo. Da forma abaixo, apenas mostra no chat (Mensagem global) quem agendou no momento, mas queria salvar isso pra quando o jogador logar, aparecer a mensagem:
"| PRISГO | O(A) (cargo aqui) Fulano te agendou a cumprir 1 minuto(s) de cadeia. Motivo: Teste"
Atualmente, no OnPlayerSpawn, estб assim:
"| PRISГO | O(A) Administrador(a) %s te agendou a cumprir %i minuto(s) de cadeia. Motivo: %s" (Aparece tudo certinho, sу queria trocar o "Administrador(a)" pelo cargo da pessoa que agendou"
Entenderam?
Cуdigos abaixo.
OnPlayerSpawn
CMD:AgendarCadeia
stock AgendarCadeia
Eu definitivamente nгo faзo ideia de como fazer, pois das formas que tentei, aparece inъmeros erros e fico em dъvida se fiz corretamente, e por este motivo prefiro vir pedir ajuda a vocкs experientes
A mensagem serб mantida para os outros jogadores que quiserem o comando ou tiverem a mesma dъvida.
Alguйm me dб uma ajuda?
Queria salvar o cargo de quem agendou a cadeia do jogador, mas nгo consigo. Da forma abaixo, apenas mostra no chat (Mensagem global) quem agendou no momento, mas queria salvar isso pra quando o jogador logar, aparecer a mensagem:
"| PRISГO | O(A) (cargo aqui) Fulano te agendou a cumprir 1 minuto(s) de cadeia. Motivo: Teste"
Atualmente, no OnPlayerSpawn, estб assim:
"| PRISГO | O(A) Administrador(a) %s te agendou a cumprir %i minuto(s) de cadeia. Motivo: %s" (Aparece tudo certinho, sу queria trocar o "Administrador(a)" pelo cargo da pessoa que agendou"
Entenderam?
Cуdigos abaixo.
OnPlayerSpawn
Код:
public OnPlayerSpawn(playerid)
{
Erro[playerid] = 0;
TogglePlayerSpectating(playerid, false);
TogglePlayerControllable(playerid, true);
SetCameraBehindPlayer(playerid);
if(SpawnPos[playerid] == true) SetPlayerPos(playerid, PlayerInfo[playerid][pPosX], PlayerInfo[playerid][pPosY], PlayerInfo[playerid][pPosZ]), SetPlayerFacingAngle(playerid, PlayerInfo[playerid][pPosA]), SpawnPos[playerid] = false, SetPlayerCameraPos(playerid, PlayerInfo[playerid][pCamX], PlayerInfo[playerid][pCamY], PlayerInfo[playerid][pCamZ]), SetPlayerInterior(playerid, PlayerInfo[playerid][pInterior]);
format(File, 56, "pAdmin/Agendados/%s.ini", pNomeOriginal[playerid]);
if(DOF2_FileExists(File))
{
format(Str, 256, "| PRISГO | O(A) Administrador(a) %s te agendou a cumprir %i minuto(s) de cadeia. Motivo: %s", DOF2_GetString(File, "Administrador"), DOF2_GetInt(File, "Tempo"), DOF2_GetString(File, "Motivo"));
printf("%s", Str);
SendClientMessage(playerid, CorErro, Str);
DOF2_RemoveFile(File);
}
if(PlayerInfo[playerid][pCongelado] == true) TogglePlayerControllable(playerid, false);
return 1;
}
Код:
CMD:agendarcadeia(playerid, params[])
{
new Cargo[256];
if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, CorErro, "| ERRO | Comando invбlido.");
new Nome[24];
if(sscanf(params, "s[24]is[56]", Nome, ID, Motivo)) return SendClientMessage(playerid, CorErroNeutro, "Use: /AgendarCadeia [CONTA] [TEMPO EM MINUTOS] [MOTIVO]");
new ID1 = GetPlayerID(Nome);
if(IsPlayerConnected(ID1)) return SendClientMessage(playerid, CorErro, "| ERRO | Este jogador estб conectado, use /Cadeia.");
format(File, sizeof(File), "pAdmin/Contas/%s.ini", Nome);
if(!DOF2_FileExists(File)) return SendClientMessage(playerid, CorErro, "| ERRO | Esta conta nгo existe.");
switch(PlayerInfo[playerid][pAdmin])
{
case 1: Cargo = "Ajudante";
case 2: Cargo = "Moderador(a)";
case 3: Cargo = "Administrador(a)";
case 4: Cargo = "Desenvolvedor";
}
format(Str, sizeof(Str), "| PRISГO | O(A) %s %s agendou a prisгo de %s por %i minutos. Motivo: %s", Cargo, pNomeOriginal[playerid], Nome, ID, Motivo);
SendClientMessageToAll(Vermelho, Str);
AgendarCadeia(Nome, ID, playerid, Motivo); //colocar pra salvar cargo na pasta e puxar o cargo ao player logar
return 1;
}
Код:
stock AgendarCadeia(playerid[], tempo, administrador, Motivo1[])
{
if(tempo < 0)
{
format(File, 56, "pAdmin/Contas/%s.ini", playerid);
new TempoAtual = DOF2_GetInt(File, "pCadeia");
if(tempo * -1 >= TempoAtual / 60)
{
DOF2_SetInt(File, "pCadeia", 0);
DOF2_SaveFile();
format(File, 56, "pAdmin/Agendados/%s.ini", playerid);
if(DOF2_FileExists(File)) DOF2_RemoveFile(File);
return 0;
}
else
{
new tempo1 = tempo * -1 * 60;
TempoAtual -= tempo1;
DOF2_SetInt(File, "pCadeia", TempoAtual);
DOF2_SaveFile();
format(File, 56, "pAdmin/Agendados/%s.ini", playerid);
if(DOF2_FileExists(File)) DOF2_SetInt(File, "Tempo", DOF2_GetInt(File, "Tempo") - tempo * -1), DOF2_SaveFile();
return 0;
}
}
if(tempo > 0)
{
format(File, 56, "pAdmin/Contas/%s.ini", playerid);
if(DOF2_GetInt(File, "pCadeia") > 0)
{
new Tempo9;
Tempo9 = tempo * 60;
DOF2_SetInt(File, "pCadeia", DOF2_GetInt(File, "pCadeia") + Tempo9);
DOF2_SaveFile();
}
else
{
DOF2_SetInt(File, "pCadeia", tempo * 60);
DOF2_SaveFile();
}
format(File, 56, "pAdmin/Agendados/%s.ini", playerid);
if(!DOF2_FileExists(File))
{
DOF2_CreateFile(File);
DOF2_SetInt(File, "Tempo", tempo);
DOF2_SetString(File, "Administrador", pNomeOriginal[administrador]);
DOF2_SetString(File, "Motivo", Motivo1);
DOF2_SaveFile();
}
else
{
new ADM[24], Motivo2[56], Tempo1;
format(ADM, 24, DOF2_GetString(File, "Administrador"));
format(Motivo2, 56, DOF2_GetString(File, "Motivo"));
Tempo1 = DOF2_GetInt(File, "Tempo");
format(Str, 256, "%s | %s", ADM, pNomeOriginal[administrador]);
DOF2_SetString(File, "Administrador", Str);
format(Str, 256, "%s | %s", Motivo2, Motivo1);
DOF2_SetString(File, "Motivo", Str);
DOF2_SetInt(File, "Tempo", tempo + Tempo1);
DOF2_SaveFile();
}
}
return 1;
}


