Local de Spawn -
LeonardoBCF - 01.05.2013
Olha to adaptando um sistema de equipes do rjjj, mas ja tem um cmd no GM que define o local de spawn do player ao ser spawnado
Que e esse:
PHP код:
if(strcmp(cmd, "/localSpawn", true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, "|________________________________________|");
SendClientMessage(playerid, COLOR_WHITE, "/Localspawn [nome]");
SendClientMessage(playerid, COLOR_WHITE, "Nomes: HQ, Casa");
SendClientMessage(playerid, COLOR_GREY, "|________________________________________|");
return 1;
}
if(strcmp(tmp, "hq", true) == 0)
{
if(PlayerInfo[playerid][pPhousekey] != 255)
{
LocalSpawn[playerid] = 0;
SendClientMessage(playerid, COLOR_GREY, "Agora voce ira spawnar na HQ");
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Voce precisa ter casa para usar esse comando");
return 1;
}
}
else if(strcmp(tmp, "casa", true) == 0)
{
if(PlayerInfo[playerid][pPhousekey] != 255)
{
LocalSpawn[playerid] = 1;
SendClientMessage(playerid, COLOR_GREY, "Agora voce ira spawnar em casa");
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Voce precisa ter casa para usar esse comando");
return 1;
}
}
else {
SendClientMessage(playerid, COLOR_GREY, "/Localspawn [nome]");
return 1;
}
}
mas queria que no comando tivesse o if(strcmp(tmp, "equipe", true) == 0), como o spawn e salvo diferente da maneira "normal" do GM nao faso ideal de como fazer isso to pedindo a juda de vcs =D
Ao salvar
PHP код:
if(PlayerTemEquipe[playerid])
{
if(listitem == 1)
{
if(GetPlayerGP(playerid) < 50000) return SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк nгo tem dinheiro suficiente !");
if(PlayerInfo[playerid][pDonateRank] < 1) return SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк nгo e um VIP !");
ShowPlayerDialog(playerid,OpcoesPainel, DIALOG_STYLE_INPUT,
"[ -- Equipes - Opзхes -- ]", "[ --- Spawn --- ]\n\nDigite as Coordenadas X,Y,Z do Local de Spawn da Sua familia no seguinte formato:\n\nX,Y,Z\n\nEm seguinda pressione OK.\nObs:Para que o Local de Spawn seja onde vocк estб no momento, digite no espaзo abaixo: Local.\n\n",
"OK", "Sair");
SetPVarInt(playerid,"PainelValue",2);
return 1;
}
PHP код:
enum InGameStatus
{
Equipe[40],Tag[10],Cor,Float:SpawnGameX,Float:SpawnGameY,Float:SpawnGameZ,SkinEquipeGame1,SkinEquipeGame2,SkinEquipeGame3,
}
new InGame[MAX_PLAYERS][InGameStatus];
new bool:Spawned[MAX_PLAYERS];
Salva nas scriptfiles
PHP код:
if(!Spawned[playerid])
{
Spawned[playerid] = true;
new NickName[MAX_PLAYER_NAME],text[100];
GetPlayerName(playerid,NickName,sizeof(NickName));
format(text,sizeof(text),"/Equipes/%s.txt",NickName);
if(!Fini_Exists(text))
{
Fini_Create(text);
Fini_OpenFile(text);
Fini_SetStr("RecrutaDeOutroPlayer",PlayerRecrutaDeOutroPlayer[playerid]);
Fini_SetStr("NomeEquipe",PlayerEquipe[playerid]);
Fini_SetStr("Tag",EquipeTag[playerid]);
Fini_SetVal("Cor",CorEquipe[playerid]);
Fini_SetFloat("SpawnX",Spawn[playerid][0]);
Fini_SetFloat("SpawnY",Spawn[playerid][1]);
Fini_SetFloat("SpawnZ",Spawn[playerid][2]);
Fini_SetVal("Skin1",SkinEquipe[playerid][0]);
Fini_SetVal("Skin2",SkinEquipe[playerid][1]);
Fini_SetVal("Skin3",SkinEquipe[playerid][2]);
Fini_SetVal("Cargo",RankPlayer[playerid]);
Fini_SetBool("PlayerTemEquipe",PlayerTemEquipe[playerid]);
Fini_SetBool("PlayerMembroEquipe",PlayerMembroEquipe[playerid]);
Fini_SaveFile();
Fini_CloseFile();
}
else
{
Fini_OpenFile(text);
strmid(PlayerRecrutaDeOutroPlayer[playerid],Fini_GetStr("RecrutaDeOutroPlayer"),false,strlen(Fini_GetStr("RecrutaDeOutroPlayer")),MAX_PLAYER_NAME);
strdel(PlayerRecrutaDeOutroPlayer[playerid],(strlen(PlayerRecrutaDeOutroPlayer[playerid])-2),(strlen(PlayerRecrutaDeOutroPlayer[playerid])));
format(string,sizeof(string),"/Equipes/%s.txt",PlayerRecrutaDeOutroPlayer[playerid]);
RankPlayer[playerid] = Fini_GetValue("Cargo");
PlayerTemEquipe[playerid] = (Fini_GetBool("PlayerTemEquipe") == 1) ? true : false;
PlayerMembroEquipe[playerid] = (Fini_GetBool("PlayerMembroEquipe") == 1) ? true : false;
Fini_SaveFile();
Fini_CloseFile();
if(strlen(PlayerRecrutaDeOutroPlayer[playerid]) > 2)
{
if(Fini_Exists(string))
{
Fini_OpenFile(string);
strmid(InGame[playerid][Equipe],Fini_GetStr("NomeEquipe"),false,strlen(Fini_GetStr("NomeEquipe")),MAX_PLAYER_NAME);
strmid(InGame[playerid][Tag],Fini_GetStr("Tag"),false,strlen(Fini_GetStr("Tag")),10);
InGame[playerid][Cor] = Fini_GetValue("Cor");
InGame[playerid][SpawnGameX] = Fini_GetFloat("SpawnX");
InGame[playerid][SpawnGameY] = Fini_GetFloat("SpawnY");
InGame[playerid][SpawnGameZ] = Fini_GetFloat("SpawnZ");
InGame[playerid][SkinEquipeGame1] = Fini_GetValue("Skin1");
InGame[playerid][SkinEquipeGame2] = Fini_GetValue("Skin2");
InGame[playerid][SkinEquipeGame3] = Fini_GetValue("Skin3");
Fini_SaveFile();
Fini_CloseFile();
SetPlayerColor(playerid,InGame[playerid][Cor]);
SetPlayerPos(playerid,InGame[playerid][SpawnGameX],InGame[playerid][SpawnGameY],InGame[playerid][SpawnGameZ]);
new Roll = random(2);
if(Roll == 0) SetPlayerSkin(playerid,InGame[playerid][SkinEquipeGame1]);
else if(Roll == 1) SetPlayerSkin(playerid,InGame[playerid][SkinEquipeGame1]);
else if(Roll == 2) SetPlayerSkin(playerid,InGame[playerid][SkinEquipeGame1]);
GetPVarString(playerid, "Nome Original", AtualNome, sizeof(AtualNome));
format(NovoNome,40,"[%s]%s",InGame[playerid][Tag],AtualNome);
SetPlayerName(playerid,NovoNome);
SetSpawnInfo(playerid, GetPlayerTeam(playerid),GetPlayerSkin(playerid),InGame[playerid][SpawnGameX],InGame[playerid][SpawnGameY],InGame[playerid][SpawnGameZ], 0, 0, 0, 0, 0, 0, 0);
}
}
}
}
Re: Local de Spawn -
FixSkuL - 01.05.2013
Explica direito, nгo entendi nada.
Re: Local de Spawn -
LeonardoBCF - 01.05.2013
o sistema de equipe tem como definir um local de spawn !
o meu gm ja tem um comando que define o local de spawn se vai nascer na CASA ou HQ, queria que o local da familia tambem fosse selecionado pelo comando /localspawn [nome]
HQ, Casa, (Equipe) = que quero
Re: Local de Spawn -
FixSkuL - 01.05.2013
O nъmero do
LocalSpawn[playerid] da familia й qual ?
Observe o prуpio cуdigo e vai saber como se faz:
pawn Код:
else if(strcmp(tmp, "casa", true) == 0)
{
if(PlayerInfo[playerid][pPhousekey] != 255)
{
LocalSpawn[playerid] = 1;
SendClientMessage(playerid, COLOR_GREY, "Agora voce ira spawnar em casa");
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Voce precisa ter casa para usar esse comando");
return 1;
}
Re: Local de Spawn -
LeonardoBCF - 01.05.2013
ae que esta o problema o local de spawn da familia o player que faz In-Game, ele colocas as cordenadas no caixa em dialog, tendeu agora?
Re: Local de Spawn -
FixSkuL - 01.05.2013
Suponhamos que seja:
LocalSpawn[playerid] = 0 -
HQ
LocalSpawn[playerid] = 1 -
Casa
Agora coloque uma valor que nгo esteja em uso
LocalSpawn[playerid] = 2
Familia(Troque para qualquer outro que nгo esteja em uso)
Teria como postar o cуdigo do spawn do jogador ?
Re: Local de Spawn -
LeonardoBCF - 01.05.2013
Voce nao ta entendo, esse local de spawn definido em Casa e HQ, esta no GM, cordenadas fixas.
As cordenadas das familias e aleatoria o player que vai escolher dentro do jogo. ele vai dar um /save, pegar as cordenadas do save entrar no server colocar /painelequipe, colar as cordenadas e assim vai salvar nas scriptfiles o save da familia 1.
mesmo assim ta ae os cods
pawn Код:
if(house != 255 && LocalSpawn[playerid] == 1)
{
if(SpawnChange[playerid])
{
SetPlayerToTeamColor(playerid);
if(PlayerInfo[playerid][pDonateRank] == 1)
{
SetPlayerArmour(playerid, 60);
SafeGivePlayerWeapon(playerid, 24, 100);
SafeGivePlayerWeapon(playerid, 29, 300);
SafeGivePlayerWeapon(playerid, 31, 300);
}
else if(PlayerInfo[playerid][pDonateRank] == 2)
{
SetPlayerArmour(playerid, 90);
SafeGivePlayerWeapon(playerid, 24, 999);
SafeGivePlayerWeapon(playerid, 29, 999);
SafeGivePlayerWeapon(playerid, 31, 999);
}
if(PlayerInfo[playerid][pLeader] == 8 || PlayerInfo[playerid][pMember] == 8)
{
SafeGivePlayerWeapon(playerid, 4, 1);
}
else if(PlayerInfo[playerid][pLeader] == 12 || PlayerInfo[playerid][pMember] == 12)
{
SafeGivePlayerWeapon(playerid, 24, 50);
SafeGivePlayerWeapon(playerid, 5, 1);
SafeGivePlayerWeapon(playerid, 1, 1);
}
else if(PlayerInfo[playerid][pLeader] == 5 || PlayerInfo[playerid][pMember] == 5)
{
SafeGivePlayerWeapon(playerid, 24, 50);
SafeGivePlayerWeapon(playerid, 5, 1);
SafeGivePlayerWeapon(playerid, 1, 1);
}
else if(PlayerInfo[playerid][pLeader] == 6 || PlayerInfo[playerid][pMember] == 6)
{
SafeGivePlayerWeapon(playerid, 24, 50);
SafeGivePlayerWeapon(playerid, 5, 1);
SafeGivePlayerWeapon(playerid, 1, 1);
}
else if(PlayerInfo[playerid][pLeader] == 15 || PlayerInfo[playerid][pMember] == 15)
{
SafeGivePlayerWeapon(playerid, 24, 50);
SafeGivePlayerWeapon(playerid, 5, 1);
SafeGivePlayerWeapon(playerid, 1, 1);
}
else if(PlayerInfo[playerid][pLeader] == 10 || PlayerInfo[playerid][pMember] == 10)
{
SafeGivePlayerWeapon(playerid, 24, 50);
SafeGivePlayerWeapon(playerid, 5, 1);
SafeGivePlayerWeapon(playerid, 1, 1);
}
else if(PlayerInfo[playerid][pLeader] == 11 || PlayerInfo[playerid][pMember] == 11)
{
SafeGivePlayerWeapon(playerid, 24, 50);
SafeGivePlayerWeapon(playerid, 5, 1);
SafeGivePlayerWeapon(playerid, 1, 1);
}
else if(PlayerInfo[playerid][pLeader] == 16 || PlayerInfo[playerid][pMember] == 16)
{
SafeGivePlayerWeapon(playerid, 22, 100);
SafeGivePlayerWeapon(playerid, 8, 1);
}
else if(PlayerInfo[playerid][pLeader] == 17 || PlayerInfo[playerid][pMember] == 17)
{
SafeGivePlayerWeapon(playerid, 22, 100);
SafeGivePlayerWeapon(playerid, 8, 1);
}
else if(PlayerInfo[playerid][pLeader] == 18 || PlayerInfo[playerid][pMember] == 18)
{
SafeGivePlayerWeapon(playerid, 24, 50);
SafeGivePlayerWeapon(playerid, 5, 1);
SafeGivePlayerWeapon(playerid, 1, 1);
}
else if(PlayerInfo[playerid][pLeader] == 19 || PlayerInfo[playerid][pMember] == 19)
{
SafeGivePlayerWeapon(playerid, 24, 50);
SafeGivePlayerWeapon(playerid, 5, 1);
SafeGivePlayerWeapon(playerid, 1, 1);
}
else if(PlayerInfo[playerid][pLeader] == 20 || PlayerInfo[playerid][pMember] == 20)
{
SafeGivePlayerWeapon(playerid, 24, 50);
SafeGivePlayerWeapon(playerid, 5, 1);
SafeGivePlayerWeapon(playerid, 1, 1);
}
else if(PlayerInfo[playerid][pLeader] == 21 || PlayerInfo[playerid][pMember] == 21)
{
SafeGivePlayerWeapon(playerid, 24, 50);
}
else if(PlayerInfo[playerid][pLeader] == 23 || PlayerInfo[playerid][pMember] == 23)
{
SafeGivePlayerWeapon(playerid, 24, 300);
}
else if(PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] == 2)
{
SafeGivePlayerWeapon(playerid, 24, 50);
}
else if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1)
{
SafeGivePlayerWeapon(playerid, 24, 50);
}
else if(PlayerInfo[playerid][pLeader] == 3 || PlayerInfo[playerid][pMember] == 3)
{
SafeGivePlayerWeapon(playerid, 24, 50);
}
else
SetPlayerToTeamColor(playerid);
SetPlayerInterior(playerid,HouseInfo[house][hInt]);
SetPlayerPos(playerid, HouseInfo[house][hExitx], HouseInfo[house][hExity],HouseInfo[house][hExitz]);
PlayerInfo[playerid][pLocal] = house;
PlayerInfo[playerid][pInt] = HouseInfo[house][hInt];
return 1;
}
}