#define MAX_VAGAS 10+1 // Quantas vagas tera | 10 - membros + 1 lider
#define MAX_ORGS 10 // Quantoas orgs tem o gamemode
#define OrgSalva "BrasilRolePlay/Organizacao/%d.ini"// local que sera salvo
addlider(idjogador, idorg)
tirarlider(idjogador, idorg)
convidarmembro(idjogador, idorg)
expulsarmembro(idjogador, idorg)
membrosorg(playerid, idorg)/* Abre um dialog com todos membros presentes*
#include a_samp
#include DOF2
#define MAX_VAGAS 10+1
#define MAX_ORGS 10
#define OrgSalva "BrasilRolePlay/Organizacao/%d.ini"
new VagasORG[][MAX_VAGAS] = {
"Lнder", "Membro-1", "Membro-2", "Membro-3", "Membro-4", "Membro-5", "Membro-6", "Membro-7", "Membro-8", "Membro-9", "Membro-10"
};
new string2[24];
stock DonPegaNome(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
return name;
}
forward ORGCarrega();
public ORGCarrega()
{
print("\n [ SISTEMA DE INFOORG BY DON SPEED ]");
for(new vagads = 1; vagads < MAX_ORGS; vagads++)
{
format(string2, sizeof(string2), OrgSalva, vagads);
if(!DOF2_FileExists(string2))
{
DOF2_CreateFile(string2);
for(new i=0; i< sizeof VagasORG; i++)
{
DOF2_SetString(string2,VagasORG[i], "Nenhum");
}
DOF2_SaveFile();
}
}
return true;
}
stock addlider(playerid, idorg)
{
format(string2, sizeof(string2), OrgSalva, idorg);
if(!DOF2_FileExists(string2))return true;
if(!strcmp(DOF2_GetString(string2,VagasORG[0]),"Nenhum",true))
{
DOF2_SetString(string2,VagasORG[0], DonPegaNome(playerid));
DOF2_SaveFile();
}
return true;
}
stock tirarlider(playerid, idorg)
{
format(string2, sizeof(string2), OrgSalva, idorg);
if(!DOF2_FileExists(string2))return true;
if(!strcmp(DOF2_GetString(string2,VagasORG[0]),"Nenhum",true))return SendClientMessage(playerid, -1, "Erro nao tem lider nesta org.");
DOF2_SetString(string2,VagasORG[0], "Nenhum");
return true;
}
stock convidarmembro(playerid, idorg)
{
format(string2, sizeof(string2), OrgSalva, idorg);
if(!DOF2_FileExists(string2))return true;
for(new i=1; i< sizeof VagasORG; i++)
{
if(!strcmp(DOF2_GetString(string2,VagasORG[i]), "Nenhum",true))
{
DOF2_SetString(string2, VagasORG[i], DonPegaNome(playerid));
DOF2_SaveFile();
return true;
}
}
return true;
}
stock expulsarmembro(playerid, idorg)
{
format(string2, sizeof(string2), OrgSalva, idorg);
if(!DOF2_FileExists(string2))return true;
for(new i=1; i< sizeof VagasORG; i++)
{
if(!strcmp(DOF2_GetString(string2,VagasORG[i]), DonPegaNome(playerid),true))
{
DOF2_SetString(string2, VagasORG[i], "Nenhum");
DOF2_SaveFile();
return true;
}
}
return true;
}
stock membrosorg(playerid, idorg)
{
new corda[700], wiki[500];
format(string2, sizeof(string2), OrgSalva, idorg);
for(new i=0; i< sizeof VagasORG; i++)
{
format(wiki, sizeof wiki,"{FFFFFF}%s : %s\n",VagasORG[i], DOF2_GetString(string2,VagasORG[i]));
strcat(corda, wiki);
}
ShowPlayerDialog(playerid, 1000, DIALOG_STYLE_MSGBOX, "Minha ORG", corda,"Sair", #);
return true;
}
Sу ver essa print ai jб deu vontade de ir codar meu GM RP
![]() Bom trabalho, gostei +rep |
stock DonPegaNome(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
return name;
}
new GetPName[MAX_PLAYERS][MAX_PLAYER_NAME];
Bom mas isso aqui й inutil
PHP код:
PHP код:
+REP |
Bom mas isso aqui й inutil
PHP код:
PHP код:
+REP |
estou trazendo o que sei fazer nгo o que e o melhor.
Mas explique melhor sobre isto. |
Bom mas isso aqui й inutil
PHP код:
PHP код:
+REP |
Ele quer dizer utilizar uma array para salvar os nomes dos jogadores apenas uma vez ao entrar no servidor, assim nгo tem a necessidade de re-utilizar a funзгo nativa GetPlayerName, podendo usar a array para obter/comparar o nome do jogador.
|
// #memberList.pwn script
#if !defined isnull
#define isnull(%1) ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
#endif
#define FACTION_LIMIT 10 // #total maximo de organizaзхes;
#define MEMBERS_LIMIT 10 // #total maximo de membros em uma unica organizaзгo;
// ---
#define MEMBER_LEADER_LEVEL 6 // #nivel do lider;
#define MEMBER_SUBLEADER_LEVEL 5 // #nivel do sublider;
// ---
#define INVALID_FACTION_ID (FACTION_LIMIT + 1) // #id invalido para retorno;
#define INVALID_MEMBER_LIST_ID (MEMBERS_LIMIT + 1) // #id invalido para retorno;
enum E_MEMBER_LIST_DATA
{
MemberList_PlayerName[MAX_PLAYER_NAME],
MemberList_PlayerLevel,
}
new MemberList[FACTION_LIMIT][MEMBERS_LIMIT][E_MEMBER_LIST_DATA];
stock MemberList_Add(factionId, playerName[MAX_PLAYER_NAME], playerLevel) {
new str_tmp[MAX_PLAYER_NAME];
if(factionId => FACTION_LIMIT)
return false;
for(new i = 0; i < MEMBERS_LIMIT; i++)
{
getMemberListPlayerName(factionId, i, str_tmp);
if(isnull(str_tmp))
{
setMemberListPlayerName(factionId, i, playerName[MAX_PLAYER_NAME]);
setMemberListPlayerLevel(factionId, i, playerLevel);
return true;
}
}
return false;
}
stock MemberList_Remove(playerName[MAX_PLAYER_NAME])
{
new factionId = getPlayerFactionByName(playerName);
new memberListId = getPlayerMemberListByName(playerName);
if(factionId == FACTION_LIMIT)
return false;
if(memberListId == MEMBERS_LIMIT)
return false;
setMemberListPlayerName(factionId, memberListId, "");
setMemberListPlayerLevel(factionId, memberListId, 0);
return true;
}
// ** is
stock MemberList_IsLeader(playerName[MAX_PLAYER_NAME])
{
new factionId = getPlayerFactionByName(playerName);
new memberListId = getPlayerMemberListByName(playerName);
if(factionId == FACTION_LIMIT)
return false;
if(memberListId == MEMBERS_LIMIT)
return false;
if(getMemberListPlayerLevel(factionId, memberListId) == MEMBER_LEADER_LEVEL)
return true;
return false;
}
stock MemberList_IsSubLeader(playerName[MAX_PLAYER_NAME])
{
new factionId = getPlayerFactionByName(playerName);
new memberListId = getPlayerMemberListByName(playerName);
if(factionId == FACTION_LIMIT)
return false;
if(memberListId == MEMBERS_LIMIT)
return false;
if(getMemberListPlayerLevel(factionId, memberListId) == MEMBER_SUBLEADER_LEVEL)
return true;
return false;
}
// ** get
stock MemberList_GetName(factionId, memberListId, playerName[MAX_PLAYER_NAME])
{
if(factionId => FACTION_LIMIT)
return false;
if(memberListId => MEMBERS_LIMIT)
return false;
format(playerName, MAX_PLAYER_NAME, "%s", MemberList[factionId][memberListId][MemberList_PlayerName]);
return true;
}
stock MemberList_GetLevel(factionId, memberListId)
{
if(factionId => FACTION_LIMIT)
return false;
if(memberListId => MEMBERS_LIMIT)
return false;
return MemberList[factionId][memberListId][MemberList_PlayerLevel];
}
stock MemberList_GetFactionByName(playerName[MAX_PLAYER_NAME])
{
new str_tmp[MAX_PLAYER_NAME];
for(new factionId = 0; factionId < FACTION_LIMIT; factionId++)
{
for(new memberListId = 0; memberListId < MEMBERS_LIMIT; memberListId++)
{
getMemberListPlayerName(factionId, memberListId, str_tmp);
if(isnull(str_tmp))
return INVALID_FACTION_ID;
if(!strcmp(playerName, str_tmp, false)) {
return factionId;
}
}
}
return INVALID_FACTION_ID;
}
stock MemberList_GetIdByName(playerName[MAX_PLAYER_NAME])
{
new factionId = getPlayerFactionByName(playerName);
if(factionId == INVALID_FACTION_ID)
return INVALID_MEMBER_LIST_ID;
for(new memberListId = 0; memberListId < MEMBERS_LIMIT; memberListId++)
{
getMemberListPlayerName(factionId, memberListId, str_tmp);
if(isnull(str_tmp))
return INVALID_FACTION_ID;
if(!strcmp(playerName, str_tmp, false)) {
return memberListId;
}
}
return INVALID_MEMBER_LIST_ID;
}
// ** set
stock MemberList_SetName(factionId, memberListId, playerName[MAX_PLAYER_NAME])
{
if(factionId => FACTION_LIMIT)
return false;
if(memberListId => MEMBERS_LIMIT)
return false;
format(MemberList[factionId][memberListId][MemberList_PlayerName], MAX_PLAYER_NAME, "%s", playerName);
return true;
}
stock MemberList_SetLevel(factionId, memberListId, playerLevel)
{
if(factionId => FACTION_LIMIT)
return false;
if(memberListId => MEMBERS_LIMIT)
return false;
MemberList[factionId][memberListId][MemberList_PlayerLevel] = playerLevel;
return true;
}
/*
MemberList_Add(faction_id, string player_name, player_level)
MemberList_Remove(string player_name)
MemberList_IsLeader(string player_name)
MemberList_IsLeader(string player_name)
MemberList_IsSubLeader(string player_name)
MemberList_GetName(faction_id, member_list_id, string player_name)
MemberList_GetLevel(faction_id, member_list_id)
MemberList_GetFactionByName(string player_name)
MemberList_GetIdByName(string player_name)
MemberList_SetName(faction_id, member_list_id, string player_name)
MemberList_SetLevel(faction_id, member_list_id, player_level)
*/
hook OnGameModeInit() {
// for (loop em todos os jogadores armazenados)
// if (verificar se o jogador esta em uma organizacao)
// se o jogador estiver em uma organizacoes (inserir no sistema)
MemberList_Add(organizacao, nome_jogador, cargo_jogador);
return true;
}