27.06.2015, 01:47
(
Последний раз редактировалось Anuudek; 27.06.2015 в 14:32.
)
Olб galerinha! Eu queria pedir vocкs para me ajudar a implementar a funзгo de agendar os avisos pelo /agendarcadeia, exemplo: /agendarcadeia [NOME] [TEMPO] [AVISOS] [MOTIVO] !
Meu sistema de /agendarcadeia:
Meu sistema de /aviso:
Meu sistema de /agendarcadeia:
Код:
if(strcmp(cmd, "/agendarcadeia",true) == 0 || strcmp(cmd, "/agendar",true) == 0) { if(IsPlayerConnected(playerid)) { new tmpo[20]; if(PlayerInfo[playerid][pAdmin] < 1) { SendClientMessage(playerid, COLOR_GREY, " Vocк nгo esta autorizado para usar este comando!"); return true; } tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, "USE: /agendarcadeia [NOME_CORRETO] [Tempo] [Motivo]"); return true; } tmpo = strtok(cmdtext, idx); if(!strlen(tmpo)) { SendClientMessage(playerid, COLOR_GRAD2, "USE: /agendarcadeia [NOME_CORRETO] [Tempo] [Motivo]"); return true; } new tempo2 = strval(tmpo); 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: /agendarcadeia [NOME_CORRETO] [Tempo] [Motivo]"); return true; } GetPlayerName(playerid, sendername, sizeof(sendername)); new arquivo[128]; format(arquivo, sizeof(arquivo), "Contas/%s.ini",tmp); if(!DOF2_FileExists(arquivo)) { SendClientMessage(playerid, COLOR_WHITE, "[ERRO] Este nick nгo estб registrado no Brasil PlayMoon!"); return true; } format(string, sizeof(string), "O Admin %s agendou o nick %s para %d minutos de cadeia, Motivo: %s",PlayerName(playerid), tmp, tempo2, (result)); SendClientMessageToAll(COLOR_LIGHTRED, string); AgendarLog(string); DOF2_SetInt(arquivo,"Jailed",9); DOF2_SetInt(arquivo,"JailTime",tempo2 * 60); strmid(AgendouInfo[playerid][cAdminAgendou], sendername, 0, strlen(sendername), MAX_PLAYER_NAME); DOF2_SetString(arquivo,"AdminAgendou",sendername); strmid(AgendouInfo[playerid][cMotivoAgendou], result, 0, strlen(result), MAX_PLAYER_NAME); DOF2_SetString(arquivo,"MotivoAgendou",result); DOF2_SetInt(arquivo,"Agendado",1); DOF2_SetInt(arquivo,"TempoAgendado",tempo2); DOF2_SaveFile(); } return true; }
Код:
if(strcmp(cmd, "/aviso", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, "USE: /aviso [id] [motivo]"); return true; } giveplayerid = ReturnUser(tmp); if (PlayerInfo[playerid][pAdmin] >= 1) { if(giveplayerid != INVALID_PLAYER_ID) { GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); new length = strlen(cmdtext); if(strcmp(giveplayer,"Storm_Front",true)==0) { SendClientMessage(playerid, COLOR_WHITE, "Vocк nгo pode avisar este Admin"); format(string, sizeof(string), "[Aviso] %s [ID: %d] tentou usar /aviso em vocк!",PlayerName(playerid), playerid); SendClientMessage(giveplayerid, COLOR_YELLOW, string); return true; } 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: /aviso [id] [motivo]"); return true; } PlayerInfo[giveplayerid][pWarns] += 1; if(PlayerInfo[giveplayerid][pWarns] >= 3) { format(string, sizeof(string), "AdmCmd: %s foi automaticamente banido temporariamente (3 dias), Motivo: Passou de 3 avisos (%d-%d-%d)", giveplayer); BanLog(string); format(string, sizeof(string), "AdmCmd: %s foi avisado por %s, Motivo: %s", giveplayer, sendername, (result)); SendClientMessageToAll(COLOR_LIGHTRED, string); format(string, sizeof(string), "AdmCmd: %s foi banido temporariamente por 3 dias (Passou de 3 avisos)", giveplayer); SendClientMessageToAll(COLOR_LIGHTRED, string); getdate(Ano, Mes, Dia); PlayerInfo[giveplayerid][pDiaBanTemp] = Dia+3; PlayerInfo[giveplayerid][pMesBanTemp] = Mes; PlayerInfo[giveplayerid][pAnoBanTemp] = Ano; if(PlayerInfo[giveplayerid][pMesBanTemp] == 1 && PlayerInfo[giveplayerid][pDiaBanTemp] > 31) { PlayerInfo[giveplayerid][pDiaBanTemp] -= 31; PlayerInfo[giveplayerid][pMesBanTemp]++; } if(PlayerInfo[giveplayerid][pMesBanTemp] == 2 && PlayerInfo[giveplayerid][pDiaBanTemp] > 28) { PlayerInfo[giveplayerid][pDiaBanTemp] -= 28; PlayerInfo[giveplayerid][pMesBanTemp]++; } if(PlayerInfo[giveplayerid][pMesBanTemp] == 3 && PlayerInfo[giveplayerid][pDiaBanTemp] > 31) { PlayerInfo[giveplayerid][pDiaBanTemp] -= 31; PlayerInfo[giveplayerid][pMesBanTemp]++; } if(PlayerInfo[giveplayerid][pMesBanTemp] == 4 && PlayerInfo[giveplayerid][pDiaBanTemp] > 30) { PlayerInfo[giveplayerid][pDiaBanTemp] -= 30; PlayerInfo[giveplayerid][pMesBanTemp]++; } if(PlayerInfo[giveplayerid][pMesBanTemp] == 5 && PlayerInfo[giveplayerid][pDiaBanTemp] > 31) { PlayerInfo[giveplayerid][pDiaBanTemp] -= 31; PlayerInfo[giveplayerid][pMesBanTemp]++; } if(PlayerInfo[giveplayerid][pMesBanTemp] == 6 && PlayerInfo[giveplayerid][pDiaBanTemp] > 30) { PlayerInfo[giveplayerid][pDiaBanTemp] -= 30; PlayerInfo[giveplayerid][pMesBanTemp]++; } if(PlayerInfo[giveplayerid][pMesBanTemp] == 7 && PlayerInfo[giveplayerid][pDiaBanTemp] > 31) { PlayerInfo[giveplayerid][pDiaBanTemp] -= 31; PlayerInfo[giveplayerid][pMesBanTemp]++; } if(PlayerInfo[giveplayerid][pMesBanTemp] == 8 && PlayerInfo[giveplayerid][pDiaBanTemp] > 31) { PlayerInfo[giveplayerid][pDiaBanTemp] -= 31; PlayerInfo[giveplayerid][pMesBanTemp]++; } if(PlayerInfo[giveplayerid][pMesBanTemp] == 9 && PlayerInfo[giveplayerid][pDiaBanTemp] > 30) { PlayerInfo[giveplayerid][pDiaBanTemp] -= 30; PlayerInfo[giveplayerid][pMesBanTemp]++; } if(PlayerInfo[giveplayerid][pMesBanTemp] == 10 && PlayerInfo[giveplayerid][pDiaBanTemp] > 31) { PlayerInfo[giveplayerid][pDiaBanTemp] -= 31; PlayerInfo[giveplayerid][pMesBanTemp]++; } if(PlayerInfo[giveplayerid][pMesBanTemp] == 11 && PlayerInfo[giveplayerid][pDiaBanTemp] > 30) { PlayerInfo[giveplayerid][pDiaBanTemp] -= 30; PlayerInfo[giveplayerid][pMesBanTemp]++; } if(PlayerInfo[giveplayerid][pMesBanTemp] == 12 && PlayerInfo[giveplayerid][pDiaBanTemp] > 31) { PlayerInfo[giveplayerid][pDiaBanTemp] -= 31; PlayerInfo[giveplayerid][pMesBanTemp]++; } if(PlayerInfo[giveplayerid][pMesBanTemp] > 12) { PlayerInfo[giveplayerid][pMesBanTemp] -= 12; PlayerInfo[giveplayerid][pAnoBanTemp]++; } OnPlayerSave(giveplayerid); BanTemp(giveplayerid, "Terceiro aviso", PlayerName(playerid)); return true; } format(string, sizeof(string), "AdmCmd: %s foi avisado por %s, Motivo: %s", giveplayer, sendername, (result)); SendClientMessageToAll(COLOR_LIGHTRED, string); return true; } } else { SendClientMessage(playerid, COLOR_GRAD1, " Esse nгo й um jogador ativo."); } } return true; }