19/10/2021 22:26
(Esta mensagem foi modificada pela última vez a: 20/10/2021 00:57 por xbruno1000x.)
Fala galerinha , é o seguinte , eu extrai um sistema de infoorg e os respectivos comandos do mesmo da gamemode do BPG, eu os converti para DOF2 e zcmd .
e me deparei em uma falha no comando de promover o player .
Na teoria quando o líder promover um membro a sub-lider , ele ira ocupar a vaga de sub-lider no /infoorg e sua vaga antiga será resetada , porém isso não acontece , o player ocupa as duas vagas. irei disponibilizar o código.
e me deparei em uma falha no comando de promover o player .
Na teoria quando o líder promover um membro a sub-lider , ele ira ocupar a vaga de sub-lider no /infoorg e sua vaga antiga será resetada , porém isso não acontece , o player ocupa as duas vagas. irei disponibilizar o código.
Código:
CMD:promover(playerid, params[])
{
if(IsPlayerConnected(playerid))
{
new para1;
new level;
if(sscanf(params, "ud", para1, level))return SendClientMessage(playerid, COLOR_GRAD2, "USE: /promover [ID/Nick] [Cargos (1-5)]");
if(level > 5 || level < 1) { SendClientMessage(playerid, COLOR_GREY, "Cargos de 1 a 5, Cargo 5 é Sub-Líder!"); return 1; }
if(PlayerInfo[playerid][pLider] > 0)
{
if(IsPlayerConnected(para1))
{
if(PlayerInfo[para1][pOrganizacao] == PlayerInfo[playerid][pLider])
{
if(para1 != INVALID_PLAYER_ID)
{
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[para1][pCargo] = level;
format(string, sizeof(string), "Você foi promovido pelo líder %s para o cargo %d.", sendername, level);
SendClientMessage(para1, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "Você promoveu %s para o cargo %d.", giveplayer,level);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
new org = PlayerInfo[playerid][pLider];
if(level == 5)
{
if(strcmp(InfoOrg[org][SubLider],"Ninguem",true)==0)
{
DemitirInfoOrg(giveplayer);
ConviteInfoOrg(giveplayer, org, 5);
}
else
{
strmid(string, InfoOrg[org][SubLider], 0, strlen(InfoOrg[org][SubLider]), 255);
DemitirInfoOrg(giveplayer);
DemitirInfoOrg(InfoOrg[org][SubLider]);
ConviteInfoOrg(string, org, 4);
ConviteInfoOrg(giveplayer, org, 5);
}
}
if(strcmp(InfoOrg[org][SubLider],giveplayer,true)==0)
{
if(level < 5)
{
DemitirInfoOrg(giveplayer);
ConviteInfoOrg(giveplayer, org, level);
}
}
return 1;
}
if(PlayerInfo[para1][pOrganizacao] != PlayerInfo[playerid][pLider])
{
SendClientMessage(playerid, COLOR_GREY, "Não pode promover quem não é da sua org.");
return 1;
}
}
}//not connected
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Você não é um líder !");
}
}
return 1;
}
Código:
forward ConviteInfoOrg(nome[], org, cargo);
public ConviteInfoOrg(nome[], org, cargo)
{
new arquivo[150];
format(arquivo, sizeof(arquivo), "ORG Arquivos/Org%d.cfg",org);
if(cargo >= 6)
{
strmid(InfoOrg[org][Lider], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Lider",nome);
return 1;
}
if(cargo == 5)
{
if(strcmp(InfoOrg[org][SubLider],"Ninguem",true)==0)
{
strmid(InfoOrg[org][SubLider], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"SubLider",nome);
return 1;
}
}
if(strcmp(InfoOrg[org][Membro1],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro1], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro1",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro2],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro2], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro2",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro3],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro3], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro3",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro4],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro4], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro4",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro5],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro5], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro5",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro6],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro6], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro6",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro7],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro7], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro7",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro8],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro8], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro8",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro9],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro9], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro9",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro10],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro10], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro10",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro11],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro11], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro11",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro12],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro12], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro12",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro13],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro13], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro13",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro14],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro14], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro14",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro15],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro15], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro15",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro16],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro16], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro16",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro17],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro17], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro17",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro18],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro18], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro18",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro19],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro19], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro19",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro20],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro20], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro20",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro21],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro21], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro21",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro22],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro22], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro22",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro23],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro23], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro23",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro24],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro24], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro24",nome);
return 1;
}
if(strcmp(InfoOrg[org][Membro25],"Ninguem",true)==0)
{
strmid(InfoOrg[org][Membro25], nome, 0, strlen(nome), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro25",nome);
return 1;
}
return 0;
}
Código:
forward DemitirInfoOrg(nome[]);
public DemitirInfoOrg(nome[])
{
new arquivo[150];
for(new i = 1; i < sizeof(InfoOrg); i++)
{
format(arquivo, sizeof(arquivo), "ORG Arquivos/Org%d.cfg",i);
if(strcmp(nome,InfoOrg[i][Lider],true)==0)
{
strmid(InfoOrg[i][Lider], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Lider","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][SubLider],true)==0)
{
strmid(InfoOrg[i][SubLider], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"SubLider","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro1],true)==0)
{
strmid(InfoOrg[i][Membro1], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro1","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro2],true)==0)
{
strmid(InfoOrg[i][Membro2], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro2","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro3],true)==0)
{
strmid(InfoOrg[i][Membro3], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro3","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro4],true)==0)
{
strmid(InfoOrg[i][Membro4], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro4","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro5],true)==0)
{
strmid(InfoOrg[i][Membro5], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro5","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro6],true)==0)
{
strmid(InfoOrg[i][Membro6], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro6","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro7],true)==0)
{
strmid(InfoOrg[i][Membro7], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro7","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro8],true)==0)
{
strmid(InfoOrg[i][Membro8], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro8","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro9],true)==0)
{
strmid(InfoOrg[i][Membro9], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro9","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro10],true)==0)
{
strmid(InfoOrg[i][Membro10], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro10","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro11],true)==0)
{
strmid(InfoOrg[i][Membro11], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro11","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro12],true)==0)
{
strmid(InfoOrg[i][Membro12], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro12","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro13],true)==0)
{
strmid(InfoOrg[i][Membro13], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro13","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro14],true)==0)
{
strmid(InfoOrg[i][Membro14], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro14","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro15],true)==0)
{
strmid(InfoOrg[i][Membro15], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro15","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro16],true)==0)
{
strmid(InfoOrg[i][Membro16], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro16","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro17],true)==0)
{
strmid(InfoOrg[i][Membro17], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro17","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro18],true)==0)
{
strmid(InfoOrg[i][Membro18], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro18","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro19],true)==0)
{
strmid(InfoOrg[i][Membro19], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro19","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro20],true)==0)
{
strmid(InfoOrg[i][Membro20], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro20","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro21],true)==0)
{
strmid(InfoOrg[i][Membro21], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro21","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro22],true)==0)
{
strmid(InfoOrg[i][Membro22], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro22","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro23],true)==0)
{
strmid(InfoOrg[i][Membro23], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro23","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro24],true)==0)
{
strmid(InfoOrg[i][Membro24], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro24","Ninguem");
return 1;
}
if(strcmp(nome,InfoOrg[i][Membro25],true)==0)
{
strmid(InfoOrg[i][Membro25], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
DOF2_SetString(arquivo,"Membro25","Ninguem");
return 1;
}
}
return 0;
}