Seja Bem Vindo ao meu Tutorial de Como Criar Org para seu server de RPG
No Topo Do GameMode
Includes
Em Baixo das Includes
Defines
Define das Cores
Em Baixo das Defines
Enum
public OnGameModeExit
public OnPlayerRequestClass
OnPlayerConnect
OnPlayerDisconnect
OnPlayerUpdate
OnPlayerSpawn
OnPlayerDeath
OnDialogResponse
No Topo Do GameMode
Includes
- Código:
#include <a_samp>
#include <zcmd> //Adicionando o ZCMD
#include <sscanf> //Adicionando o sscanf
#include <DOF2> //Adicionando o DOF2
Em Baixo das Includes
Defines
- Código:
#define CIVIL 0 // Deixe Civil 0 ! Pois caso ele logue e seja demitido ele ficara como Civil
#define POLICIAM 1
#define GROVE 2
#define BALLAS 3
Define das Cores
- Código:
#define C_CIVIL 0x000000FF
#define C_POLICIAM 0x9999FFF6
#define C_GROVE 0x00D900C8
#define C_BALLAS 0x9900CCF6
Em Baixo das Defines
Enum
- Código:
enum PlayerDados // Server para salvar a org e cargo ao sair do sv
{
Organizacao,
Cargo
}
new pDados[MAX_PLAYERS][PlayerDados];
public OnGameModeExit
- Código:
DOF2_Exit();
public OnPlayerRequestClass
- Código:
public OnPlayerRequestClass(playerid, classid)
{
SpawnPlayer(playerid); //Ao aparecer aqueles setinhas (<<< >>> SPAWN), o jgador irá levar Spawn
return 1;
}
OnPlayerConnect
- Código:
public OnPlayerConnect(playerid)
{
new arquivo[34], playername[MAX_PLAYER_NAME]; //Criamos as váriaveos que irão armazenar o arquivo e o nome do jogador
GetPlayerName(playerid, playername, sizeof(playername)); //Getamos o nome do player
format(arquivo, sizeof(arquivo), "Contas/%s", playername);
pDados[playerid][Organizacao] = DOF2_GetInt(arquivo, "Organização"); //Setamos "pDados[playerid][Organizacao]" de acordo com a TAG getada do "arquivo"
pDados[playerid][Cargo] = DOF2_GetInt(arquivo, "Cargo"); //Setamos "pDados[playerid][Cargo]" de acordo com a TAG getada do "arquivo"
SpawnPlayer(playerid); //Dá SPAWN no player
return 1;
}
OnPlayerDisconnect
- Código:
public OnPlayerDisconnect(playerid, reason)
{
new arquivo[34], playername[MAX_PLAYER_NAME]; //Criamos as váriaveos que irão armazenar o arquivo e o nome do jogador
GetPlayerName(playerid, playername, sizeof(playername)); //Getamos o nome do player
format(arquivo, sizeof(arquivo), "Contas/%s", playername);
if(DOF2_FileExists(arquivo)) //Se a Conta existir
{
DOF2_SetInt(arquivo, "Organização", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organização"
DOF2_SetInt(arquivo, "Cargo", pDados[playerid][Cargo]); //Setamos o valor de "pDados[playerid][Cargo]" no "arquivo", com a TAG "Cargo"
}
else //Se a conta não esxitir
{
DOF2_CreateFile(arquivo); //Cria o arquivo com os Dados do player
DOF2_SetInt(arquivo, "Organização", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organização"
DOF2_SetInt(arquivo, "Cargo", pDados[playerid][Cargo]); //Setamos o valor de "pDados[playerid][Cargo]" no "arquivo", com a TAG "Cargo"
}
return 1;
}
OnPlayerUpdate
- Código:
public OnPlaye(playerid)
{
new arquivo[34], playername[MAX_PLAYER_NAME]; //Criamos as váriaveos que irão armazenar o arquivo e o nome do jogador
GetPlayerName(playerid, playername, sizeof(playername)); //Getamos o nome do player
format(arquivo, sizeof(arquivo), "Contas/%s", playername);
if(DOF2_FileExists(arquivo)) //Se a Conta existir
{
DOF2_SetInt(arquivo, "Organização", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organização"
DOF2_SetInt(arquivo, "Cargo", pDados[playerid][Cargo]); //Setamos o valor de "pDados[playerid][Cargo]" no "arquivo", com a TAG "Cargo"
}
else //Se a conta não esxitir
{
DOF2_CreateFile(arquivo); //Cria o arquivo com os Dados do player
DOF2_SetInt(arquivo, "Organização", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organização"
DOF2_SetInt(arquivo, "Cargo", pDados[playerid][Cargo]); //Setamos o valor de "pDados[playerid][Cargo]" no "arquivo", com a TAG "Cargo"
}
return 1;
}
OnPlayerSpawn
- Código:
public OnPlayerSpawn(playerid)
{
if(pDados[playerid][Organizacao] == CIVIL)
{
SetPlayerPos(playerid, 1677.7240,-1635.5829,14.2266);
}
else if(pDados[playerid][Organizacao] == POLICIAM)
{
SetPlayerPos(playerid, 1530.0186,-1671.5234,6.2188);
}
else if(pDados[playerid][Organizacao] == GROVE)
{
SetPlayerPos(playerid, 2516.1411,-1675.4065,13.9113);
}
else if(pDados[playerid][Organizacao] == BALLAS)
{
SetPlayerPos(playerid, 1099.7534,-1189.1282,18.3361);
}
return 1;
}
OnPlayerDeath
- Código:
public OnPlayerDeath(playerid, killerid, reason)
{
SpawnPlayer(playerid); //Spawn no nego!
return 1;
}
OnDialogResponse
- Código:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 666)
{
new playername[MAX_PLAYER_NAME], string[128]; //Variaveis que irá armazenar o nome e "string"
GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome do player que aparaceu o dialog
if(response) //Se ele clicar em SIM...
{
pDados[playerid][Organizacao] = GetPVarInt(playerid, "OrgConvidado"); //Seta a organização de acordo com a PVarInt do comando /convida
pDados[playerid][Cargo] = 1; //Seta o cargo a 1
format(string, sizeof(string), "%s aceitou seu Convite.", playername); //Formata uma mensagem com o nome do player que aceitou
SendClientMessage(GetPVarInt(playerid, "QuemConvidou"), 0x00FF00FF, string); //Envia a mensgaem a quem convidou
format(string, sizeof(string), "%s é o mais novo membro da Organização.", playername); //Formata uma mensgaem com o nome do player que aceitou
SendFamilyMessage(pDados[playerid][Organizacao], GetPlayerColor(playerid), string); //Manda a mensagem para a organização do player
SendClientMessage(playerid, 0x00FF00FF, "Você aceitou o Convite."); //Manda uma mensagem amigavel ao player que aceitou :P
DeletePVar(playerid, "OrgConvidado"); //Deleta o PVar
DeletePVar(playerid, "QuemConvidou"); //Deleta o PVar
SpawnPlayer(playerid); //Spawn nele!
}
else //Se ele ciclar em NÃO...
{
format(string, sizeof(string), "%s rejeitou seu Convite.", playername); //Formata a mensgaem com o nome do player que rejeitou o convite
SendClientMessage(GetPVarInt(playerid, "QuemConvidou"), 0x00FF00FF, string); //Envia a mensagem a quem convidou o player
SendClientMessage(playerid, 0x00FF00FF, "Você rejeitou o Convite."); //Manda uma mensagem amigavel ao player que rejeitou :P
DeletePVar(playerid, "OrgConvidado"); //Deleta o PVar
DeletePVar(playerid, "QuemConvidou"); //Deleta o PVar
}
}
return 1;
}