Szerző Téma: Regisztrációs bug.  (Megtekintve 889 alkalommal)

Regisztrációs bug.
« Dátum: 2013. június 28. - 20:14:15 »
0 Show voters
Nem tudom mi ennek a baja egyszerûen be írom a jelszót rámegyek a nyílra hogy skint váltsak és kijön az hogy jelentkezzek be újra!

Meg a skineket sem mutatja valamiért de az nem lényeg..


Valaki esetleg tudna segíteni?

 
#include                <               a_samp          >
#include                <                Dini           >
#define RED             0xff0000AA      // {ff0000}
#define GREEN           0x51ff00AA      // {51ff00}
#define LILA         0xff00f7AA      // {ff00f7}
 
main(){print(\" Server by Lockett v0.0\");}
new   S[128], //Regisztráció
PW[128],
File[128],
WPW[MAX_PLAYERS],
Nev[MAX_PLAYER_NAME];
forward ClearPlayerChat(playerid);
public OnGameModeInit()
{
SetGameModeText(\"v0.0\");
CreatePlayerClass();
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
format(File, sizeof(File), \"User/%s.ini\", Name(playerid));
if(!fexist(File))
{
ClearPlayerChat(playerid);
SetPlayerCameraPos(playerid, 1965.5404, 1342.8684, 17.9852);
SetPlayerCameraLookAt(playerid, 1964.5417, 1342.8723, 17.7002);
format(S, sizeof(S), \"Üdvözöllek a szerveren, a(z) %s név még nincs regisztrálva\\nÍrj be egy tetszõleges jelszót!\", Name(playerid));
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", S, \"Rendben\", \"Mégse\");
}
else
{
ClearPlayerChat(playerid);
SetPlayerCameraPos(playerid, 1965.5404, 1342.8684, 17.9852);
SetPlayerCameraLookAt(playerid, 1964.5417, 1342.8723, 17.7002);
format(S, sizeof(S), \"Üdvözöllek a szerveren, a(z) %s név már regisztrálva van!\\nÍrd be a jelszót!\", Name(playerid));
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, \"Bejelentkezés\", S, \"Rendben\", \"Mégse\");
}
return 1;
}
public OnPlayerSpawn(playerid)
{
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
public OnPlayerConnect(playerid)
{
return 1;
}
public OnPlayerDisconnect(playerid)
{
Save(playerid);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1)
{
format(S, sizeof(S), \"Üdvözöllek a szerveren, a(z) %s név még nincs regisztrálva\\nÍrj be egy tetszõleges jelszót!\", Name(playerid));
if(!response) Kick(playerid);
if(strlen(inputtext) == 0) ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", S, \"Rendben\", \"Mégsem\");
format(File, sizeof(File), \"User/%s.ini\", Name(playerid));
if(!fexist(File))
{
dini_Create(File);
dini_Set(File, \"Password\", inputtext);
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, \"Bejelentkezés\", \"Írd be a jelszavad.\", \"Rendben\", \"Mégsem\");
   }
     }
if(dialogid == 2)
    {
    format(File, sizeof(File), \"User/%s.ini\", Name(playerid));
if(!response) Kick(playerid);
format(PW, 64, \"%s\", dini_Get(File, \"Password\"));
if(!strcmp(inputtext, PW, false))
{
SendClientMessage(playerid, GREEN, \"Sikeres belépés! Válasz skint!\");
SendClientMessage(playerid, GREEN, \"Majd nyomj a {ff00f7}SPAWN{ff0000} gombra!\"), Load(playerid);
}
else
{
WPW[playerid] ++;
SendClientMessage(playerid, RED, \"Rossz jelszó!\");
if(WPW[playerid] == 3) return SendClientMessage(playerid, RED, \"Harmadszorra is elrontottad a jelszót, ki lettél rúgva!\"), Kick(playerid);
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, \"Bejelentkezés\", \"Írd a helyes jelszót!\", \"Rendben\", \"Mégsem\");
}
}
return 1;
}
public ClearPlayerChat(playerid)
{
for(new m = 0; m < 100; m++) SendClientMessage(playerid,RED,\" \");
return 1;
}
stock Save(playerid)
{
format(File, sizeof(File), \"User/%s.ini\", Name(playerid));
if(fexist(File))
{
dini_IntSet(File, \"Money\", GetPlayerMoney(playerid));
dini_IntSet(File, \"Score\", GetPlayerScore(playerid));
}
}
stock Load(playerid)
{
format(File, sizeof(File), \"User/%s.ini\", Name(playerid));
if(fexist(File))
{
GivePlayerMoney(playerid, dini_Int(File, \"Money\"));
SetPlayerScore(playerid, dini_Int(File, \"Score\"));
}
}
stock Name(playerid)
{
GetPlayerName(playerid, Nev, sizeof(Nev));
return Nev;
}
stock CreatePlayerClass()
{
for( new Skin; Skin < 300; Skin ++ )
{
ApplyAnimation(Skin, \"DAM_JUMP\", \"DAM_Dive_Loop\", 4.1, 1, 0, 0, 0, 0, 1);
AddPlayerClass(Skin, 1954.6697,1343.4034,15.3746,270.7300, 0, 0, 0, 0, 0, 0 );
}
return 1;
}
« Utoljára szerkesztve: 2013. június 29. - 09:34:27 írta Lockett »

Regisztrációs bug.
« Válasz #1 Dátum: 2013. június 28. - 20:22:10 »
0 Show voters
Eleve,ezt javítsd ki:
 
format(File, sizeof(File), \"User/%s.ini\", Name(playerid));

 
Erre:
 
format(File, sizeof(File), \"/User/%s.ini\", Name(playerid));

 Mindegyiknél

Regisztrációs bug.
« Válasz #2 Dátum: 2013. június 28. - 20:23:31 »
0 Show voters
Azzal nincs gond menti és be is tölti rendesen! De azért köszi.

Regisztrációs bug.
« Válasz #3 Dátum: 2013. június 29. - 07:37:18 »
0 Show voters
Észrevettem, hogy te arra tetted a Regisztrációt, hogy OnPlayerRequestClass, inkább rakd az OnPlayerConnect függvény alá, és valószinüleg a skineket is betölti miután Regisztrált a játékos, illetve belépett!

Nem elérhető SnooP

  • 1798
  • SnooP
    • Profil megtekintése
Regisztrációs bug.
« Válasz #4 Dátum: 2013. június 29. - 08:09:16 »
0 Show voters
Nos valoban, a regisztraciot az OnPlayerConnecthez rakjak, az OnPlayerRequestClasshoz pedig a spawnolasi adatokat: hely, kamera, nezesi szog stb.
Viszont ha atrakod a regisztraciot akkor ugyelj arra, hogy letrehozz egy boolt vagy egy enumot es mikor bejelentkezett/regisztralt allitsd a bool-t igazra es csak akkor engedd skint valasztani (OnPlayerRequestClass) ha ez a valtozo igaz, mert ha pl feljon es bejon neki a dialog es nyom egy entert egybol a spawnolashoz teszi, viszont igy nem engedi addig tovabb mig be nem lepett. ;)
Ekezetekert bocs korhazban vagyok.
E: Elneztem.
Ugy csinald meg a regisztraciot, hogy OnPlayerConnectnel berakod a ShowPlayerDialogot es a mentest pedig OnDialogResponse alatt. Lasd itt:  http://sampforum.hu/index.php?topic=9238
« Utoljára szerkesztve: 2013. június 29. - 08:13:43 írta SnooP »

Regisztrációs bug.
« Válasz #5 Dátum: 2013. június 29. - 09:33:58 »
0 Show voters
Ó király köszi a segítséget.  :thumbsup: Amúgy azért nem OnPlayerConnect alatt van mert ott volt csak próbálkoztam vele és így raktam fel..

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal