Jump to content

Registrace přes y_ini.inc


martanius

Recommended Posts

Ahoj, viděl jsem tu spoustu registrací před DINI, ale ještě jsem nenarazil na registraci přes y_ini. Takže doufám že to tu už není a jdem na to.

 

Chtěl bych upozornit, že tento tut není můj nýbrž byl zkopírován a přeložen do CZ + přidané popisky ke scriptům. Jakékoliv udělené hodnocení udělujete autorovi tohoto tutu - KUSH.

 

Registrace + přihlašování je přes dialog.

 

1. Includy

 

Celou složku zkopírujeme do naší pawno složky\Include

http://www.solidfiles.com/d/51017ec473/

 

2. Definice v pawnu

 

Takže složku YSI máme v includech a jdeme na definice, otevřeme pawno a na začátek :

 

#include //Definice y_ini ze složky YSI - tento soubor je pro registraci/přihlášení

Další si definujeme dialogy:

 

#define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2
#define DIALOG_SUCCESS_1 3
#define DIALOG_SUCCESS_2 4

Teď cestu kam se nám budou uživatelské účty ukládat,vytvořte si složku Users ve scriptfiles :

 

#define PATH "/Users/%s.ini"

Teď pár barev, můžete si změnit:

 

#define COL_WHITE "{FFFFFF}"
#define COL_RED "{F81414}"
#define COL_GREEN "{00FF22}"
#define COL_LIGHTBLUE "{00CED1}"

3. Stocky,enumy a forwardy

 

Vytvoříme si nový enum s informacemi, které se budou ukládat po odpojení a načítat při připojení:

 

enum pInfo
{
   pPass,
   pCash,
   pAdmin,
   pKills,
   pDeaths
}
new PlayerInfo[MAX_PLAYERS][pInfo];

Teď nějaký ten forward na načtení informací,forward musí být před publicem:

 

forward LoadUser_data(playerid,name[],value[]);
public LoadUser_data(playerid,name[],value[])
{
   INI_Int("Password",PlayerInfo[playerid][pPass]);
   INI_Int("Cash",PlayerInfo[playerid][pCash]);
   INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
   INI_Int("Kills",PlayerInfo[playerid][pKills]);
   INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
   return 1;
}

Teď stock na pojmenování souboru ve složce Users:

 

stock UserPath(playerid)
{
   new string[128],playername[MAX_PLAYER_NAME];
   GetPlayerName(playerid,playername,sizeof(playername));
   format(string,sizeof(string),PATH,playername);
   return string;
}

Nyní si definujeme hash system,ke stockům :

 

stock udb_hash(buf[]) {
   new length=strlen(buf);
   new s1 = 1;
   new s2 = 0;
   new n;
   for (n=0; n    {
      s1 = (s1 + buf[n]) % 65521;
      s2 = (s2 + s1)     % 65521;
   }
   return (s2 << 16) + s1;
}

4. Výzva k registraci při připojení a dialog

 

Do OnPlayerConnect:

 

 if(fexist(UserPath(playerid)))
   {
       INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
       ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Přihlášení",""COL_WHITE"Zadejte heslo pro přihlášení.","Přihlásit","Odejít");
   }
   else//pokud není registrován
   {
       ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""COL_WHITE"Zaregistrujte se prosím",""COL_WHITE"Zadejte vaše heslo pro nový účet.","Registrovat","Odejít");
   }

Další je tu dialog, toto vložte do OnDialogResponse:

 

 

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"Zaregistrujte se prosím",""COL_RED"Zadal jste nesprávné heslo.\n"COL_WHITE"Zadejte vaše heslo k novému účtu.","Registrovat","Odejít");

new INI:File = INI_Open(UserPath(playerid));

INI_SetTag(File,"data");

INI_WriteInt(File,"Password",udb_hash(inputtext));

INI_WriteInt(File,"Cash",0);

INI_WriteInt(File,"Admin",0);

INI_WriteInt(File,"Kills",0);

INI_WriteInt(File,"Deaths",0);

INI_Close(File);

 

SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);

SpawnPlayer(playerid);

ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,""COL_WHITE"Success!",""COL_GREEN"Skvěle! Tvá registrace proběhla úspěšně!. Pro uložení statistik se musíš odpojit a znovu připojit!","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]);

ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""COL_WHITE"Povedlo se!",""COL_GREEN"Byl jsi úspěšně přihlášen!","Ok","");

}

else

{

ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Přihlášení",""COL_RED"Zadal jsi špatné heslo.\n"COL_WHITE"Zadej své heslo pro přihlášení.","Přihlásit","Odejít");

}

return 1;

}

}

}

5. Uložení informací:

 

Máme registraci i přihlášení hotové, teď jen ukládání a načítání informací. Do OnPlayerDisconnect:

 

 new INI:File = INI_Open(UserPath(playerid));
   INI_SetTag(File,"data");
   INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
   INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
   INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
   INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
   INI_Close(File);

6. Zápis do proměnné zabití a smrti:

 

Teď už jen při každé smrti hráče zjistíme kdo ho zabil a přičteme hráči co ho zabil (killerid) další bod za zabití a hráči co zemřel (playerid) další bod za smrt, do OnPlayerDeath:

 

 PlayerInfo[killerid][pKills]++;
   PlayerInfo[playerid][pDeaths]++;

 

PS: Komentáře typu: lamo, kopíruješ si strčte slušně řečeno za klobouk, uvádím, že nejsem autorem a tut byl přeložen pro lidi s menší znalostí AJ (pawneři nemusí být vždy dobří v AJ). Děkuji za přečtení a doufám že vám tut pomůže.

Link to comment
Share on other sites

Ahoj, viděl jsem tu spoustu registrací před DINI, ale ještě jsem nenarazil na Y_Lessův způsob.

DINI je script a Y_Less je človek... niečo tu nesedí :) a není to Y_Lessov spôsob ale y_ini na ten tu návod je (iba použitie - nie registrácia a login)

 

ale tie popisky sú hrozné... to fakt hrôza

Link to comment
Share on other sites

ok popisky jsem smazal jestli to vypadá líp. A název upravil, měl jsem namysli jako že ten script je od Y_Lesse takže Y_Lessův script čili Y_Lessův způsob, ale on těch scriptů má hafo takže je asi lepší registrace přes Y_ini

Link to comment
Share on other sites

Taký úplne hlúpy error

 

 

E:\pawno\****.pwn(46) : error 017: undefined symbol "PATH"

 

Riadok 42-48 :

 

 

stock UserPath(playerid)

{

new string[128],playername[MAX_PLAYER_NAME];

GetPlayerName(playerid,playername,sizeof(playername));

format(string,sizeof(string),PATH,playername);

return string;

}

 

Link to comment
Share on other sites

Taký úplne hlúpy error

 

 

E:\pawno\****.pwn(46) : error 017: undefined symbol "PATH"

 

Riadok 42-48 :

 

 

stock UserPath(playerid)

{

new string[128],playername[MAX_PLAYER_NAME];

GetPlayerName(playerid,playername,sizeof(playername));

format(string,sizeof(string),PATH,playername);

return string;

}

 

nemáš definovaný PATH :DD

Link to comment
Share on other sites

Taký úplne hlúpy error

 

 

E:\pawno\****.pwn(46) : error 017: undefined symbol "PATH"

 

Riadok 42-48 :

 

 

stock UserPath(playerid)

{

new string[128],playername[MAX_PLAYER_NAME];

GetPlayerName(playerid,playername,sizeof(playername));

format(string,sizeof(string),PATH,playername);

return string;

}

 

nemáš definovaný PATH :DD

 

OK Opravil som si to !!..

Link to comment
Share on other sites

Lol omg !! ja to tam mám a stále to píše keď som dal

 

new PATH[MAX_PLAYERS];

 

Tak error zmizol ale nechce to zapisovať !! .. a prosím odpisuj rýchlejšie a nie pomaly 2 dni ..

 

Přečti si první příspěvek a radši dvakrát za sebou :facepalm::facepalm:

 

Žádné new PATH[MAX_PLAYERS]; tam nenajdeš....

 

PS:

 

Svůj dotaz jsi napsal:

 

čtv 17. kvě 2012 15:29:18

 

Já odpověděl (předemnou ještě někdo jiný) :

 

čtv 17. kvě 2012 22:18:14

 

6 hodin a 48 minut (cca) jsou u tebe skoro 2 dny ?

 

Nezapomeň, že PATH musíš definovat ještě předtím než ho někde použiješ...

Link to comment
Share on other sites

MÁM DEFINOVANÉ PATH !!....

 

#define PATH "/Users/%s.ini"

 

Tak nedristajte .. už som to tu aj písal ale som editoval lebo som myslel , že je to ok ale v hre je to na p*** mi vyskočí tabuľka aby som sa zaregistroval sa zaregistrujem ma to "spawne" a znova to chce aby som sa zaregistroval..

Link to comment
Share on other sites

MÁM DEFINOVANÉ PATH !!....

 

#define PATH "/Users/%s.ini"

 

Tak nedristajte .. už som to tu aj písal ale som editoval lebo som myslel , že je to ok ale v hre je to na p*** mi vyskočí tabuľka aby som sa zaregistroval sa zaregistrujem ma to "spawne" a znova to chce aby som sa zaregistroval..

 

Máš vytvořenou složku Users ve scriptfiles ? Pokud ne soubor se nevytvoří a tebe to nezaregistruje...

Link to comment
Share on other sites

  • 1 year later...

Môžete mi pomôcť už sa serem s registraciou asi tak 2-3 dni a nič mi nefunguje Viem že je to 3roky starý topic ale aj tak prosím poradte som zúfali :( neveim čo mám robiť...Vopred dakujem

Hádže mi to tieto errory:

C:\Documents and Settings\Jakub\Plocha\Untitled.pwn(135) : error 017: undefined symbol "UserPath"
C:\Documents and Settings\Jakub\Plocha\Untitled.pwn(137) : error 017: undefined symbol "UserPath"
C:\Documents and Settings\Jakub\Plocha\Untitled.pwn(138) : error 017: undefined symbol "DIALOG_LOGIN"
C:\Documents and Settings\Jakub\Plocha\Untitled.pwn(138) : error 017: undefined symbol "COL_WHITE"
C:\Documents and Settings\Jakub\Plocha\Untitled.pwn(138) : warning 215: expression has no effect
C:\Documents and Settings\Jakub\Plocha\Untitled.pwn(138) : error 001: expected token: "-string end-", but found "-identifier-"
C:\Documents and Settings\Jakub\Plocha\Untitled.pwn(138) : fatal error 107: too many error messages on one line
Riadky:
135:if(fexist(UserPath(playerid)))
137: INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
138:ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Přihlášení",""COL_WHITE"Zadejte heslo pro přihlášení.","Přihlásit","Odejít");
Link to comment
Share on other sites

  • 1 month later...
  • 4 months later...
C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(2231) : error 025: function heading differs from prototype
C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(2298) : warning 235: public function lacks forward declaration (symbol "OnEnterExitModShop")
C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(2365) : error 025: function heading differs from prototype
C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(2432) : error 025: function heading differs from prototype
C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(2501) : warning 235: public function lacks forward declaration (symbol "OnVehicleDamageStatusUpdate")
C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(2566) : warning 235: public function lacks forward declaration (symbol "OnUnoccupiedVehicleUpdate")
C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(2898) : warning 235: public function lacks forward declaration (symbol "OnRconLoginAttempt")
C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(2965) : warning 235: public function lacks forward declaration (symbol "OnPlayerUpdate")
C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(3028) : warning 235: public function lacks forward declaration (symbol "OnPlayerStreamIn")
C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(3093) : warning 235: public function lacks forward declaration (symbol "OnPlayerStreamOut")
C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(3158) : warning 235: public function lacks forward declaration (symbol "OnVehicleStreamIn")
C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(3223) : warning 235: public function lacks forward declaration (symbol "OnVehicleStreamOut")
C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(3288) : warning 235: public function lacks forward declaration (symbol "OnDialogResponse")
C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(3359) : warning 235: public function lacks forward declaration (symbol "OnPlayerClickPlayer")
C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(3426) : warning 235: public function lacks forward declaration (symbol "OnPlayerTakeDamage")
C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(3495) : warning 235: public function lacks forward declaration (symbol "OnPlayerGiveDamage")
C:\Documents and Settings\ROB@TKO\Plocha\pawno\hey.pwn(931) : error 017: undefined symbol "PlayerInfo"
C:\Documents and Settings\ROB@TKO\Plocha\pawno\hey.pwn(931) : error 017: undefined symbol "killerid"
C:\Documents and Settings\ROB@TKO\Plocha\pawno\hey.pwn(931) : error 029: invalid expression, assumed zero
C:\Documents and Settings\ROB@TKO\Plocha\pawno\hey.pwn(931) : fatal error 107: too many error messages on one line
 
Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
 
Ayk4WC.png
 
7 Errors.
 

Něco tam mám... ví někdo co ? Klidně pošlu svůj mód PWN. Naučím se to lépe když to uvidím funkční v pawnu.
Pište zprávy kdo má zájem. Nebo na facebook: Danex Kyčmer

:(

Link to comment
Share on other sites

  • Globální moderátor

C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(2231) : error 025: function heading differs from prototype

C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(2298) : warning 235: public function lacks forward declaration (symbol "OnEnterExitModShop")

C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(2365) : error 025: function heading differs from prototype

C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(2432) : error 025: function heading differs from prototype

C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(2501) : warning 235: public function lacks forward declaration (symbol "OnVehicleDamageStatusUpdate")

C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(2566) : warning 235: public function lacks forward declaration (symbol "OnUnoccupiedVehicleUpdate")

C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(2898) : warning 235: public function lacks forward declaration (symbol "OnRconLoginAttempt")

C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(2965) : warning 235: public function lacks forward declaration (symbol "OnPlayerUpdate")

C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(3028) : warning 235: public function lacks forward declaration (symbol "OnPlayerStreamIn")

C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(3093) : warning 235: public function lacks forward declaration (symbol "OnPlayerStreamOut")

C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(3158) : warning 235: public function lacks forward declaration (symbol "OnVehicleStreamIn")

C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(3223) : warning 235: public function lacks forward declaration (symbol "OnVehicleStreamOut")

C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(3288) : warning 235: public function lacks forward declaration (symbol "OnDialogResponse")

C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(3359) : warning 235: public function lacks forward declaration (symbol "OnPlayerClickPlayer")

C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(3426) : warning 235: public function lacks forward declaration (symbol "OnPlayerTakeDamage")

C:\Documents and Settings\ROB@TKO\Plocha\pawno\include\YSI\internal\y_dohooks.inc(3495) : warning 235: public function lacks forward declaration (symbol "OnPlayerGiveDamage")

C:\Documents and Settings\ROB@TKO\Plocha\pawno\hey.pwn(931) : error 017: undefined symbol "PlayerInfo"

C:\Documents and Settings\ROB@TKO\Plocha\pawno\hey.pwn(931) : error 017: undefined symbol "killerid"

C:\Documents and Settings\ROB@TKO\Plocha\pawno\hey.pwn(931) : error 029: invalid expression, assumed zero

C:\Documents and Settings\ROB@TKO\Plocha\pawno\hey.pwn(931) : fatal error 107: too many error messages on one line

 

Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

 

7 Errors.

 

 

 

Něco tam mám... ví někdo co ? Klidně pošlu svůj mód PWN. Naučím se to lépe když to uvidím funkční v pawnu.

Pište zprávy kdo má zájem. Nebo na facebook: Danex Kyčmer

 

:(

 

už asi 10 krát upravujes tento príspevok len aby si to niekto všimol.. Pridaš tam bodku aby si to zviditeľnil... Až ti niekto bude chcieť pomôcť tak ti pomôže....

Link to comment
Share on other sites

  • Globální moderátor

Nevím co to bereš za drogy ale musí to být slušný materiál.

Když neumíš pomoc tak se neozývej díky.

nie len mi vadí keď čítam témy a každých 5 minút je tá tvoja na začiatku bez novej odpovede a jediná možnosť ako zviditeľniť tému je upraviť obsah posledného príspevku......... Ako premna zamna ak sa ti chce každých 5 minút upravovať príspevok aby si to niekto všimol prosím....

 

Ináč ak si robil registráciu podľa návodu od y_lessa tak tam nemôže byť žiaden error( google -> y_ini register tutorial) a hneď to prvé

Link to comment
Share on other sites

No nevím google translátor to dobře nepřeloží a já se učil Němčinu.

 

http://forum.sa-mp.com/showthread.php?t=273088 tohle je totalně stejný návod jako tady. Nic víc ani méně takže fakt nevím co mám blbě.

To je těžké napsat co je blbě a já se s toho ponaučím ?

Link to comment
Share on other sites

Když asi program nerozezná něco, tak ti tam k tomu chybí inicializace. 

Co je PlayerInfo, kde jsi to vzal? To sis to tam jenom tak přikreslil? To samý s killerid.. to jsi kde ukradl?

Link to comment
Share on other sites

(931) : error 017: undefined symbol "PlayerInfo"

(931) : error 017: undefined symbol "killerid"

(931) : error 029: invalid expression, assumed zero

(931) : fatal error 107: too many error messages on one line

 

Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

 

 

4 Errors.

 

931 =

public OnPlayerDeath(playerid)

{

    PlayerInfo[killerid][pKills]++;

    PlayerInfo[playerid][pDeaths]++;

    

SetSpawnInfo(playerid, 296,GetPlayerSkin(playerid), -2380.9189,-96.2683,35.3203,269.0090,0,0,0,0,0,0);

return true;

}

 

 


Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...