[Ajuda] Ajuda com Gamemode PF
#1

Boa Tarde,

Tou a fazer um gamemode e tou a incorporar um sistema de Login/registo:

Код:
(43) : warning 213: tag mismatch
(44) : warning 213: tag mismatch
(45) : warning 213: tag mismatch
o pwan abaixo:

Код:
//Includes
#include <a_objects>
#include <a_samp>
#include <YSI\y_ini>

//Defines(Sistema Login e Registo)
#define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2
#define DIALOG_SUCCESS_1 3
#define DIALOG_SUCCESS_2 4
#define PATH "/Utilizadores/%s.ini"
#define COL_WHITE "{FFFFFF}"
#define COL_RED "{F81414}"
#define COL_GREEN "{00FF22}"
#define COL_LIGHTBLUE "{00CED1}"

//Variбveis
enum pInfo
{
	pPosX,
	pPosY,
	pPosZ,
    pPass,
    pCash,
    pAdmin,
    pKills,
    pDeaths
}
new PlayerInfo[MAX_PLAYERS][pInfo];

//Functions(Sistema de Login e Registo)

forward LoadUser_data(playerid,name[],value[]);
public LoadUser_data(playerid,name[],value[])
{
    INI_Int("Password",PlayerInfo[playerid][pPass]);
    INI_Int("Dinheiro",PlayerInfo[playerid][pCash]);
    INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
    INI_Int("Matou",PlayerInfo[playerid][pKills]);
    INI_Int("Morreu",PlayerInfo[playerid][pDeaths]);
    INI_Float("posX",PlayerInfo[playerid][pPosX]);//Linha 43 - Warning
    INI_Float("posY",PlayerInfo[playerid][pPosY]);//Linha 44 - Warning
    INI_Float("posZ",PlayerInfo[playerid][pPosZ]);//Linha 45 - Warning
    return 1;
}
stock UserPath(playerid)
{
    new string[128],playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,playername,sizeof(playername));
    format(string,sizeof(string),PATH,playername);
    return string;
}
stock udb_hash(buf[]) {
    new length=strlen(buf);
    new s1 = 1;
    new s2 = 0;
    new n;
    for (n=0; n<length; n++)
    {
       s1 = (s1 + buf[n]) % 65521;
       s2 = (s2 + s1)     % 65521;
    }
    return (s2 << 16) + s1;
}

main() {}

public OnGameModeInit()
{
	//Gamemode
    SetGameModeText("Portugal Realidade Virtual");
	//Carros
    AddStaticVehicleEx(402,1713.1149,1452.7454,10.7656,90,0,8,180);//Carro Entrada Aeroporto de LV
    AddStaticVehicleEx(402,182.9968,-7.15,1.5781,180,0,8,180);// Carro perto dos reboques
    AddStaticVehicleEx(402,2103.4167,2098.9595,10.6520,180,0,8,180);//Carro em LV The Strip
    AddStaticVehicleEx(402,1098.7572,-1775.6387,13.1760,90,0,8,180);//Carro 1 Agencia de Empregos LS
    AddStaticVehicleEx(402,1080.9475,-1754.9398,13.2227,90,0,8,180);//Carro 2 Agencia de Empregos LS
    AddStaticVehicleEx(402,1062.2637,-1740.1587,13.3028,270,0,8,180);//Carro 3 Agencia de Empregos LS
    AddStaticVehicleEx(402,1198.3982,-1827.0538,13.2399,270,0,8,180);//Carro 4 Agencia de Empregos LS
    AddStaticVehicleEx(402,1917.4562,-1788.5393,13.2223,180,0,8,180);//Carro Bomba de Combustivel de LS
	AddStaticVehicleEx(402,-81.1491,-1198.3055,2.1278,360,0,8,180);//Carro Bomba de Combustivel Autoestrada de LS
    AddStaticVehicleEx(461,-72.3354,-1183.1641,1.5815,180,0,8,180);//Mota Bomba de Combustivel Autoestrada de LS
	//Objetos
	CreateObject(2781,1914.8188,-1765.8628,13.5469,0.0,0.0,00.0);//Caixa Multibanco Bomba LS
    return 1;
}

