[Ajuda] Local de Spawn
#1

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(cmdtextidx);
        if(!
strlen(tmp))
        {
            
SendClientMessage(playeridCOLOR_GREY"|________________________________________|");
            
SendClientMessage(playeridCOLOR_WHITE"/Localspawn [nome]");
            
SendClientMessage(playeridCOLOR_WHITE"Nomes: HQ, Casa");
            
SendClientMessage(playeridCOLOR_GREY"|________________________________________|");
            return 
1;
        }
        if(
strcmp(tmp"hq"true) == 0)
        {
            if(
PlayerInfo[playerid][pPhousekey] != 255)
            {
                
LocalSpawn[playerid] = 0;
                
SendClientMessage(playeridCOLOR_GREY"Agora voce ira spawnar na HQ");
                return 
1;
            }
            else
            {
                
SendClientMessage(playeridCOLOR_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(playeridCOLOR_GREY"Agora voce ira spawnar em casa");
                return 
1;
            }
            else
            {
                
SendClientMessage(playeridCOLOR_GREY"Voce precisa ter casa para usar esse comando");
                return 
1;
            }
        }
        else {
            
SendClientMessage(playeridCOLOR_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,OpcoesPainelDIALOG_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 == 0SetPlayerSkin(playerid,InGame[playerid][SkinEquipeGame1]);
                    else if(
Roll == 1SetPlayerSkin(playerid,InGame[playerid][SkinEquipeGame1]);
                    else if(
Roll == 2SetPlayerSkin(playerid,InGame[playerid][SkinEquipeGame1]);
                    
GetPVarString(playerid"Nome Original"AtualNomesizeof(AtualNome));
                    
format(NovoNome,40,"[%s]%s",InGame[playerid][Tag],AtualNome);
                    
SetPlayerName(playerid,NovoNome);
                    
SetSpawnInfo(playeridGetPlayerTeam(playerid),GetPlayerSkin(playerid),InGame[playerid][SpawnGameX],InGame[playerid][SpawnGameY],InGame[playerid][SpawnGameZ], 0000000);
                }
            }
        }
    } 
Reply
#2

Explica direito, nгo entendi nada.
Reply
#3

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
Reply
#4

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;
            }
Reply
#5

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?
Reply
#6

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 ?
Reply
#7

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;
            }
        }
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)