new x1Jogador[MAX_PLAYERS] = {-1, ...}, x1Convidado[MAX_PLAYERS], x1DueloTipo[MAX_PLAYERS]; public OnPlayerDeath(playerid, killerid, reason) { terminarDuelo(playerid); return true; } public OnPlayerDisconnect(playerid, reason) { terminarDuelo(playerid); return true; } public OnPlayerCommandText(playerid, cmdtext[]) { if(!strcmp(cmdtext, "/aceitar", true)) { return comecarDuelo(playerid), true; } if(!strcmp(cmdtext, "/recusar", true)) { return recusarDuelo(playerid) ,true; } if(!strcmp(cmdtext, "/duelo", true, 6)) { static string[24], jogador, tipo ; if(strlen(cmdtext) < 7) { return SendClientMessage(playerid, 0xFFFFFF, "[Erro] Digite /duelo [playerid/nome] [tipo]"); } format(string, 24, cmdtext[7]); if(!sscanf(string, "ui", jogador, tipo)) { return SendClientMessage(playerid, 0xFFFFFF, "[Erro] Digite /duelo [playerid/nome] [tipo]"); } chamarDuelo(playerid, jogador, tipo); } return false; } chamarDuelo(playerid, jogador, tipo) { if(!IsPlayerConnected(jogador) || playerid == jogador || x1Convidado[playerid] || x1Convidado[jogador] || x1Jogador[jogador] != -1 || x1Jogador[playerid] != -1) { return SendClientMessage(playerid, 0xFFFFFF, "[Erro] Escolha outro jogador disponível"), false; } x1Jogador[playerid] = jogador; x1Jogador[jogador] = playerid; x1Convidado[jogador] = true; x1Convidado[playerid] = true; x1DueloTipo[playerid] = tipo; x1DueloTipo[jogador] = tipo; return true; } comecarDuelo(playerid) { if(!IsPlayerConnected(x1Jogador[playerid]) || !x1Convidado[playerid]) { return SendClientMessage(playerid, 0xFFFFFF, "[Erro] Você não foi convidado (jogador que te convidou saiu)"), false; } x1Convidado[playerid] = false; x1Convidado[x1Jogador[playerid]] = false; //SetPlayerPos //SetPlayerHealth //SetPlayerInterior // ... return true; } terminarDuelo(playerid) { if(!IsPlayerConnected(x1Jogador[playerid]) || x1Convidado[playerid]) { if(-1 != x1Jogador[playerid]) { x1Convidado[x1Jogador[playerid]] = false; x1Jogador[x1Jogador[playerid]] = -1; SendClientMessage(x1Jogador[playerid], 0xFFFFFFFF, "Duelo terminado"); SpawnPlayer(x1Jogador[playerid]); } x1Jogador[playerid] = -1; x1Convidado[playerid] = false; } return true; } recusarDuelo(playerid) { if(x1Jogador[playerid] == -1) { return SendClientMessage(playerid, 0xFFFFFF, "[Erro] Você não foi convidado (jogador que te convidou saiu)"), false; } SendClientMessage(playerid, 0xFFFFFF, "[Erro] Duelo recusado"); SendClientMessage(x1Jogador[playerid], 0xFFFFFF, "[Erro] Duelo recusado"); x1Convidado[x1Jogador[playerid]] = false; x1Jogador[x1Jogador[playerid]] = -1; x1Jogador[playerid] = -1; x1Convidado[playerid] = false; } // Não acabado // Por Bruno da Silva // www.ips-team.blogspot.com