Szerző Téma: Regisztráció  (Megtekintve 3367 alkalommal)

Regisztráció
« Dátum: 2013. május 23. - 16:52:44 »
0 Show voters
Sziasztok!
 
Ugyebár kezdõ scripterként gyakorolgatok, és gondoltam, publikálom is a készítményeket, hogy megkapjam az építõ jellegû kritikákat!  :thumbsup:
Ez most egy regisztráló script lenne, amely tartalmazza a regisztrálást és a bejelentkezést(egyértelmûen), és, hogy ne lehessen spawnolni amíg be nem jelentkezik az illetõ!
Tehát az adatok:
Készítõ: Én (Marlk1)
Készítési idõ: kb. 10 perc
sorok száma: ~106sor
Letöltés(pwn): -
 
// Ez az egyik elsõ munkám
// A playereket nem mysql-ba hanem simán szöveges dokumentumba menti
//Regisztráló script, készítette: Marlk1 (Sergio White)
#define FILTERSCRIPT
#include <a_samp>
#include <zcmd>
#include <sscanf2>
#include <dini>
#include <dubd>
#include <dutils>
#if defined FILTERSCRIPT
#define COLOR_RED 0xAA3333AA
#define COLOR_GREEN 0x33AA33AA
new Bejelentkezve[MAX_PLAYERS];
new file [128];
 
