24.03.2015, 01:37
Bom, alguns dias atrбs comecei a fazer um GM RPG do 0, mas um GM RPG й bem grande, precisa ser bem feito para nгo dar lag e bugs, gostaria que vocкs revissem 2 cуdigos, ver se estou fazendo do jeito certo e se a logica estб certa.
Comando de aceitar convite pra org:
Outro cуdigo que usei quase a mesma logica:
Tem jeito mais simples de fazer isso? pois ficou meio confuso a parte de procurar uma vaga no arquivo da org
Comando de aceitar convite pra org:
PHP код:
CMD:aceitarc(playerid)
{
if(Logado[playerid] == false) return SendClientMessage(playerid, COR_ERRO, "Logue antes de digitar algum comando");
if(Convite[playerid] == 0)
{
SendClientMessage(id, COR_ERRO, "Vocк nгo foi convidado para nenhuma Organizaзгo");
return 1;
}
Player[playerid][Org] = Convite[playerid]; //a variavel Convite armazena o ID da org para qual o player foi convidado
Convite[playerid] = 0;
format(Str, sizeof(Str), "Vocк entrou para organizaзгo: {FF0000}%s", NomeOrgg(Player[playerid][Org]));
SendClientMessage(id, COR_GERAL, Str);
new Orgfile[40];
format(Orgfile, sizeof(Orgfile), "Orgs/Org%d.ini", Player[playerid][Org]);
new Membro[20];
new Membrovago[20];
for(new i = 1; i < 21; i++) //Esse loop procura uma vaga no arquivo da org, exemplo "Membro3 = Ningъem", ai seta o nome do player la
{
format(Membrovago, sizeof(Membrovago), "Membro%d", i);
format(Membro, 20, "%s", DOF2_GetString(Orgfile, Membrovago));
if(!strcmp(Membro, "Ninguйm", true))
{
GetPlayerName(playerid, nomep, sizeof(nomep));
DOF2_SetString(Orgfile, Membrovago, nomep);
DOF2_SaveFile();
return 1;
}
}
return 1;
}
PHP код:
CMD:demitir(playerid, params[])
{
if(Logado[playerid] == false) return SendClientMessage(playerid, COR_ERRO, "Logue antes de digitar algum comando");
if(Player[playerid][Lider] == 0 && Player[playerid][CargoOrg] != 5)
{
SendClientMessage(playerid, COR_ERRO, "Vocк nгo й um Lider Ou Sub Lider");
return 1;
}
if(sscanf(params, "i", id))
{
SendClientMessage(playerid, COR_ERRO, "Use: /Demitir [ID]");
return 1;
}
if(!IsPlayerConnected(id))
{
SendClientMessage(playerid, COR_ERRO, "Este ID nгo estб Online, use /LimparVaga");
return 1;
}
if(Player[id][Lider] != 0)
{
SendClientMessage(playerid, COR_ERRO, "Este player nгo pertence a sua organizaзгo");
return 1;
}
if(Player[playerid][Lider] != 0){
if(Player[playerid][Lider] != Player[id][Org])
{
SendClientMessage(playerid, COR_ERRO, "Este player nгo pertence a sua organizaзгo");
return 1;
}
if(Player[playerid][CargoOrg] == 5){
if(Player[playerid][Org] != Player[id][Org])
{
SendClientMessage(playerid, COR_ERRO, "Este player nгo pertence a sua organizaзгo");
return 1;
}
}
}
Player[id][Org] = 0;
Player[id][CargoOrg] = 0;
new msg1[80], msg2[80];
format(msg1, sizeof(msg1), "Vocк demitiu: {FF0000}%s", GetName(id));
format(msg2, sizeof(msg2), "Vocк foi demitido por: {FF0000}%s", GetName(playerid));
SendClientMessage(playerid, COR_GERAL, msg1);
SendClientMessage(id, COR_GERAL, msg2);
new Orgfile[35];
if(Player[playerid][Lider] != 0) format(Orgfile, sizeof(Orgfile), "Orgs/Org%d", Player[playerid][Lider]);
if(Player[playerid][CargoOrg] == 5) format(Orgfile, sizeof(Orgfile), "Orgs/Org%d", Player[playerid][Org]);
new Membro[20];
new Membrovago[20];
for(new i = 1; i < 21; i++)
{
format(Membrovago, sizeof(Membrovago), "Membro%d", i);
format(Membro, 20, "%s", DOF2_GetString(Orgfile, Membrovago));
if(!strcmp(Membro, GetName(id), true))
{
DOF2_SetString(Orgfile, Membrovago, "Ninguйm");
DOF2_SaveFile();
return 1;
}
}
return 1;
}