[Ajuda] spawn randon/ spawn voltar
#1

To tentando tentando e nгo sei '-'
Bom e asim quando o player loga de primeiro ou quando morrer e voltar para o spawn, ser um spawn randonomico

E quando o player voltar no server sem ser morto e ja fo registrado voltar para codernada de onde deslogo

Bom e isso mais nгo to conseguindo fazer
Aguem ajuda ae ?

PHP код:
#include <a_samp>
#include <DOF2>
//Cores
#define COLOR_LBLUE    0x1E90FFFF
#define    COLOR_ERROR    0xFF0000FF
//Kick & ban
#define KickP(%0)    SetTimerEx("KickPlayer", 500, false, "i", %0)
//Player configs
#define    CONTASS    "Contas/%s.ini"
//Dialogs
#define D_Registrar     100
#define D_Logar         101
#define D_Sexo          102
// news
new Float:LugarX[MAX_PLAYERS];
new 
Float:LugarY[MAX_PLAYERS];
new 
Float:LugarZ[MAX_PLAYERS];
enum PlayerInfo
{
    
Skin,
    
Spawn,
    
Errosenha,
    
StatsSpawn,
};
new 
pInfo[MAX_PLAYERS][PlayerInfo];
//==================[VEICULOS ]================
//==================Spawns variados================
new Float:Spawnrandonplayers[11][3] = {
    {
690.2013,-467.9773,16.5363},
    {-
1546.1204,-2731.1055,48.5391},
    {-
1271.9763,2712.9788,50.2663},
    {
1354.9606,475.5364,20.1606},
    {-
41.8467,1179.1769,19.3797},
    {-
227.3263,985.0326,19.5998},
    {
1580.0342,-1635.5411,13.5604},
    {
1608.0400,-1670.4852,6.2188},
    {-
1617.0948,685.4459,7.1875},
    {-
1598.6437,734.0104,-4.9063},
    {
2264.9048,2445.0249,10.8203}
};
//================================================
main() { }
public 
OnGameModeInit()
{
    
AddPlayerClass(01958.37831343.157215.3746269.1425000000);
    return 
1;
}
public 
OnGameModeExit()
{
    
DOF2_Exit();
    return 
1;
}
public 
OnPlayerConnect(playerid)
{
    
pInfo[playerid][Errosenha] = 0;
    
SetPlayerColor(playerid0xFFFFFFFF);
    
//========================================
    
return 1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    
SalvarPlayer(playerid);
    
pInfo[playerid][Spawn] = 0;
    
pInfo[playerid][StatsSpawn] = 0;
    
pInfo[playerid][Errosenha] = 0;
    return 
1;
}
public 
OnPlayerRequestClass(playeridclassid)
{
    
//Login e registro
    
new pArquivos[50], String[256];
    
format(pArquivossizeof(pArquivos), CONTASSPegarNome(playerid));
    if(!
DOF2_FileExists(pArquivos))
    {
        
format(Stringsizeof(String), "{FFFFFF}Bem vindo ao Essence DayZ \n\n{FFFFFF}Nome:  {FF0000}%s \n\n{FFFFFF}Status:  {FF0000}Registrado(a)"PegarNome(playerid));
        
ShowPlayerDialog(playeridD_RegistrarDIALOG_STYLE_INPUT"Registro (x)"String"Registrar""");
    }
    else
    {
        
format(Stringsizeof(String), "{FFFFFF}Bem vindo ao Essence DayZ \n\n{FFFFFF}Nome:  {00FF04}%s \n\n{FFFFFF}Status:  {00FF04}Registrado(a)"PegarNome(playerid));
        
ShowPlayerDialog(playeridD_LogarDIALOG_STYLE_PASSWORD"Logando (x)"String"Entrar""Sair");
        
pInfo[playerid][Spawn] = 0;
    }
    return 
1;
}
public 
OnPlayerRequestSpawn(playerid)
{
    if(
pInfo[playerid][StatsSpawn] == 0)
    {
        
SendClientMessage(playeridCOLOR_ERROR"Spere carregar ai Viado!");
        return 
0;
    }
    else
    {
        
SpawnPlayer(playerid);
    }
    return 
1;
}
public 
OnPlayerSpawn(playerid)
{
    
SetPlayerSkin(playeridpInfo[playerid][Skin]);
    switch(
pInfo[playerid][Spawn])
    {
        case 
0:
        {
            
SetPlayerPos(playeridLugarX[playerid],  LugarY[playerid], LugarZ[playerid]);
            
SetPlayerVirtualWorld(playerid0);
            
SetCameraBehindPlayer(playerid);
        }
        case 
1:
        {
            new 
Splay random(sizeof(Spawnrandonplayers));
            
SetPlayerPos(playeridSpawnrandonplayers[Splay][0], Spawnrandonplayers[Splay][1], Spawnrandonplayers[Splay][2]);
            
SetPlayerVirtualWorld(playerid0);
            
SetCameraBehindPlayer(playerid);
        }
    }
    return 
1;
}
//======================
public OnPlayerDeath(playeridkilleridreason)
{
    
pInfo[playerid][Spawn] = 1;
    return 
1;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    
//Registro
    
new    pArquivos[50];
    
format(pArquivossizeof(pArquivos), CONTASSPegarNome(playerid));
    if(
dialogid ==  D_Registrar)
    {
        if(
response)
        {
            if(!
strlen(inputtext)) return ShowPlayerDialog(playeridD_RegistrarDIALOG_STYLE_PASSWORD"{FFFFFF}Bem vindo ao Essence DayZ \n\n{FFFFFF}Nome:  {FF0000}%s \n\n{FFFFFF}Status:  {FF0000}Nao Registrado(a)""Registro"""PegarNome(playerid));
            
DOF2_CreateFile(pArquivos);
            
DOF2_SetString(pArquivos"Senha"inputtext);
            
DOF2_SaveFile();
            
SalvarPlayer(playerid);
            
SpawnPlayer(playerid);
            
pInfo[playerid][Spawn] = 1;
            
ShowPlayerDialog(playeridD_SexoDIALOG_STYLE_MSGBOX,"> Escolha seu Sexo <","Escolha seu Sexo:","Masculino","Feminino");
            return 
1;
        }
        
SendClientMessage(playeridCOLOR_ERROR"Voce foi kickado por nao se registrar!");
        
KickP(playerid);
    }
    
//Login
    
if(dialogid == D_Logar)
    {
        if(
response)
        {
            if(!
strlen(inputtext))return ShowPlayerDialog(playerid,D_Logar,DIALOG_STYLE_PASSWORD"{FFFFFF}Bem vindo ao Essence DayZ \n\n{FFFFFF}Nome:  {00FF04}%s \n\n{FFFFFF}Status:  {00FF04}Registrado(a)""Entrar""Sair"PegarNome(playerid));
            if(!
strcmp(DOF2_GetString(pArquivos"Senha"), inputtext))
            {
                
SendClientMessage(playerid0x00FF00FF"Logado com susesso!");
                
CarregarPlayer(playerid);
                
SpawnPlayer(playerid);
                
pInfo[playerid][Spawn] = 0;
                
SetPlayerPos(playeridLugarX[playerid],  LugarY[playerid], LugarZ[playerid]);
                return 
1;
            }
            if(
pInfo[playerid][Errosenha] == 2)
            {
                
SendClientMessage(playeridCOLOR_ERROR"Voce sera kickado apos errar 3 vezes!");
                
KickP(playerid);
                return 
1;
            }
            
pInfo[playerid][Errosenha]++;
            
ShowPlayerDialog(playeridD_LogarDIALOG_STYLE_PASSWORD"Logando (x)""{FFFFFF}A senha esta errada.\nPor Favor tente novamente!""Entrar""Sair");
            return 
1;
        }
        
KickP(playerid);
    }
    if(
dialogid == D_Sexo)
    {
        if(
response)
        {
            
SendClientMessage(playerid,-1,"{261BF7}Voce escolheu o Sexo Masculino.");
            
SetPlayerSkin(playerid144);
        }
        else
        {
            
SendClientMessage(playerid,-1,"{F71BDE}Voce escolheu o Sexo Feminino.");
            
SetPlayerSkin(playerid56);
        }
    }
    return 
1;
}
//=====================================================
//=================[STOCKS DO SERVIDOR]================
stock PegarNome(playerid)
{
    new 
Name[MAX_PLAYER_NAME];
    
GetPlayerName(playeridNameMAX_PLAYER_NAME);
    return 
Name;
}
stock SalvarPlayer(playerid)
{
    new 
pArquivos[50];
    
format(pArquivossizeof(pArquivos), CONTASSPegarNome(playerid));
    if(
DOF2_FileExists(pArquivos))
    {
        
DOF2_SetInt(pArquivos"Level"GetPlayerScore(playerid));
        
DOF2_SetInt(pArquivos"Skin"GetPlayerSkin(playerid));
        
DOF2_SetInt(pArquivos"Spawn"pInfo[playerid][Spawn]);
        
GetPlayerPos(playeridLugarX[playerid], LugarY[playerid], LugarZ[playerid]);
        
DOF2_SetInt(pArquivos"PozicaoX"LugarX[playerid]);
        
DOF2_SetInt(pArquivos"PozicaoY"LugarY[playerid]);
        
DOF2_SetInt(pArquivos"PozicaoZ"LugarZ[playerid]);
        
DOF2_SaveFile();
    }
    return 
1;
}
stock CarregarPlayer(playerid)
{
    new 
pArquivos[50];
    
format(pArquivossizeof(pArquivos), CONTASSPegarNome(playerid));
    if(
DOF2_FileExists(pArquivos))
    {
        
SetPlayerScore(playeridDOF2_GetInt(pArquivos"Level"));
        
SetPlayerSkin(playeridDOF2_GetInt(pArquivos"Skin"));
        
pInfo[playerid][Spawn] = DOF2_GetInt(pArquivos"Spawn");
        
LugarX[playerid] = DOF2_GetInt(pArquivos"PozicaoX");
        
LugarY[playerid] = DOF2_GetInt(pArquivos"PozicaoY");
        
LugarZ[playerid] = DOF2_GetInt(pArquivos"PozicaoZ");
    }
    return 
1;
}
forward KickPlayer(playerid);
public 
KickPlayer(playerid)
{
    
Kick(playerid);
    return 
1;

Reply
#2

Troque isso:
PHP код:
new Float:Spawnrandonplayers[11][3] = { 
    {
690.2013,-467.9773,16.5363}, 
    {-
1546.1204,-2731.1055,48.5391}, 
    {-
1271.9763,2712.9788,50.2663}, 
    {
1354.9606,475.5364,20.1606}, 
    {-
41.8467,1179.1769,19.3797}, 
    {-
227.3263,985.0326,19.5998}, 
    {
1580.0342,-1635.5411,13.5604}, 
    {
1608.0400,-1670.4852,6.2188}, 
    {-
1617.0948,685.4459,7.1875}, 
    {-
1598.6437,734.0104,-4.9063}, 
    {
2264.9048,2445.0249,10.8203
}; 
//= 
Por isso, e tambйm substitua a public OnPlayerRequestSpawn

PHP код:
enum SpawnarLocal
{
    
Float:SpawnX,
    
Float:SpawnY,
    
Float:SpawnZ
}
new 
PlayerSpawn[][SpawnarLocal] =
{
    {
690.2013,-467.9773,16.5363},
    {-
1546.1204,-2731.1055,48.5391},
    {-
1271.9763,2712.9788,50.2663},
    {
1354.9606,475.5364,20.1606},
    {-
41.8467,1179.1769,19.3797},
    {-
227.3263,985.0326,19.5998},
    {
1580.0342,-1635.5411,13.5604},
    {
1608.0400,-1670.4852,6.2188},
    {-
1617.0948,685.4459,7.1875},
    {-
1598.6437,734.0104,-4.9063},
    {
2264.9048,2445.0249,10.8203}
};

public 
OnPlayerRequestSpawn(playerid)
{
    new 
pSpawnFloat:xFloat:yFloat:z;
    
pSpawn random(sizeof(PlayerSpawn));
    
PlayerSpawn[pSpawn][SpawnX]; 
    
PlayerSpawn[pSpawn][SpawnY];
    
PlayerSpawn[pSpawn][SpawnZ];
    if(
pInfo[playerid][StatsSpawn] == 0)
    {
        
SendClientMessage(playeridCOLOR_ERROR"Spere carregar ai Viado!");
        return 
0;
    }
    else
    {
       
SetSpawnInfo(playerid0GetPlayerSkin(playerid), xyz0000000);
    }
    return 
1;

Desculpe-me qualquer erro, nгo testei.
Reply
#3

Olб, gelton.

Alterei algumas coisas no seu cуdigo, veja se funciona como queres:

PHP код:
#include <a_samp> 
#include <DOF2> 
//Cores 
#define COLOR_LBLUE    0x1E90FFFF 
#define    COLOR_ERROR    0xFF0000FF 
//Kick & ban 
#define KickP(%0)    SetTimerEx("KickPlayer", 500, false, "i", %0) 
//Player configs 
#define    CONTASS    "Contas/%s.ini" 
//Dialogs 
#define D_Registrar     100 
#define D_Logar         101 
#define D_Sexo          102 
// news 
new Float:coordSpawn[3]; 
enum PlayerInfo 

    
Skin
    
Spawn
    
Errosenha
    
StatsSpawn
}; 
new 
pInfo[MAX_PLAYERS][PlayerInfo]; 
//==================[VEICULOS ]================ 
//==================Spawns variados================ 
new Float:Spawnrandonplayers[11][3] = { 
    {
690.2013,-467.9773,16.5363}, 
    {-
1546.1204,-2731.1055,48.5391}, 
    {-
1271.9763,2712.9788,50.2663}, 
    {
1354.9606,475.5364,20.1606}, 
    {-
41.8467,1179.1769,19.3797}, 
    {-
227.3263,985.0326,19.5998}, 
    {
1580.0342,-1635.5411,13.5604}, 
    {
1608.0400,-1670.4852,6.2188}, 
    {-
1617.0948,685.4459,7.1875}, 
    {-
1598.6437,734.0104,-4.9063}, 
    {
2264.9048,2445.0249,10.8203
}; 
//================================================ 
main() { } 
public 
OnGameModeInit() 

    
AddPlayerClass(01958.37831343.157215.3746269.1425000000); 
    return 
1

public 
OnGameModeExit() 

    
DOF2_Exit(); 
    return 
1

public 
OnPlayerConnect(playerid

    
pInfo[playerid][Errosenha] = 0
    
SetPlayerColor(playerid0xFFFFFFFF); 
    
//======================================== 
    
return 1

public 
OnPlayerDisconnect(playeridreason

    
SalvarPlayer(playerid); 
    
pInfo[playerid][Spawn] = 0
    
pInfo[playerid][StatsSpawn] = 0
    
pInfo[playerid][Errosenha] = 0
    return 
1

public 
OnPlayerRequestClass(playeridclassid

    
//Login e registro 
    
new pArquivos[50], String[256]; 
    
format(pArquivossizeof(pArquivos), CONTASSPegarNome(playerid)); 
    if(!
DOF2_FileExists(pArquivos)) 
    { 
        
format(Stringsizeof(String), "{FFFFFF}Bem vindo ao Essence DayZ \n\n{FFFFFF}Nome:  {FF0000}%s \n\n{FFFFFF}Status:  {FF0000}Registrado(a)"PegarNome(playerid)); 
        
ShowPlayerDialog(playeridD_RegistrarDIALOG_STYLE_INPUT"Registro (x)"String"Registrar"""); 
    } 
    else 
    { 
        
format(Stringsizeof(String), "{FFFFFF}Bem vindo ao Essence DayZ \n\n{FFFFFF}Nome:  {00FF04}%s \n\n{FFFFFF}Status:  {00FF04}Registrado(a)"PegarNome(playerid)); 
        
ShowPlayerDialog(playeridD_LogarDIALOG_STYLE_PASSWORD"Logando (x)"String"Entrar""Sair"); 
        
pInfo[playerid][Spawn] = 0
    } 
    return 
1

public 
OnPlayerRequestSpawn(playerid

    if(
pInfo[playerid][StatsSpawn] == 0
    { 
        
SendClientMessage(playeridCOLOR_ERROR"Spere carregar ai Viado!"); 
        return 
0
    } 
    else 
    { 
        
SpawnPlayer(playerid); 
    } 
    return 
1

public 
OnPlayerSpawn(playerid

    
SetPlayerSkin(playeridpInfo[playerid][Skin]); 
    
/*switch(pInfo[playerid][Spawn]) 
    { 
        case 0: 
        { 
            SetPlayerPos(playerid, coordSpawn[0],  coordSpawn[1], coordSpawn[2]); 
            SetPlayerVirtualWorld(playerid, 0); 
            SetCameraBehindPlayer(playerid); 
        } 
        case 1: 
        { 
            new Splay = random(sizeof(Spawnrandonplayers)); 
            SetPlayerPos(playerid, Spawnrandonplayers[Splay][0], Spawnrandonplayers[Splay][1], Spawnrandonplayers[Splay][2]); 
            SetPlayerVirtualWorld(playerid, 0); 
            SetCameraBehindPlayer(playerid); 
        } 
    }
    */ 
    
return 1

//====================== 
public OnPlayerDeath(playeridkilleridreason

    
//pInfo[playerid][Spawn] = 1;
    
new rand random(sizeof(Spawnrandonplayers));
    
SetPlayerPos(playeridSpawnrandonplayers[rand][0], Spawnrandonplayers[rand][1], Spawnrandonplayers[rand][2]);
    
SetPlayerVirtualWorld(playerid0); 
    
SetCameraBehindPlayer(playerid); 
    return 
1

public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[]) 

    
//Registro 
    
new    pArquivos[50]; 
    
format(pArquivossizeof(pArquivos), CONTASSPegarNome(playerid)); 
    if(
dialogid ==  D_Registrar
    { 
        if(
response
        { 
            if(!
strlen(inputtext)) return ShowPlayerDialog(playeridD_RegistrarDIALOG_STYLE_PASSWORD"{FFFFFF}Bem vindo ao Essence DayZ \n\n{FFFFFF}Nome:  {FF0000}%s \n\n{FFFFFF}Status:  {FF0000}Nao Registrado(a)""Registro"""PegarNome(playerid)); 
            
DOF2_CreateFile(pArquivos); 
            
DOF2_SetString(pArquivos"Senha"inputtext); 
            
DOF2_SaveFile(); 
            
SalvarPlayer(playerid); 
            
SpawnPlayer(playerid); 
            
pInfo[playerid][Spawn] = 1
            
ShowPlayerDialog(playeridD_SexoDIALOG_STYLE_MSGBOX,"> Escolha seu Sexo <","Escolha seu Sexo:","Masculino","Feminino"); 
            return 
1
        } 
        
SendClientMessage(playeridCOLOR_ERROR"Voce foi kickado por nao se registrar!"); 
        
KickP(playerid); 
    } 
    
//Login 
    
if(dialogid == D_Logar
    { 
        if(
response
        { 
            if(!
strlen(inputtext))return ShowPlayerDialog(playerid,D_Logar,DIALOG_STYLE_PASSWORD"{FFFFFF}Bem vindo ao Essence DayZ \n\n{FFFFFF}Nome:  {00FF04}%s \n\n{FFFFFF}Status:  {00FF04}Registrado(a)""Entrar""Sair"PegarNome(playerid)); 
            if(!
strcmp(DOF2_GetString(pArquivos"Senha"), inputtext)) 
            { 
                
SendClientMessage(playerid0x00FF00FF"Logado com susesso!"); 
                
CarregarPlayer(playerid); 
                
SpawnPlayer(playerid); 
                
pInfo[playerid][Spawn] = 0
                
SetPlayerPos(playeridcoordSpawn[0], coordSpawn[1], coordSpawn[2]); 
                return 
1
            } 
            if(
pInfo[playerid][Errosenha] == 2
            { 
                
SendClientMessage(playeridCOLOR_ERROR"Voce sera kickado apos errar 3 vezes!"); 
                
KickP(playerid); 
                return 
1
            } 
            
pInfo[playerid][Errosenha]++; 
            
ShowPlayerDialog(playeridD_LogarDIALOG_STYLE_PASSWORD"Logando (x)""{FFFFFF}A senha esta errada.\nPor Favor tente novamente!""Entrar""Sair"); 
            return 
1
        } 
        
KickP(playerid); 
    } 
    if(
dialogid == D_Sexo
    { 
        if(
response
        { 
            
SendClientMessage(playerid,-1,"{261BF7}Voce escolheu o Sexo Masculino."); 
            
SetPlayerSkin(playerid144); 
        } 
        else 
        { 
            
SendClientMessage(playerid,-1,"{F71BDE}Voce escolheu o Sexo Feminino."); 
            
SetPlayerSkin(playerid56); 
        } 
    } 
    return 
1

//===================================================== 
//=================[STOCKS DO SERVIDOR]================ 
stock PegarNome(playerid

    new 
Name[MAX_PLAYER_NAME]; 
    
GetPlayerName(playeridNameMAX_PLAYER_NAME); 
    return 
Name

stock SalvarPlayer(playerid

    new 
pArquivos[50]; 
    
format(pArquivossizeof(pArquivos), CONTASSPegarNome(playerid)); 
    if(
DOF2_FileExists(pArquivos)) 
    { 
        
DOF2_SetInt(pArquivos"Level"GetPlayerScore(playerid)); 
        
DOF2_SetInt(pArquivos"Skin"GetPlayerSkin(playerid)); 
        
DOF2_SetInt(pArquivos"Spawn"pInfo[playerid][Spawn]); 
        
GetPlayerPos(playeridcoordSpawn[0], coordSpawn[1], coordSpawn[2]); 
        
DOF2_SetFloat(pArquivos"PozicaoX"coordSpawn[0]); 
        
DOF2_SetFloat(pArquivos"PozicaoY"coordSpawn[1]); 
        
DOF2_SetFloat(pArquivos"PozicaoZ"coordSpawn[2]); 
        
DOF2_SaveFile(); 
    } 
    return 
1

stock CarregarPlayer(playerid

    new 
pArquivos[50]; 
    
format(pArquivossizeof(pArquivos), CONTASSPegarNome(playerid)); 
    if(
DOF2_FileExists(pArquivos)) 
    { 
        
SetPlayerScore(playeridDOF2_GetInt(pArquivos"Level")); 
        
SetPlayerSkin(playeridDOF2_GetInt(pArquivos"Skin")); 
        
pInfo[playerid][Spawn] = DOF2_GetInt(pArquivos"Spawn"); 
        
coordSpawn[0] = DOF2_GetFloat(pArquivos"PozicaoX"); 
        
coordSpawn[1] = DOF2_GetFloat(pArquivos"PozicaoY"); 
        
coordSpawn[2] = DOF2_GetFloat(pArquivos"PozicaoZ"); 
    } 
    return 
1

forward KickPlayer(playerid); 
public 
KickPlayer(playerid

    
Kick(playerid); 
    return 
1

Qualquer problema/dъvida sу avisar.
Reply
#4

PHP код:
#include <a_samp>  
#include <DOF2>  
//Cores  
#define COLOR_LBLUE    0x1E90FFFF  
#define    COLOR_ERROR    0xFF0000FF  
//Kick & ban  
#define KickP(%0)    SetTimerEx("KickPlayer", 500, false, "i", %0)  
//Player configs  
#define    CONTASS    "Contas/%s.ini"  
//Dialogs  
#define D_Registrar     100  
#define D_Logar         101  
#define D_Sexo          102  
// news  
new Float:coordSpawn[3];  
enum PlayerInfo  
{  
    
Skin,  
    
Spawn,  
    
Errosenha,  
    
StatsSpawn,  
};  
new 
pInfo[MAX_PLAYERS][PlayerInfo];  
//==================[VEICULOS ]================  
//==================Spawns variados================  
new Float:Spawnrandonplayers[11][3] = {  
    {
690.2013,-467.9773,16.5363},  
    {-
1546.1204,-2731.1055,48.5391},  
    {-
1271.9763,2712.9788,50.2663},  
    {
1354.9606,475.5364,20.1606},  
    {-
41.8467,1179.1769,19.3797},  
    {-
227.3263,985.0326,19.5998},  
    {
1580.0342,-1635.5411,13.5604},  
    {
1608.0400,-1670.4852,6.2188},  
    {-
1617.0948,685.4459,7.1875},  
    {-
1598.6437,734.0104,-4.9063},  
    {
2264.9048,2445.0249,10.8203}  
};  
//================================================  
main() { }  
public 
OnGameModeInit()  
{  
    
AddPlayerClass(01958.37831343.157215.3746269.1425000000);  
    return 
1;  
}  
public 
OnGameModeExit()  
{  
    
DOF2_Exit();  
    return 
1;  
}  
public 
OnPlayerConnect(playerid)  
{  
    
pInfo[playerid][Errosenha] = 0;  
    
SetPlayerColor(playerid0xFFFFFFFF);  
    
//========================================  
    
return 1;  
}  
public 
OnPlayerDisconnect(playeridreason)  
{  
    
SalvarPlayer(playerid);  
    
pInfo[playerid][Spawn] = 0;  
    
pInfo[playerid][StatsSpawn] = 0;  
    
pInfo[playerid][Errosenha] = 0;  
    return 
1;  
}  
public 
OnPlayerRequestClass(playeridclassid)  
{  
    
//Login e registro  
    
new pArquivos[50], String[256];  
    
format(pArquivossizeof(pArquivos), CONTASSPegarNome(playerid));  
    if(!
DOF2_FileExists(pArquivos))  
    {  
        
format(Stringsizeof(String), "{FFFFFF}Bem vindo ao Essence DayZ \n\n{FFFFFF}Nome:  {FF0000}%s \n\n{FFFFFF}Status:  {FF0000}Registrado(a)"PegarNome(playerid));  
        
ShowPlayerDialog(playeridD_RegistrarDIALOG_STYLE_INPUT"Registro (x)"String"Registrar""");  
    }  
    else  
    {  
        
format(Stringsizeof(String), "{FFFFFF}Bem vindo ao Essence DayZ \n\n{FFFFFF}Nome:  {00FF04}%s \n\n{FFFFFF}Status:  {00FF04}Registrado(a)"PegarNome(playerid));  
        
ShowPlayerDialog(playeridD_LogarDIALOG_STYLE_PASSWORD"Logando (x)"String"Entrar""Sair");  
        
pInfo[playerid][Spawn] = 0;  
    }  
    return 
1;  
}  
public 
OnPlayerRequestSpawn(playerid)  
{  
    if(
pInfo[playerid][StatsSpawn] == 0)  
    {  
        
SendClientMessage(playeridCOLOR_ERROR"Spere carregar ai Viado!");  
        return 
0;  
    }  
    else  
    {  
        
SpawnPlayer(playerid);  
    }  
    return 
1;  
}  
public 
OnPlayerSpawn(playerid)  
{  
    
SetPlayerSkin(playeridpInfo[playerid][Skin]);  
    
/*switch(pInfo[playerid][Spawn])  
    {  
        case 0:  
        {  
            SetPlayerPos(playerid, coordSpawn[0],  coordSpawn[1], coordSpawn[2]);  
            SetPlayerVirtualWorld(playerid, 0);  
            SetCameraBehindPlayer(playerid);  
        }  
        case 1:  
        {  
            new Splay = random(sizeof(Spawnrandonplayers));  
            SetPlayerPos(playerid, Spawnrandonplayers[Splay][0], Spawnrandonplayers[Splay][1], Spawnrandonplayers[Splay][2]);  
            SetPlayerVirtualWorld(playerid, 0);  
            SetCameraBehindPlayer(playerid);  
        }  
    } 
    */  
    
return 1;  
}  
//======================  
public OnPlayerDeath(playeridkilleridreason)  
{  
    
//pInfo[playerid][Spawn] = 1; 
    
new rand random(sizeof(Spawnrandonplayers)); 
    
SetPlayerPos(playeridSpawnrandonplayers[rand][0], Spawnrandonplayers[rand][1], Spawnrandonplayers[rand][2]); 
    
SetPlayerVirtualWorld(playerid0);  
    
SetCameraBehindPlayer(playerid);  
    return 
1;  
}  
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])  
{  
    
//Registro  
    
new    pArquivos[50];  
    
format(pArquivossizeof(pArquivos), CONTASSPegarNome(playerid));  
    if(
dialogid ==  D_Registrar)  
    {  
        if(
response)  
        {  
            if(!
strlen(inputtext)) return ShowPlayerDialog(playeridD_RegistrarDIALOG_STYLE_PASSWORD"{FFFFFF}Bem vindo ao Essence DayZ \n\n{FFFFFF}Nome:  {FF0000}%s \n\n{FFFFFF}Status:  {FF0000}Nao Registrado(a)""Registro"""PegarNome(playerid));  
            
DOF2_CreateFile(pArquivos);  
            
DOF2_SetString(pArquivos"Senha"inputtext);  
            
DOF2_SaveFile();  
            
SalvarPlayer(playerid);  
            
SpawnPlayer(playerid);  
            
pInfo[playerid][Spawn] = 1;  
            
ShowPlayerDialog(playeridD_SexoDIALOG_STYLE_MSGBOX,"> Escolha seu Sexo <","Escolha seu Sexo:","Masculino","Feminino");  
            return 
1;  
        }  
        
SendClientMessage(playeridCOLOR_ERROR"Voce foi kickado por nao se registrar!");  
        
KickP(playerid);  
    }  
    
//Login  
    
if(dialogid == D_Logar)  
    {  
        if(
response)  
        {  
            if(!
strlen(inputtext))return ShowPlayerDialog(playerid,D_Logar,DIALOG_STYLE_PASSWORD"{FFFFFF}Bem vindo ao Essence DayZ \n\n{FFFFFF}Nome:  {00FF04}%s \n\n{FFFFFF}Status:  {00FF04}Registrado(a)""Entrar""Sair"PegarNome(playerid));  
            if(!
strcmp(DOF2_GetString(pArquivos"Senha"), inputtext))  
            {  
                
SendClientMessage(playerid0x00FF00FF"Logado com susesso!");  
                
CarregarPlayer(playerid);  
                
SpawnPlayer(playerid);  
                
pInfo[playerid][Spawn] = 0;  
                
SetPlayerPos(playeridcoordSpawn[0], coordSpawn[1], coordSpawn[2]);  
                return 
1;  
            }  
            if(
pInfo[playerid][Errosenha] == 2)  
            {  
                
SendClientMessage(playeridCOLOR_ERROR"Voce sera kickado apos errar 3 vezes!");  
                
KickP(playerid);  
                return 
1;  
            }  
            
pInfo[playerid][Errosenha]++;  
            
ShowPlayerDialog(playeridD_LogarDIALOG_STYLE_PASSWORD"Logando (x)""{FFFFFF}A senha esta errada.\nPor Favor tente novamente!""Entrar""Sair");  
            return 
1;  
        }  
        
KickP(playerid);  
    }  
    if(
dialogid == D_Sexo)  
    {  
        if(
response)  
        {  
            
SendClientMessage(playerid,-1,"{261BF7}Voce escolheu o Sexo Masculino.");  
            
SetPlayerSkin(playerid144);  
        }  
        else  
        {  
            
SendClientMessage(playerid,-1,"{F71BDE}Voce escolheu o Sexo Feminino.");  
            
SetPlayerSkin(playerid56);  
        }  
    }  
    return 
1;  
}  
//=====================================================  
//=================[STOCKS DO SERVIDOR]================  
stock PegarNome(playerid)  
{  
    new 
Name[MAX_PLAYER_NAME];  
    
GetPlayerName(playeridNameMAX_PLAYER_NAME);  
    return 
Name;  
}  
stock SalvarPlayer(playerid)  
{  
    new 
pArquivos[50];  
    
format(pArquivossizeof(pArquivos), CONTASSPegarNome(playerid));  
    if(
DOF2_FileExists(pArquivos))  
    {  
        
DOF2_SetInt(pArquivos"Level"GetPlayerScore(playerid));  
        
DOF2_SetInt(pArquivos"Skin"GetPlayerSkin(playerid));  
        
DOF2_SetInt(pArquivos"Spawn"pInfo[playerid][Spawn]);  
        
GetPlayerPos(playeridcoordSpawn[0], coordSpawn[1], coordSpawn[2]);  
        
DOF2_SetFloat(pArquivos"PozicaoX"coordSpawn[0]);  
        
DOF2_SetFloat(pArquivos"PozicaoY"coordSpawn[1]);  
        
DOF2_SetFloat(pArquivos"PozicaoZ"coordSpawn[2]);  
        
DOF2_SaveFile();  
    }  
    return 
1;  
}  
stock CarregarPlayer(playerid)  
{  
    new 
pArquivos[50];  
    
format(pArquivossizeof(pArquivos), CONTASSPegarNome(playerid));  
    if(
DOF2_FileExists(pArquivos))  
    {  
        
SetPlayerScore(playeridDOF2_GetInt(pArquivos"Level"));  
        
SetPlayerSkin(playeridDOF2_GetInt(pArquivos"Skin"));  
        
pInfo[playerid][Spawn] = DOF2_GetInt(pArquivos"Spawn");  
        
coordSpawn[0] = DOF2_GetFloat(pArquivos"PozicaoX");  
        
coordSpawn[1] = DOF2_GetFloat(pArquivos"PozicaoY");  
        
coordSpawn[2] = DOF2_GetFloat(pArquivos"PozicaoZ");  
    }  
    return 
1;  
}  
forward KickPlayer(playerid);  
public 
KickPlayer(playerid)  
{  
    
Kick(playerid);  
    return 
1;  

Fiz o teste e funcionou corretamente. Dъvidas disponha-se de min.
Reply
#5

Nenhum funciono :/
Quando eu registro eu nasso no lugar da GM Bare

E quando eu morro automaticamente morre denovo e nasse no mesmo lugar da Bare

a vei :/
Reply
#6

Gelton, eu alterei mais umas coisas na parte que o player morre, pois estava com problema.
De qualquer forma, era para ter funcionado pelo menos a parte do login.

PHP код:
#include <a_samp> 
#include <DOF2>
#include <zcmd> 
//Cores 
#define COLOR_LBLUE    0x1E90FFFF 
#define    COLOR_ERROR    0xFF0000FF 
//Kick & ban 
#define KickP(%0)    SetTimerEx("KickPlayer", 500, false, "i", %0) 
//Player configs 
#define    CONTASS    "Contas/%s.ini" 
//Dialogs 
#define D_Registrar     100 
#define D_Logar         101 
#define D_Sexo          102 
// news 
new Float:coordSpawn[3]; 
new 
morreu[MAX_PLAYERS];
enum PlayerInfo 

    
Skin
    
Spawn
    
Errosenha
    
StatsSpawn
}; 
new 
pInfo[MAX_PLAYERS][PlayerInfo]; 
//==================[VEICULOS ]================ 
//==================Spawns variados================ 
new Float:Spawnrandonplayers[11][3] = { 
    {
690.2013,-467.9773,16.5363}, 
    {-
1546.1204,-2731.1055,48.5391}, 
    {-
1271.9763,2712.9788,50.2663}, 
    {
1354.9606,475.5364,20.1606}, 
    {-
41.8467,1179.1769,19.3797}, 
    {-
227.3263,985.0326,19.5998}, 
    {
1580.0342,-1635.5411,13.5604}, 
    {
1608.0400,-1670.4852,6.2188}, 
    {-
1617.0948,685.4459,7.1875}, 
    {-
1598.6437,734.0104,-4.9063}, 
    {
2264.9048,2445.0249,10.8203
}; 
//================================================ 
main() { } 
public 
OnGameModeInit() 

    
AddPlayerClass(01958.37831343.157215.3746269.1425000000); 
    return 
1

public 
OnGameModeExit() 

    
DOF2_Exit(); 
    return 
1

public 
OnPlayerConnect(playerid

    
pInfo[playerid][Errosenha] = 0
    
SetPlayerColor(playerid0xFFFFFFFF); 
    
//======================================== 
    
return 1

public 
OnPlayerDisconnect(playeridreason

    
SalvarPlayer(playerid); 
    
pInfo[playerid][Spawn] = 0
    
pInfo[playerid][StatsSpawn] = 0
    
pInfo[playerid][Errosenha] = 0
    return 
1

public 
OnPlayerRequestClass(playeridclassid

    
//Login e registro 
    
new pArquivos[50], String[256]; 
    
format(pArquivossizeof(pArquivos), CONTASSPegarNome(playerid)); 
    if(!
DOF2_FileExists(pArquivos)) 
    { 
        
format(Stringsizeof(String), "{FFFFFF}Bem vindo ao Essence DayZ \n\n{FFFFFF}Nome:  {FF0000}%s \n\n{FFFFFF}Status:  {FF0000}Registrado(a)"PegarNome(playerid)); 
        
ShowPlayerDialog(playeridD_RegistrarDIALOG_STYLE_INPUT"Registro (x)"String"Registrar"""); 
    } 
    else 
    { 
        
format(Stringsizeof(String), "{FFFFFF}Bem vindo ao Essence DayZ \n\n{FFFFFF}Nome:  {00FF04}%s \n\n{FFFFFF}Status:  {00FF04}Registrado(a)"PegarNome(playerid)); 
        
ShowPlayerDialog(playeridD_LogarDIALOG_STYLE_PASSWORD"Logando (x)"String"Entrar""Sair"); 
        
pInfo[playerid][Spawn] = 0
    } 
    return 
1

public 
OnPlayerRequestSpawn(playerid

    if(
pInfo[playerid][StatsSpawn] == 0
    { 
        
SendClientMessage(playeridCOLOR_ERROR"Spere carregar ai Viado!"); 
        return 
0
    } 
    else 
    { 
        
SpawnPlayer(playerid); 
    } 
    return 
1

public 
OnPlayerSpawn(playerid

    
SetPlayerSkin(playeridpInfo[playerid][Skin]); 
    
    if(
morreu[playerid]) {
        new 
rand random(sizeof(Spawnrandonplayers));
        
SetPlayerPos(playeridSpawnrandonplayers[rand][0], Spawnrandonplayers[rand][1], Spawnrandonplayers[rand][2]);
        
SetPlayerVirtualWorld(playerid0); 
        
SetCameraBehindPlayer(playerid); 
        
morreu[playerid] = false;
    }
    
/*switch(pInfo[playerid][Spawn]) 
    { 
        case 0: 
        { 
            SetPlayerPos(playerid, coordSpawn[0],  coordSpawn[1], coordSpawn[2]); 
            SetPlayerVirtualWorld(playerid, 0); 
            SetCameraBehindPlayer(playerid); 
        } 
        case 1: 
        { 
            new Splay = random(sizeof(Spawnrandonplayers)); 
            SetPlayerPos(playerid, Spawnrandonplayers[Splay][0], Spawnrandonplayers[Splay][1], Spawnrandonplayers[Splay][2]); 
            SetPlayerVirtualWorld(playerid, 0); 
            SetCameraBehindPlayer(playerid); 
        } 
    }
    */ 
    
return 1

//====================== 
public OnPlayerDeath(playeridkilleridreason

    
//pInfo[playerid][Spawn] = 1;
    
morreu[playerid] = true;
    return 
1

public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[]) 

    
//Registro 
    
new    pArquivos[50]; 
    
format(pArquivossizeof(pArquivos), CONTASSPegarNome(playerid)); 
    if(
dialogid ==  D_Registrar
    { 
        if(
response
        { 
            if(!
strlen(inputtext)) return ShowPlayerDialog(playeridD_RegistrarDIALOG_STYLE_PASSWORD"{FFFFFF}Bem vindo ao Essence DayZ \n\n{FFFFFF}Nome:  {FF0000}%s \n\n{FFFFFF}Status:  {FF0000}Nao Registrado(a)""Registro"""PegarNome(playerid)); 
            
DOF2_CreateFile(pArquivos); 
            
DOF2_SetString(pArquivos"Senha"inputtext); 
            
DOF2_SaveFile(); 
            
SalvarPlayer(playerid); 
            
SpawnPlayer(playerid); 
            
pInfo[playerid][Spawn] = 1
            
ShowPlayerDialog(playeridD_SexoDIALOG_STYLE_MSGBOX,"> Escolha seu Sexo <","Escolha seu Sexo:","Masculino","Feminino"); 
            return 
1
        } 
        
SendClientMessage(playeridCOLOR_ERROR"Voce foi kickado por nao se registrar!"); 
        
KickP(playerid); 
    } 
    
//Login 
    
if(dialogid == D_Logar
    { 
        if(
response
        { 
            if(!
strlen(inputtext))return ShowPlayerDialog(playerid,D_Logar,DIALOG_STYLE_PASSWORD"{FFFFFF}Bem vindo ao Essence DayZ \n\n{FFFFFF}Nome:  {00FF04}%s \n\n{FFFFFF}Status:  {00FF04}Registrado(a)""Entrar""Sair"PegarNome(playerid)); 
            if(!
strcmp(DOF2_GetString(pArquivos"Senha"), inputtext)) 
            { 
                
SendClientMessage(playerid0x00FF00FF"Logado com susesso!"); 
                
CarregarPlayer(playerid); 
                
SpawnPlayer(playerid); 
                
pInfo[playerid][Spawn] = 0
                
SetPlayerPos(playeridcoordSpawn[0], coordSpawn[1], coordSpawn[2]); 
                return 
1
            } 
            if(
pInfo[playerid][Errosenha] == 2
            { 
                
SendClientMessage(playeridCOLOR_ERROR"Voce sera kickado apos errar 3 vezes!"); 
                
KickP(playerid); 
                return 
1
            } 
            
pInfo[playerid][Errosenha]++; 
            
ShowPlayerDialog(playeridD_LogarDIALOG_STYLE_PASSWORD"Logando (x)""{FFFFFF}A senha esta errada.\nPor Favor tente novamente!""Entrar""Sair"); 
            return 
1
        } 
        
KickP(playerid); 
    } 
    if(
dialogid == D_Sexo
    { 
        if(
response
        { 
            
SendClientMessage(playerid,-1,"{261BF7}Voce escolheu o Sexo Masculino."); 
            
SetPlayerSkin(playerid144); 
        } 
        else 
        { 
            
SendClientMessage(playerid,-1,"{F71BDE}Voce escolheu o Sexo Feminino."); 
            
SetPlayerSkin(playerid56); 
        } 
    } 
    return 
1

//===================================================== 
//=================[STOCKS DO SERVIDOR]================ 
stock PegarNome(playerid

    new 
Name[MAX_PLAYER_NAME]; 
    
GetPlayerName(playeridNameMAX_PLAYER_NAME); 
    return 
Name

stock SalvarPlayer(playerid

    new 
pArquivos[50]; 
    
format(pArquivossizeof(pArquivos), CONTASSPegarNome(playerid)); 
    if(
DOF2_FileExists(pArquivos)) 
    { 
        
DOF2_SetInt(pArquivos"Level"GetPlayerScore(playerid)); 
        
DOF2_SetInt(pArquivos"Skin"GetPlayerSkin(playerid)); 
        
DOF2_SetInt(pArquivos"Spawn"pInfo[playerid][Spawn]); 
        
GetPlayerPos(playeridcoordSpawn[0], coordSpawn[1], coordSpawn[2]); 
        
DOF2_SetFloat(pArquivos"PozicaoX"coordSpawn[0]); 
        
DOF2_SetFloat(pArquivos"PozicaoY"coordSpawn[1]); 
        
DOF2_SetFloat(pArquivos"PozicaoZ"coordSpawn[2]); 
        
DOF2_SaveFile(); 
    } 
    return 
1

stock CarregarPlayer(playerid

    new 
pArquivos[50]; 
    
format(pArquivossizeof(pArquivos), CONTASSPegarNome(playerid)); 
    if(
DOF2_FileExists(pArquivos)) 
    { 
        
SetPlayerScore(playeridDOF2_GetInt(pArquivos"Level")); 
        
SetPlayerSkin(playeridDOF2_GetInt(pArquivos"Skin")); 
        
pInfo[playerid][Spawn] = DOF2_GetInt(pArquivos"Spawn"); 
        
coordSpawn[0] = DOF2_GetFloat(pArquivos"PozicaoX"); 
        
coordSpawn[1] = DOF2_GetFloat(pArquivos"PozicaoY"); 
        
coordSpawn[2] = DOF2_GetFloat(pArquivos"PozicaoZ"); 
    } 
    return 
1

forward KickPlayer(playerid); 
public 
KickPlayer(playerid

    
Kick(playerid); 
    return 
1

CMD:morrer(playeridparams[])
{
    
SetPlayerHealth(playerid0);
    return 
1;

Acredito que seu problema seja estar testando com o GM Bare. Coloque o cуdigo que lhe mandei como GM, foi assim que eu testei funcionou tudo.

@edit
Coloquei o comando "morrer" somente para testar, mas pode tirб-lo depois.
Reply
#7

Vlw ai mano eu mudei algumas coisas e funciono sim tu salvo a minha vida kkkk vlw <3
Reply
#8

Quote:
Originally Posted by gelton
Посмотреть сообщение
Vlw ai mano eu mudei algumas coisas e funciono sim tu salvo a minha vida kkkk vlw <3
Disponha.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)