public OnPlayerConnect(playerid)
{
	//Bem-Vindo
	SendClientMessage(playerid,-1,"Bem Vindo!");//Mensagem de boas vindas quando player entra
	GameTextForPlayer(playerid,"~g~Portugal ~y~Realidade ~n~~r~Virtual", 3000, 6);//Mensagem com o nome(em grande e no centro do ecra) do Servidor com o player entra!
	//Sisteme de Login e Registo
 	if(fexist(UserPath(playerid)))
	 {
	 INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
	 ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_WHITE"Introduza a sua palavra passe para Login!","Login","Sair");
	}
    else
    {
        ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""COL_WHITE"Registando...",""COL_WHITE"Introduza a sua palavra passe para registar nova conta!","Registar","Sair");
    }
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	//Sistema de Login e Registo
    switch( dialogid )
    {
        case DIALOG_REGISTER:
        {
            if (!response) return Kick(playerid);
            if(response)
            {
                if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""COL_WHITE"Registando...",""COL_RED"Introduziu uma palavra passe invбlida!\n"COL_WHITE"Introduza a sua palavra passe abaixo!","Registar","Sair");
                new INI:File = INI_Open(UserPath(playerid));
                INI_SetTag(File,"data");
                INI_WriteInt(File,"Password",udb_hash(inputtext));
                INI_WriteInt(File,"Dinheiro",0);
                INI_WriteInt(File,"Admin",0);
                INI_WriteInt(File,"Matou",0);
                INI_WriteInt(File,"Morreu",0);
				INI_WriteFloat(File,"posX",1154.1227);
				INI_WriteFloat(File,"posY",-1766.7450);
				INI_WriteFloat(File,"posZ",16.5938);
                INI_Close(File);

                SetSpawnInfo(playerid,0,0,1154.1227,-1766.7450,16.5938,0,0,0,0,0,0,0);
                SpawnPlayer(playerid);
				ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,""COL_WHITE"Sucesso!",""COL_GREEN"O seu registo foi concluido com sucesso!","Ok","");
				
            }
        }

        case DIALOG_LOGIN:
        {
            if ( !response ) return Kick ( playerid );
            if( response )
            {
                if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
                {
                    INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
                    GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);

					ERRO!!!SetSpawnInfo(playerid,0,0,PlayerInfo[playerid][pPosX],PlayerInfo[playerid][pPosY],PlayerInfo[playerid][pPosZ],0,0,0,0,0,0,0);// ERRO!!!!!!
                	SpawnPlayer(playerid);
					ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""COL_WHITE"Sucesso",""COL_GREEN"Vocк fez o login com sucesso!","Ok","");
				}
                else
                {
                    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_RED"Introduziu a palavra passe errada\n"COL_WHITE"Introduza a sua palavra passe abaixo!","Login","Sair");
                }
                return 1;
            }
        }
    }
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
	//Sistema de Login e Registo
    new INI:File = INI_Open(UserPath(playerid));
	new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid,x,y,z);
    INI_SetTag(File,"data");
    INI_WriteInt(File,"Dinheiro",GetPlayerMoney(playerid));
    INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
    INI_WriteInt(File,"Matou",PlayerInfo[playerid][pKills]);
    INI_WriteInt(File,"Morreu",PlayerInfo[playerid][pDeaths]);
	INI_WriteFloat(File,"posX",x);
	INI_WriteFloat(File,"posY",y);
	INI_WriteFloat(File,"posZ",z);
    INI_Close(File);
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
	//Sistema de Login e Registo
    PlayerInfo[killerid][pKills]++;
    PlayerInfo[playerid][pDeaths]++;
    return 1;
}
Mas pouco me importa o erro, o meu problema й na linha que а frente estб assinalado ERRO isto й quando faзo login no server depois de ter saнdo ,entro novamente e as coordenada ficam erradas e eu dou spwan fora do mapa!

Podem me ajudar?

P.S.: Tambйm jб agora gostava que alguйm vi se o porque dos warnings(Linha das warnings assinalados)!
Reply
#2

Para resolver os warnings:
pawn Код:
//Variбveis
enum pInfo
{
    Float:pPosX,
    Float:pPosY,
    Float:pPosZ,
    pPass,
    pCash,
    pAdmin,
    pKills,
    pDeaths
}
Agora para o erro no spawn pode tentar as funзoes:


SetSpawnInfo();
SetPlayerFacingAngle();
SetPlayerCameraPos();
SetPlayerInterior();
SpawnPlayer();
Reply
#3

Quote:
Originally Posted by CLANdok
Посмотреть сообщение
Para resolver os warnings:
pawn Код:
//Variбveis
enum pInfo
{
    Float:pPosX,
    Float:pPosY,
    Float:pPosZ,
    pPass,
    pCash,
    pAdmin,
    pKills,
    pDeaths
}
Funcionou! Obrigado!
Quote:
Originally Posted by CLANdok
Посмотреть сообщение
Agora para o erro no spawn pode tentar as funзoes:


SetSpawnInfo();
SetPlayerFacingAngle();
SetPlayerCameraPos();
SetPlayerInterior();
SpawnPlayer();
Nenhuma das funзхes a cima serve para aquilo que quero
Reply
#4

Amigo, acho que vocк esqueзeu de carregar as posiзoes =D, perai, jaja edito aqui, nгo esqueзeu nгo, й que nгo uso YSI.
Reply
#5

Quote:
Originally Posted by CLANdok
Посмотреть сообщение
Para resolver os warnings:
pawn Код:
//Variбveis
enum pInfo
{
    Float:pPosX,
    Float:pPosY,
    Float:pPosZ,
    pPass,
    pCash,
    pAdmin,
    pKills,
    pDeaths
}
Agora para o erro no spawn pode tentar as funзoes:


SetSpawnInfo();
SetPlayerFacingAngle();
SetPlayerCameraPos();
SetPlayerInterior();
SpawnPlayer();
Quote:
Originally Posted by BrunoMC09
Посмотреть сообщение
Funcionou! Obrigado!


Nenhuma das funзхes a cima serve para aquilo que quero
Nem precisei de usar as funзхes acima bastou por as variбveis pPosX,pPosY e pPosZ como float como vocк disse uqe ficou tudo a funcionar! Mais uma vez mt obrigado!

Resolvido!!
Reply
#6

Quote:
Originally Posted by CLANdok
Посмотреть сообщение
Amigo, acho que vocк esqueзeu de carregar as posiзoes =D, perai, jaja edito aqui.
Eu tava a carregar as posiзхes o problema era mesmo as variбveis que nгo estavam em float!
Reply
#7

Ok, De nada, qualquer coisa volte aqui.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)