CMD:register(playerid, params[])
{
new PlayerName[MAX_PLAYER_NAME];
new jelszo[64];
GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);
if(Bejelentkezve[playerid] = 0)
{
    if(sscanf(params, \"s[64]\", jelszo)) return SendClientMessage(playerid, COLOR_RED, \"használat: /register [jelszó]\");
    else
{
    dini_Create(file, \"Scriptfiles/jatekosok/%.ini\");
    dini_IntSet(file, \"Jelszó\", udb_hash(jelszo));
    dini_IntSet(file, \"Pénz\", GetPlayerMoney(playerid));
    dini_IntSet(file, \"Pont\", GetPlayerScore(playerid));
   
    SendClientMessage(playerid, COLOR_GREEN, \"Sikeresen regisztráltál! Mostmár bejelentkezhetsz! (/login)\");
}
else
{
    SendClientMessage(playerid, COLOR_RED, \"Ezzel a névvel már valaki regisztrálva van!\");
}
return 1;
}
//--------------------------regisztrálós rész vége--------------------Jön a Bejelentkezés rész-------------------------------//
CMD:login(playerid, params[])
{
new PlayerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);
if(Bejelentkezve[playerid] == 0);
{
    new jelszo[64];
   
  if(sscanf(params, \"s[64]\", jelszo)) return SendClientMessage(playerid, COLOR_GREEN, \"Elõbb jelentkezz be! /login\");
  else
  {
    format(file, sizeoff(file), \"Scriptfiles/jatekosok/%.ini\", PlayerName);
    if(dini_Exists(file))
    {
        if(strval(dini_Get(file, \"Jelszó\")) == udb_hash(jelszo))
       
       
     {
       GivePlayerMoney(playerid, dini_IntSet(file, \"Pénz\"));
       GivePlayerScore(playerid, dini_IntSet(file, \"Pont\"));
       Bejelentkezve[playerid] == 1;
       SendClientMessage(playerid, COLOR_GREEN, \"Sikeresen Bejelentkeztél!\");
     }
     else
     {
       SendClientMessage(playerid, COLOR_RED, \"Rossz jelszó!\");
     }
}
}
else
{
    SendClientMessage(playerid, COLOR_RED, \"Elõször regisztrálj! /register\");
}
return 1;
}
//Most mentse a játékos adatait amikor kilép
public OnPlayerDisconnect(playerid, reason)
{
dini_IntSet(file, \"Pénz\", GetPlayerMoney(playerid));
dini_IntSet(file, \"Pont\", GetPlayerScore(palyerid));
Bejelentkezve(playerid) == 0;
return 1;
}
//és most nem spawnolhat addig amíg be nem jelentkezik
public OnPlayerRequestSpawn(playerid)
{
if(Bejelentkezve[playerid] == 0)
{
    SendClientMessage(playerid, COLOR_RED, \"Elõször jelentkezz be!\");
    Kick(playerid);
    return 1;
}
}
#endif
//remélem tetszik :D
« Utoljára szerkesztve: 2013. június 24. - 22:21:39 írta Marlk1 »

Nem elérhető Csabesz

  • 7827
    • Profil megtekintése
Regisztráció
« Válasz #1 Dátum: 2013. május 23. - 17:13:53 »
0 Show voters
Te ezt letesztelted?

Regisztráció
« Válasz #2 Dátum: 2013. május 23. - 17:15:34 »
0 Show voters
Igen

Nem elérhető Csabesz

  • 7827
    • Profil megtekintése
Regisztráció
« Válasz #3 Dátum: 2013. május 23. - 17:31:10 »
0 Show voters
Nem fogok regényeket írni, meg igazán ki se elemeztem a kódot, de ami rögtön szembe tûnik, hogy csak loginnál adtad meg a file pontos elérési útját.
Regisztrációnál nem fogja tudni a szerver, hogy hova hozza létre a fájlt.
 

//és most nem spawnolhat addig amíg be nem jelentkezik
public OnPlayerSpawn(playerid)
{
        if(Bejelentkezve[playerid] == 0)
        {
            SendClientMessage(playerid, COLOR_RED, \"Elõször jelentkezz be!\");
            return 1;
        }
}

 
Ettõl a kódtól még le fog tudni spawnolni, csak ki fogja írni hogy \"Elõször jelentkezz be!\" ha nem vagy bejelentkezve.

Regisztráció
« Válasz #4 Dátum: 2013. május 23. - 17:42:21 »
0 Show voters
Javítottam, remélem jól, ha mégsem, kérlek szóljatok! :)

Nem elérhető krisk

  • 2380
    • Profil megtekintése
Regisztráció
« Válasz #5 Dátum: 2013. május 23. - 17:44:12 »
0 Show voters
Nem teszteltem le én sem a kódot, de te írtál egy direktívás feltételt (#if defined FILTERSCRIPT ... #endif), viszont semmilyen #define FILTERSCRIPT nincsen a kódban. Ez, így elsõ ránézésre, úgy ahogy van le se fog fordulni, legalább is semmilyen értelmes kódot nem fogsz belõle kapni (a két fent említett direktíva közti részlet úgy az egyben ki fog maradni).
E1: a Kick függvényt nagybetûvel kell írni.

Regisztráció
« Válasz #6 Dátum: 2013. május 23. - 17:56:37 »
0 Show voters
Javítva!

Nem elérhető Csabesz

  • 7827
    • Profil megtekintése
Regisztráció
« Válasz #7 Dátum: 2013. május 24. - 11:28:37 »
+1 Show voters
Nem. http://wiki.sa-mp.com/wiki/OnPlayerRequestSpawn
Ezt használd -OnPlayerSpawn helyett, mert ez akkor hívódik meg mikor a karakterkiválasztóba rákattint a \'Spawn\'-ra.
A file pontos elérési útját még mindig nem adtad meg mindenhol tökéletesen.

Regisztráció
« Válasz #8 Dátum: 2013. május 29. - 19:36:36 »
0 Show voters
Remélem mostmár véglegesen, javítva!  :thumbsup:

Regisztráció
« Válasz #9 Dátum: 2013. június 02. - 07:44:23 »
0 Show voters
Kélrek segítsetek én már nem jövök rá  :wall:
Ez mért van ?
 
D:\\Bencus Dolgai Nagygép\\gamemodes\\sonteszt.pwn(87) : error 012: invalid function call, not a valid address
D:\\Bencus Dolgai Nagygép\\gamemodes\\sonteszt.pwn(87) : warning 215: expression has no effect
D:\\Bencus Dolgai Nagygép\\gamemodes\\sonteszt.pwn(87) : error 001: expected token: \";\", but found \")\"
D:\\Bencus Dolgai Nagygép\\gamemodes\\sonteszt.pwn(87) : error 029: invalid expression, assumed zero
D:\\Bencus Dolgai Nagygép\\gamemodes\\sonteszt.pwn(87) : fatal error 107: too many error messages on one line

 
87. Sorom
 
Bejelentkezve(playerid) == 0;

 
Gamemodeba raktam bele!

Regisztráció
« Válasz #10 Dátum: 2013. június 03. - 13:46:02 »
0 Show voters
Na? Senki? Pls ..

Regisztráció
« Válasz #11 Dátum: 2013. június 03. - 13:49:47 »
0 Show voters
Idézetet írta: Carloska002 date=1370259962\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"37723\" data-ipsquote-contentclass=\"forums_Topic
Na? Senki? Pls ..
 
Mibajodvanneked?  ;D

Regisztráció
« Válasz #12 Dátum: 2013. június 24. - 10:46:37 »
0 Show voters
Jó script lenne kezdésnek pedig...

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Regisztráció
« Válasz #13 Dátum: 2013. június 24. - 16:38:01 »
0 Show voters
Bencuskaa\" post=\"430541\" timestamp=\"1370151863\"]
Kélrek segítsetek én már nem jövök rá  :wall:
Ez mért van ?
 
D:\\Bencus Dolgai Nagygép\\gamemodes\\sonteszt.pwn(87) : error 012: invalid function call, not a valid address
D:\\Bencus Dolgai Nagygép\\gamemodes\\sonteszt.pwn(87) : warning 215: expression has no effect
D:\\Bencus Dolgai Nagygép\\gamemodes\\sonteszt.pwn(87) : error 001: expected token: \";\", but found \")\"
D:\\Bencus Dolgai Nagygép\\gamemodes\\sonteszt.pwn(87) : error 029: invalid expression, assumed zero
D:\\Bencus Dolgai Nagygép\\gamemodes\\sonteszt.pwn(87) : fatal error 107: too many error messages on one line

 
87. Sorom
 
Bejelentkezve(playerid) == 0;

 
Gamemodeba raktam bele!
 
[/quote]
Tess:
 
Bejelentkezve[playerid] = 0;
« Utoljára szerkesztve: 2013. június 24. - 16:42:08 írta BoOy »

Regisztráció
« Válasz #14 Dátum: 2013. augusztus 15. - 21:01:09 »
0 Show voters
Helló bocs hogy késõn írok de nem vágom a dinit és kérdezném hogy ez miért van? :
 
D:\\AGTA Szerverek\\aTESZT SZERVER\\gamemodes\\headbreak.pwn(728) : warning 215: expression has no effect
D:\\AGTA Szerverek\\aTESZT SZERVER\\gamemodes\\headbreak.pwn(732) : warning 225: unreachable code
D:\\AGTA Szerverek\\aTESZT SZERVER\\gamemodes\\headbreak.pwn(749) : warning 211: possibly unintended assignment
D:\\AGTA Szerverek\\aTESZT SZERVER\\gamemodes\\headbreak.pwn(754) : warning 202: number of arguments does not match definition
D:\\AGTA Szerverek\\aTESZT SZERVER\\gamemodes\\headbreak.pwn(760) : warning 217: loose indentation
D:\\AGTA Szerverek\\aTESZT SZERVER\\gamemodes\\headbreak.pwn(760) : error 029: invalid expression, assumed zero
D:\\AGTA Szerverek\\aTESZT SZERVER\\gamemodes\\headbreak.pwn(766) : warning 217: loose indentation
D:\\AGTA Szerverek\\aTESZT SZERVER\\gamemodes\\headbreak.pwn(766) : error 029: invalid expression, assumed zero
D:\\AGTA Szerverek\\aTESZT SZERVER\\gamemodes\\headbreak.pwn(766) : error 017: undefined symbol \"cmd_login\"
D:\\AGTA Szerverek\\aTESZT SZERVER\\gamemodes\\headbreak.pwn(766) : error 029: invalid expression, assumed zero
D:\\AGTA Szerverek\\aTESZT SZERVER\\gamemodes\\headbreak.pwn(766) : fatal error 107: too many error messages on one line

 

Dupla hozzászólás automatikusan összefûzve. ( 2013. augusztus 16. - 08:52:01 )

Valaki tudna akkor segíteni? Fontos lenne
« Utoljára szerkesztve: 2013. augusztus 16. - 08:52:01 írta kundlam »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal