20.12.2014, 15:25
Boa Tarde,
Tou a fazer um gamemode e tou a incorporar um sistema de Login/registo:
o pwan abaixo:
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)!
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
Код:
//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; }
Podem me ajudar?
P.S.: Tambйm jб agora gostava que alguйm vi se o porque dos warnings(Linha das warnings assinalados)!