Üzenetek megjelenítése

Ez a szekció lehetővé teszi a felhasználó által írt összes hozzászólás megtekintését. Vedd figyelembe, hogy csak azokba a fórumokba írt hozzászólásokat látod, amelyekhez hozzáférésed van.


Üzenetek - kurta999

Oldalak: 1 ... 26 27 [28] 29 30 ... 184
406
SA-MP: verziók / SA:MP ?
« Dátum: 2013. január 06. - 00:57:38 »
Szerintem meg hülyeség, csak valaki kitalálta.
Egyébként láttam már jópár helyen, de kitudja mi az igazság..
Én mongyuk magasról szarok a fejire, csak csináljon már valamit xD

407
Segítségkérés / GetPlayerFPS
« Dátum: 2013. január 05. - 22:33:19 »
Idézetet írta: ZyZu date=1357421322\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"31987\" data-ipsquote-contentclass=\"forums_Topic
Esetleg nem ez a hiba? Probáld meg így.. de jónak kell lennie..  :hmmm:
 
if(0 <= wfps <= 200) 

 
helyett
 
 if ((wfps > 0) && (wfps < 200)) 

 

Ugyan azt jelenti mind a kettõ, csak én leegyszerûsítettem.
Mongyuk azt most veszem észre, hogy az enyém beleszámolja a 0-t és a 200-at is :D
De nekem ez 2 éven keresztül mûködött, itt mással lesz a baj, nem ezzel a feltétellel.

408
Segítségkérés / Kisebb kérdések
« Dátum: 2013. január 05. - 22:30:59 »
Az logikus, hogy minél kevesebb FS-et használsz, annál kevesebbet fog zabálni. (Mondjuk szerintem nem nagyon, csak elenyészõ mennyiség)
Én azt ajánlom, hogy írj mindent a módba, kivéve az objectokat esetleg a kocsikat, mivel abból sok van és fölöslegesen lassítja a fordítási sebességet.
Sok script használatának sincs értelme, mivel úgy nem tudsz normálisan összefüggõen komunikálni mindennel (meg lehet oldani, az igaz), ezért sokkal jobban megéri az egészet egy GM-ben és minden egyhelyen van, összefüggõen.

409
Segítségkérés / GetPlayerFPS
« Dátum: 2013. január 05. - 22:25:19 »
Hát pedig ennek mûködni kell, ugyanez a kód.
Én a módomból másoltam az OnPlayerUpdate részt, azt használom 0.3b óta és mûködik tökéletesen.
http://forum.sa-mp.com/showthread.php?t=172085

410
Segítségkérés / GetPlayerFPS
« Dátum: 2013. január 05. - 21:23:50 »

new
g_pDrunkLevelLast[MAX_PLAYERS],
g_pFPS[MAX_PLAYERS];
// lekérés: g_pFPS[jatekosid]
public OnPlayerUpdate(playerid)
{
new
drunknew = GetPlayerDrunkLevel(playerid);
if(drunknew < 100)
{
SetPlayerDrunkLevel(playerid, 2000);
}
else
{
if(g_pDrunkLevelLast[playerid] != drunknew)
{
   new
      wfps = g_pDrunkLevelLast[playerid] - drunknew;
   if(0 <= wfps <= 200)
   {
      g_pFPS[playerid] = wfps;
   }
   g_pDrunkLevelLast[playerid] = drunknew;
}
}
return 1;
}

411
SA-MP: Szerverfejlesztés / IP lekérõ parancs.(Rcon adminnak)
« Dátum: 2013. január 05. - 21:15:04 »
sscanf hibázni fog, mivel ip változót is beleraktad a paraméterek közé miközben csak \"u\" specifier van ott.
A nevet és az IP-t pedig a sajátodét kéred le, úgyhogy ennek írhatsz akármit, mindig ugyanazt fogja írni.
Formázó stringnek fölösleges 256, mivel maximum 144 betût tudsz kiírni a chatba.
Ezeket javítsd.

412
Best of 2012 / Az Év Adminisztrátora[Összesítve]
« Dátum: 2013. január 05. - 10:32:38 »
Témaindító.

413
SA-MP: verziók / SA:MP ?
« Dátum: 2013. január 04. - 14:47:34 »
CP színezésen nemtudom milenne olyan nagy dolog, alap játék is támogatja a színezést, csak nincs használva..
(Ha van akkor nemszóltam)
http://www.gtamodding.com/index.php?title=Memory_Addresses_(SA)#Race_Checkpoints
+2 = [byte] RGBA color value

414
Kurva régen csináltam, nem igazán emléxek rá, de azt tudom, hogy semmi olyan aminek lenne valami nagyobb jelentõsége.
Egyébként elõbbi kódban bennehagytam véletlen egy másik scriptbõl részleget, azt javítottam. Valamit teszteltem a szerveren nos ebbe írtam bele és bennemaradt :D

415
Visszamondtam a tárhelyet, befejeztem a szervert úgyhogy minden .tarhely.biz-es link rossz. Akinek vmi kell, írjon PM-et.
Ittvan a legújabb:
 

// MySQL Regisztráció rendszer by kurta999
// Verzió: 2.0
// Last Update: 2012.10.29
#include <a_samp>
#tryinclude a_mysql_r7
#if !defined _a_mysql_r7_included
    #include <a_mysql>
#endif
#if defined mysql_fetch_int
#error \"Frissítsd a MySQL (a_mysql.inc) függvénykönyvtárad az R7-re!\"
#endif
#include <zcmd> // http://forum.sa-mp.com/showthread.php?t=91354
#define             NINCS_REG_CSILLAG // Rakd a kommenttárba, ha a jelszót a játékosnak a regisztráció dialógusban csillagozni akarod.
// Szerintem ezt ajánlott így hagyni, mivel a regisztrációban könnyen félrhetírhatsz és nemjössz rá a hibára, mivel nem látod, hogy mit írtál..
// A hibára pedig csak akkor jössz rá, miután beregisztráltál.
#define ChangeNameDialog(%1) \\
    ShowPlayerDialog(%1, DIALOG_CHANGENAME, DIALOG_STYLE_INPUT, !\"{\" #XCOLOR_RED \"}Névváltás\", !\"{\" #XCOLOR_GREEN \"}Lentre írd be az új neved! \\nHa régóta játszol már, akkor a névváltás több másodpercig is eltarthat!\\n\\n{\" #XCOLOR_RED \"}Ahogy megváltoztattad, rögtön változtasd meg a neved a SAMP-ba!\", !\"Változtatás\", !\"Mégse\")
// gpci beágyazása
native gpci(playerid, const serial[], maxlen);
new
year,
month,
day,
hour,
minute,
second;
new // Direkt adok hozzá + 1 karaktert, mivel valahol a \\0 kraktert is tárolni kell. (Ez 4 karakter, de kell az 5. is, mivel ott tárolja a \\0-t! [\'a\', \'n\', \'y\', \'á\', \'d\', \'\\0\'])
g_szQuery[512 +1],
g_szDialogFormat[4096],
i_str[128 +1],
g_szIP[16 +1];
// Bit flagok
enum e_PLAYER_FLAGS (<<= 1)
{
e_LOGGED_IN = 1,
e_FIRST_SPAWN
}
new
e_PLAYER_FLAGS:g_PlayerFlags[MAX_PLAYERS char];
new
g_pQueryQueue[MAX_PLAYERS];
// MySQL beállítások, alapból ezek azok a wamp-nál, csak a tábla nevét módosítsd arra, amilyen néven létrehoztad, nekem itt a \'samp\'
#define MYSQL_HOST             \"localhost\"
#define MYSQL_USER             \"root\"
#define MYSQL_PASS             \"\"
#define MYSQL_DB               \"samp\"
// Üzenet, amit akkor ír ki, ha a lekérdezés befejezése elõtt lelép a játékos
#define QUERY_COLLISION(%0) \\
printf(\"Query collision \\\" #%0 \\\"! PlayerID: %d, queue: %d, g_pQueryQueue: %d\", playerid, queue, g_pQueryQueue[playerid])
// RRGGBBAA
#define COLOR_GREEN          0x33FF33AA
#define COLOR_RED            0xFF0000AA
#define COLOR_YELLOW         0xFF9900AA
#define COLOR_PINK             0xFF66FFAA
// RRGGBB
#define XCOLOR_GREEN          33FF33
#define XCOLOR_RED             FF0000
#define XCOLOR_BLUE            33CCFF
#define XCOLOR_YELLOW         FF9900
#define XCOLOR_WHITE         FFFFFF
// Dialóg ID
enum
{
DIALOG_LOGIN = 20000,
DIALOG_REGISTER,
DIALOG_CHANGENAME,
DIALOG_CHANGEPASS,
DIALOG_FINDPLAYER
}
// isnull by Y_Less
#define isnull(%1) \\
((!(%1[0])) || (((%1[0]) == \'\\1\') && (!(%1[1]))))
public OnFilterScriptInit()
{
// MySQL
print(!\"MySQL: Kapcsolódás erre a címre \" MYSQL_HOST \" \" MYSQL_USER \" nevû felhasználóval. \\nAdatbázis neve: \" MYSQL_DB \".\");
mysql_debug(1); // Hosztos szerveren ajánlott kikapcsolni. (Ha bekapcsovla hagyod sem nagyon lesz semmi, mivel R7-ben nem ír annyi információt ki, mind a régebbiekben)
mysql_connect(!MYSQL_HOST, !MYSQL_USER, !MYSQL_DB, !MYSQL_PASS);
if(mysql_ping() != 1)
{
print(!\"MySQL: Kapcsolódás sikertelen! (\" MYSQL_HOST \")\");
print(!\"MySQL: A mód kikapcsol! (\" MYSQL_HOST \")\");
SendRconCommand(!\"exit\");
return 1;
}
print(!\"MySQL: Kapcsolódás elfogadva!\" MYSQL_HOST \"\");
print(!\"MySQL: Adatbázis \" MYSQL_DB \" kiválasztva!\");
     return 1;
}
public OnFilterScriptExit()
{
mysql_close(); // Kapcsolat bezárása
return 1;
}
public OnPlayerConnect(playerid)
{
SetPlayerColor(playerid, (random(0xFFFFFF) << 8) | 0xFF); // GetPlayerColor() javítása
g_pQueryQueue[playerid]++;
format(g_szQuery, sizeof(g_szQuery), \"SELECT `reg_id` FROM `players` WHERE `name` = \'%s\'\", pName(playerid));
mysql_function_query(1, g_szQuery, true, \"THREAD_OnPlayerConnect\", \"dd\", playerid, g_pQueryQueue[playerid]);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
g_pQueryQueue[playerid]++;
return SavePlayer(playerid, GetPVarInt(playerid, \"RegID\"));
}
forward THREAD_OnPlayerConnect(playerid, queue);
public THREAD_OnPlayerConnect(playerid, queue)
{
// Ha a játékos csatlakozik vagy lelép, akkor a \"g_pQueryQueue[playerid]\" értéke mindig növekedik.
// Lekérdezésnél átvisszük ennek az értékét a \"queue\" nevû paraméterben, amit majd a lekérdezés lefutásánál ellenõrzünk.
// Ha a játékos lelépett, akkor \"g_pQueryQueue[playerid]\" egyel több lett, tehát nem egyenlõ a \"queue\" paraméter értékével.
// Ez esetben a lekérdezés nem fog lefutni, hanem egy figyelmezetõ üzenetet fog kiírni a konzolva, hogy \"query collision\".
// Nagyon fontos ez, mivel ha van egy lekérdezés, ami lekérdez valami \"titkos\" adatot az adatbázisból,
// közben belaggol a a mysql szerver, a lekérdezés eltart 5 másodpercig, feljön egy másik játékos és annak fogja kiírni az adatokat,
// mivel a lekérdezés lefutása közben lelépett a játékos és egy másik jött a helyére. Erre van ez a védelem, így ettõl egyáltalán nem kell tartani.
// Sima lekérdezéseknél (ház betöltés, egyéb betöltés, frissítés, stb.. szarságok) ilyen helyen nem szükséges ez a védelem.
if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_OnPlayerConnect);
new
szFetch[12];
cache_get_row(0, 0, szFetch);
SetPVarInt(playerid, \"LineID\", strval(szFetch));
// Ez itt egy \"átmeneti változó\", ami tárolja, hogy mi a reg id-je a játékosnak.
// Ha nulla, akkor nincs regisztrálva (mivel az SQL 0-t ad vissza, ha nemlétezõ a sor), ellentétben pedig igen.
g_PlayerFlags{playerid} = e_PLAYER_FLAGS:0; // Nullázuk az értékét, nem elég a nulla, kell elé a változó tagja is, különben figyelmeztet a fordító.
    if(!IsPlayerNPC(playerid)) // Csak játékosokra vonatkozik
{
SetPVarInt(playerid, \"RegID\", -1);
GetPlayerIp(playerid, g_szIP, sizeof(g_szIP));
gpci(playerid, i_str, sizeof(i_str));
getdate(year, month, day);
gettime(hour, minute, second);
format(g_szQuery, sizeof(g_szQuery), \"INSERT INTO `connections`(id, name, ip, serial, time) VALUES(0, \'%s\', \'%s\', \'%s\', \'%02d.%02d.%02d/%02d.%02d.%02d\')\", pName(playerid), g_szIP, i_str, year, month, day, hour, minute, second);
mysql_function_query(1, g_szQuery, false, \"OnQueryFinish\", \"\");
// Autologin
// Leftuttatunk egy lekérdezést, ami ha befejezõdött, akkor meghívódik a \"THREAD_Autologin\" callback.
// A régebbi pluginnal ez egy funkcióban ment, szóval ha a mysql szerver belaggolt és a lekérdezés eltartott 5 másodpercig,
// akkor 5 másodpercig megfagyott a szerver.
// Itt nem fog megfagyni semeddig a szerver, mivel létrehoz neki egy új szálat, és az a szál fagy meg míg nem fut le a lekérdezés.
// Lefutás után pedig meghívja a \"THREAD_Autologin\" callbackot. Ez már logikus, hogy az alap szálon (main thread)-on fut.
//
// Fenti lekérdezéssel is szintén ez a helyzet, viszont ott nem vagyunk kiváncsi a kapott értékekre.
// Az a lefutása során az \"OnQueryFinish\" callbackot hívja meg, viszont itt nem történik semmi.
// Ugyanaz a helyzet az összes lekérdezéssel, ha kiváncsi lennék az értékére, akkor ugyanúgy a callback alá raknám a dolgokat, mint itt.
format(g_szQuery, sizeof(g_szQuery), \"SELECT * FROM `players` WHERE `name` = \'%s\' AND `ip` = \'%s\'\", pName(playerid), g_szIP);
mysql_function_query(1, g_szQuery, true, \"THREAD_Autologin\", \"dd\", playerid, g_pQueryQueue[playerid]);
}
     return 1;
}
forward THREAD_Autologin(playerid, queue);
public THREAD_Autologin(playerid, queue)
{
if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_Autologin);
new
    rows,
    fields;
cache_get_data(rows, fields);
if(rows) // Ha a sor nem üres
{
LoginPlayer(playerid);
SendClientMessage(playerid, COLOR_GREEN, \"Automatikusan bejelentkeztél!\");
}
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
if(IsPlayerNPC(playerid)) return 1;
   
    //printf(\"%d\", g_PlayerFlags{playerid} & e_LOGGED_IN);
if(!(g_PlayerFlags{playerid} & e_LOGGED_IN)) // Felmutatjuk neki a megfelelõ dialógot
{
if(GetPVarInt(playerid, \"LineID\"))
{
   LoginDialog(playerid);
}
else
{
   RegisterDialog(playerid);
}
}
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
if(IsPlayerNPC(playerid)) return 1;
if(!(g_PlayerFlags{playerid} & e_LOGGED_IN)) // Felmutatjuk neki a megfelelõ dialógot
{
if(GetPVarInt(playerid, \"LineID\"))
{
   LoginDialog(playerid);
}
else
{
   RegisterDialog(playerid);
}
}
return 1;
}
public OnPlayerSpawn(playerid)
{
// Ha elõször spawnol, akkor odaadjuk neki a pénzt. Mivel skinválasztásnál nem lehet pénzt adni a játékosnak!
if(!(g_PlayerFlags{playerid} & e_FIRST_SPAWN))
{
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, GetPVarInt(playerid, \"Cash\"));
DeletePVar(playerid, \"Cash\");
g_PlayerFlags{playerid} |= e_FIRST_SPAWN;
}
// Ütésstílus beállítása
SetPlayerFightingStyle(playerid, GetPVarInt(playerid, \"Style\"));
return 1;
}
 
// Y_Less
NameCheck(const aname[])
{
    new
        i,
        ch;
    while ((ch = aname[i++]) && ((ch == \']\') || (ch == \'[\') || (ch == \'(\') || (ch == \')\') || (ch == \'_\') || (ch == \'$\') || (ch == \'@\') || (ch == \'.\') || (ch == \'=\') || (\'0\' <= ch <= \'9\') || ((ch |= 0x20) && (\'a\' <= ch <= \'z\')))) {}
    return !ch;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case DIALOG_LOGIN:
{
   if(!response)
       return LoginDialog(playerid);
   if(g_PlayerFlags{playerid} & e_LOGGED_IN)
   {
      SendClientMessage(playerid, COLOR_RED, \"Már be vagy jelentkezve.\");
      return 1;
   }
   if(isnull(inputtext))
   {
      SendClientMessage(playerid, COLOR_RED, \"Nem írtál be semilyen jelszót!\");
      LoginDialog(playerid);
      return 1;
   }
   if(!(3 <= strlen(inputtext) <= 20))
   {
      SendClientMessage(playerid, COLOR_RED, \"Rossz jelszó hosszúság! 3 - 20\");
      LoginDialog(playerid);
      return 1;
   }
   new
      szEscape[32];
   mysql_real_escape_string(inputtext, szEscape); // Kiszûri az adatot, SQL injection elkerülése végett. Bõvebben itt olvashatsz róla: http://sampforum.hu/index.php?topic=9285.0
   format(g_szQuery, sizeof(g_szQuery), \"SELECT * FROM `players` WHERE `name` = \'%s\' AND `pass` COLLATE `utf8_bin` LIKE \'%s\'\", pName(playerid), szEscape);
   mysql_function_query(1, g_szQuery, true, \"THREAD_DialogLogin\", \"dd\", playerid, g_pQueryQueue[playerid]);
}
case DIALOG_REGISTER:
{
   if(!response)
      return RegisterDialog(playerid);
   if(isnull(inputtext))
   {
      SendClientMessage(playerid, COLOR_RED, \"Nem írtál be semilyen jelszót!\");
      RegisterDialog(playerid);
      return 1;
   }
   if(!(3 <= strlen(inputtext) <= 20))
   {
      SendClientMessage(playerid, COLOR_RED, \"Rossz jelszó hosszúság! 3 - 20\");
      RegisterDialog(playerid);
      return 1;
   }
   format(g_szQuery, sizeof(g_szQuery), \"SELECT `reg_id` FROM `players` WHERE `name` = \'%s\'\", pName(playerid));
   mysql_function_query(1, g_szQuery, true, \"THREAD_Register_1\", \"dsd\", playerid, inputtext, g_pQueryQueue[playerid]);
}
case DIALOG_CHANGENAME:
{
   if(!response)
      return 0;
   if(!(3 <= strlen(inputtext) <= 20))
   {
      SendClientMessage(playerid, COLOR_RED, \"Nem megfelelõ hosszú a neved! 3 és 20 karakter között legyen!\");
      ChangeNameDialog(playerid);
      return 1;
   }
   if(!NameCheck(inputtext))
   {
      SendClientMessage(playerid, COLOR_RED, \"Nem megfelelõ név! Csak ezek a karakterek lehetnek benne: {\" #XCOLOR_GREEN \"}A-Z, 0-9, [], (), $, @. {\" #XCOLOR_RED \"}Ezenkívül helyet nem tartamlazhat!\");
      ChangeNameDialog(playerid);
      return 1;
   }
   if(!strcmp(inputtext, pName(playerid), true))
   {
      SendClientMessage(playerid, COLOR_RED, \"Jelenleg is ez a neved! Írj be egy másikat!\");
      ChangeNameDialog(playerid);
      return 1;
   }
   mysql_real_escape_string(inputtext, i_str);
   format(g_szQuery, sizeof(g_szQuery), \"SELECT `reg_id` FROM `players` WHERE `name` = \'%s\'\", i_str);
   mysql_function_query(1, g_szQuery, true, \"THREAD_Changename\", \"dsd\", playerid, inputtext, g_pQueryQueue[playerid]);
}
case DIALOG_CHANGEPASS:
{
   if(!response)
      return 0;
   if(!(3 <= strlen(inputtext) <= 20))
   {
      SendClientMessage(playerid, COLOR_RED, \"Nem megfelelõ hosszú a jelszavad! 3 és 20 karakter között legyen!\");
      ShowPlayerDialog(playerid, DIALOG_CHANGEPASS, DIALOG_STYLE_INPUT, \"Jelszóváltás\", \"Lentre írd be az új jelszavad! \\n\\n\", \"Változtatás\", \"Mégse\");
      return 1;
   }
   format(g_szQuery, sizeof(g_szQuery), \"SELECT `pass` FROM `players` WHERE `reg_id` = %d\", GetPVarInt(playerid, \"RegID\"));
   mysql_function_query(1, g_szQuery, true, \"THREAD_Changepass\", \"dsd\", playerid, inputtext, g_pQueryQueue[playerid]);
}
case DIALOG_FINDPLAYER:
{
   if(!response)
      return 0;
   format(g_szQuery, sizeof(g_szQuery), \"SELECT * FROM `players` WHERE `name` = \'%s\'\", inputtext);
   mysql_function_query(1, g_szQuery, true, \"THREAD_Findplayer\", \"dsd\", playerid, inputtext, g_pQueryQueue[playerid]);
}
}
return 1;
}
forward THREAD_DialogLogin(playerid, queue);
public THREAD_DialogLogin(playerid, queue)
{
if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_DialogLogin);
new
    rows,
    fields;
cache_get_data(rows, fields);
if(rows != 1)
{
SendClientMessage(playerid, COLOR_RED, \"HIBA: Rossz jelszó.\");
LoginDialog(playerid);
return 1;
}
LoginPlayer(playerid);
GetPlayerIp(playerid, g_szIP, sizeof(g_szIP));
format(g_szQuery, sizeof(g_szQuery), \"UPDATE `players` SET `ip` = \'%s\' WHERE `reg_id` = %d\", g_szIP, GetPVarInt(playerid, \"RegID\"));
mysql_function_query(1, g_szQuery, false, \"OnQueryFinish\", \"\");
SendClientMessage(playerid, COLOR_GREEN, !\"Sikersen bejelentkeztél!\");
return 1;
}
forward THREAD_Register_1(playerid, password[], queue);
public THREAD_Register_1(playerid, password[], queue)
{
if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_Register_1);
new
    rows,
    fields;
cache_get_data(rows, fields);
if(rows)
{
SendClientMessage(playerid, COLOR_RED, \"MySQL sorok száma nem 0, valami hiba történt a kiválasztás közben!\");
SendClientMessage(playerid, COLOR_RED, \"Ezt a hibát jelezd a tulajdonosnak! Kickelve lettél, mert ebbõl hiba keletkezhet!\");
printf(\"MySQL rosw > 1 (%d, %s)\", playerid, password);
Kick(playerid);
return 1;
}
new
szEscape[21];
getdate(year, month, day);
gettime(hour, minute, second);
GetPlayerIp(playerid, g_szIP, sizeof(g_szIP));
mysql_real_escape_string(password, szEscape);
format(g_szQuery, sizeof(g_szQuery), \"INSERT INTO `players`(reg_id, name, ip, pass, reg_date, laston) VALUES(0, \'%s\', \'%s\', \'%s\', \'%02d.%02d.%02d/%02d.%02d.%02d\', \'%02d.%02d.%02d/%02d.%02d.%02d\')\", pName(playerid), g_szIP, szEscape, year, month, day, hour, minute, second, year, month, day, hour, minute, second);
mysql_function_query(1, g_szQuery, false, \"THREAD_Register_2\", \"dsd\", playerid, password, g_pQueryQueue[playerid]);
return 1;
}
forward THREAD_Register_2(playerid, password[], queue);
public THREAD_Register_2(playerid, password[], queue)
{
if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_Register_2);
new
iRegID = mysql_insert_id();
SetPVarInt(playerid, \"RegID\", iRegID); // Játékos Regisztrációs ID-jét beállítuk arra, amelyik sorba írtunk elõbb ( INSERT INTO )
SetPVarInt(playerid, \"Style\", 4);
g_PlayerFlags{playerid} |= e_LOGGED_IN;
format(i_str, sizeof(i_str), \"Sikeresen regisztráltál! A jelszavad: {\" #XCOLOR_RED \"}%s. {\" #XCOLOR_GREEN \"}Felhasználó ID: {\" #XCOLOR_BLUE \"}%d\", password, iRegID);
SendClientMessage(playerid, COLOR_GREEN, i_str);
SendClientMessage(playerid, COLOR_PINK, \"Ennyi lenne a MySQL regisztáció {\" #XCOLOR_BLUE \"}:)\");
return 1;
}
forward THREAD_Changename(playerid, inputtext[], queue);
public THREAD_Changename(playerid, inputtext[], queue)
{
if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_Changename);
new
    rows,
    fields;
cache_get_data(rows, fields);
if(rows)
{
SendClientMessage(playerid, COLOR_RED, \"HIBA: Ez a név már használatban van!\");
SendClientMessage(playerid, COLOR_GREEN, \"Írj be egy más nevet, vagy menj a \'Mégse\' gombra!\");
ChangeNameDialog(playerid);
return 1;
}
new
szOldName[MAX_PLAYER_NAME + 1],
pRegID = GetPVarInt(playerid, \"RegID\");
GetPlayerName(playerid, szOldName, sizeof(szOldName));
if(SetPlayerName(playerid, inputtext) != 1)
{
SendClientMessage(playerid, COLOR_RED, \"Nem megfelelõ név! Írj be egy másikat!\");
ChangeNameDialog(playerid);
return 1;
}
getdate(year, month, day);
gettime(hour, minute, second);
format(g_szQuery, sizeof(g_szQuery), \"INSERT INTO `namechanges`(id, reg_id, oldname, newname, time) VALUES(0, %d, \'%s\', \'%s\', \'%02d.%02d.%02d/%02d.%02d.%02d\')\", pRegID, szOldName, inputtext, year, month, day, hour, minute, second);
mysql_function_query(1, g_szQuery, false, \"OnQueryFinish\", \"\");
format(g_szQuery, sizeof(g_szQuery), \"UPDATE `players` SET `name` = \'%s\' WHERE `reg_id` = %d\", inputtext, pRegID);
mysql_function_query(1, g_szQuery, false, \"OnQueryFinish\", \"\");
format(i_str, sizeof(i_str), \"Sikeresen átváltottad a neved! Új neved: {\" #XCOLOR_WHITE \"}%s.\", inputtext);
SendClientMessage(playerid, COLOR_YELLOW, i_str);
return 1;
}
forward THREAD_Changepass(playerid, password[], queue);
public THREAD_Changepass(playerid, password[], queue)
{
if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_Changepass);
new
    szOldPass[21],
    szEscaped[21],
    pRegID = GetPVarInt(playerid, \"RegID\");
cache_get_row(0, 0, szOldPass);
mysql_real_escape_string(password, szEscaped);
format(g_szQuery, sizeof(g_szQuery), \"UPDATE `players` SET `pass` = \'%s\' WHERE `reg_id` = %d\", szEscaped, pRegID);
mysql_function_query(1, g_szQuery, false, \"OnQueryFinish\", \"\");
getdate(year, month, day);
gettime(hour, minute, second);
format(g_szQuery, sizeof(g_szQuery), \"INSERT INTO `namechanges_p`(id, reg_id, name, oldpass, newpass, time) VALUES(0, %d, \'%s\', \'%s\', \'%s\', \'%02d.%02d.%02d/%02d.%02d.%02d\')\", pRegID, pName(playerid), szOldPass, szEscaped, year, month, day, hour, minute, second);
mysql_function_query(1, g_szQuery, false, \"OnQueryFinish\", \"\");
format(i_str, sizeof(i_str), \"Sikeresen átállítotad a jelszavad! Új jelszavad: {\" #XCOLOR_GREEN \"}%s\", password);
SendClientMessage(playerid, COLOR_YELLOW, i_str);
return 1;
}
forward THREAD_Findplayer(playerid, inputtext[], queue);
public THREAD_Findplayer(playerid, inputtext[], queue)
{
if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_Findplayer);
new
szFetch[12],
szRegDate[24],
szLaston[24],
iData[6];
cache_get_row(0, 0, szFetch); iData[0] = strval(szFetch); // regid
cache_get_row(0, 4, szRegDate);
cache_get_row(0, 5, szLaston);
cache_get_row(0, 6, szFetch); iData[1] = strval(szFetch); // money
cache_get_row(0, 7, szFetch); iData[2] = strval(szFetch); // score
cache_get_row(0, 8, szFetch); iData[3] = strval(szFetch); // kills
cache_get_row(0, 9, szFetch); iData[4] = strval(szFetch); // deaths
cache_get_row(0, 10, szFetch); iData[5] = strval(szFetch); // style
switch(iData[5])
{
case FIGHT_STYLE_NORMAL: szFetch = \"Normál\";
      case FIGHT_STYLE_BOXING: szFetch = \"Boxoló\";
      case FIGHT_STYLE_KUNGFU: szFetch = \"Kungfu\";
case FIGHT_STYLE_KNEEHEAD: szFetch = \"Kneehead\";
case FIGHT_STYLE_GRABKICK: szFetch = \"Grabkick\";
case FIGHT_STYLE_ELBOW: szFetch = \"Elbow\";
}
// Üzenet elküldése
format(i_str, sizeof(i_str), \"Név: %s, ID: %d, RegID: %d, Pénz: %d, Pont: %d\", inputtext, playerid, iData[0], iData[1], iData[2]);
SendClientMessage(playerid, COLOR_RED, i_str);
format(i_str, sizeof(i_str), \"Ölések: %d, Halálok: %d, Arány: %.2f, Ütés Stílus: %s\", iData[3], iData[4], (iData[3] && iData[4]) ? (floatdiv(iData[3], iData[4])) : (0.0), szFetch);
SendClientMessage(playerid, COLOR_YELLOW, i_str);
format(i_str, sizeof(i_str), \"Regisztáció ideje: {\" #XCOLOR_BLUE \"}%s{\" #XCOLOR_GREEN \"}, Utuljára a szerveren: {\" #XCOLOR_BLUE \"}%s\", szRegDate, szLaston);
SendClientMessage(playerid, COLOR_GREEN, i_str);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if(IsPlayerConnected(killerid) && killerid != INVALID_PLAYER_ID)
{
SetPVarInt(killerid, \"Kills\", GetPVarInt(killerid, \"Kills\") + 1);
}
SetPVarInt(playerid, \"Deaths\", GetPVarInt(playerid, \"Deaths\") + 1);
return 1;
}
// Statisztika felmutató
CMD:stats(playerid, params[])
{
format(g_szQuery, sizeof(g_szQuery), \"SELECT `reg_date`, `laston` FROM `players` WHERE `reg_id` = %d\", GetPVarInt(playerid, \"RegID\")); // Kiválasztjuk a reg_date és a laston mezõt
mysql_function_query(1, g_szQuery, true, \"THREAD_Stats\", \"dd\", playerid, g_pQueryQueue[playerid]);
return 1;
}
forward THREAD_Stats(playerid, queue);
public THREAD_Stats(playerid, queue)
{
if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_Stats);
new
RegDate[24],
Laston[24],
szStyle[24],
Kills = GetPVarInt(playerid, \"Kills\"),
Deaths = GetPVarInt(playerid, \"Deaths\");
cache_get_row(0, 0, RegDate);
cache_get_row(0, 1, Laston);
switch(GetPlayerFightingStyle(playerid))
{
case FIGHT_STYLE_NORMAL: szStyle = \"Normál\";
      case FIGHT_STYLE_BOXING: szStyle = \"Boxoló\";
      case FIGHT_STYLE_KUNGFU: szStyle = \"Kungfu\";
case FIGHT_STYLE_KNEEHEAD: szStyle = \"Kneehead\";
case FIGHT_STYLE_GRABKICK: szStyle = \"Grabkick\";
case FIGHT_STYLE_ELBOW: szStyle = \"Elbow\";
}
// Üzenet elküldése
format(i_str, sizeof(i_str), \"Név: %s, ID: %d, RegID: %d, Pénz: %d, Pont: %d\", pName(playerid), playerid, GetPVarInt(playerid, \"RegID\"), GetPlayerMoney(playerid), GetPlayerScore(playerid));
SendClientMessage(playerid, COLOR_RED, i_str);
format(i_str, sizeof(i_str), \"Ölések: %d, Halálok: %d, Arány: %.2f, Ütés Stílus: %s\", Kills, Deaths, (Kills && Deaths) ? (floatdiv(Kills, Deaths)) : (0.0), szStyle);
SendClientMessage(playerid, COLOR_YELLOW, i_str);
format(i_str, sizeof(i_str), \"Regisztáció ideje: {\" #XCOLOR_BLUE \"}%s{\" #XCOLOR_GREEN \"}, Utuljára a szerveren: {\" #XCOLOR_BLUE \"}%s\", RegDate, Laston);
SendClientMessage(playerid, COLOR_GREEN, i_str);
return 1;
}
/*
CMD:kill(playerid, params[])
{
SetPlayerHealth(playerid, 0.0);
return 1;
}
CMD:flag(playerid, params[])
{
format(i_str, 128, \"Logged: %d, FirstSpawn: %d\", g_PlayerFlags{playerid} & e_LOGGED_IN, g_PlayerFlags{playerid} & e_FIRST_SPAWN);
SendClientMessage(playerid, -1, i_str);
return 1;
}
*/
CMD:changename(playerid, params[])
{
ChangeNameDialog(playerid);
return 1;
}
CMD:changepass(playerid, params[])
{
ShowPlayerDialog(playerid, DIALOG_CHANGEPASS, DIALOG_STYLE_PASSWORD, \"Jelszóváltás\", \"Lentre írd be az új jelszavad! \\n\\n\", \"Változtatás\", \"Mégse\");
return 1;
}
CMD:findplayer(playerid, params[])
{
if(isnull(params)) return SendClientMessage(playerid, COLOR_RED, \"HASZNÁLAT: /findplayer <Játékos Névrészlet>\");
if(strlen(params) > MAX_PLAYER_NAME) return SendClientMessage(playerid, COLOR_RED, \"HIBA: Túl hosszú a részlet, maximum 24 karakter lehet!\");
format(g_szQuery, sizeof(g_szQuery), \"SELECT `name` FROM `players` WHERE `name` LIKE \'%s%s%s\'\", \"%%\", params, \"%%\");
mysql_function_query(1, g_szQuery, true, \"THREAD_FindplayerDialog\", \"dsd\", playerid, params, g_pQueryQueue[playerid]);
return 1;
}
forward THREAD_FindplayerDialog(playerid, reszlet[], queue);
public THREAD_FindplayerDialog(playerid, reszlet[], queue)
{
if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_FindplayerDialog);
new
    rows,
    fields;
cache_get_data(rows, fields);
if(!rows)
{
format(i_str, sizeof(i_str), \"Nincs találat a \'%s\' részletre!\", reszlet);
SendClientMessage(playerid, COLOR_RED, i_str);
return 1;
}
else if(rows > 180)
{
format(i_str, sizeof(i_str), \"A \'%s\' részletre több, mint 180 találad van! < %d >!\", reszlet, rows);
SendClientMessage(playerid, COLOR_RED, i_str);
return 1;
}
new
    x,
    szName[MAX_PLAYER_NAME];
g_szDialogFormat[0] = EOS;
for( ; x != rows; x++)
{
cache_get_row(x, 0, szName);
strcat(g_szDialogFormat, szName);
strcat(g_szDialogFormat, \"\\n\");
}
format(i_str, 128, \"Találatok a(z) \'%s\' részletre.. (%d)\", reszlet, x);
ShowPlayerDialog(playerid, DIALOG_FINDPLAYER, DIALOG_STYLE_LIST, i_str, g_szDialogFormat, \"Megtekint\", \"Mégse\");
return 1;
}
/////////////////////////////////////////
stock LoginDialog(playerid)
{
format(i_str, sizeof(i_str), \"{\" #XCOLOR_WHITE \"}Bejelentkezés: {%06x}%s(%d)\", GetPlayerColor(playerid) >>> 8, pName(playerid), playerid);
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, i_str, !\"{\" #XCOLOR_GREEN \"}Üdvözöllek a \\n\\n{\" #XCOLOR_BLUE \"}My{\" #XCOLOR_YELLOW \"}SQL {\" #XCOLOR_GREEN \"}teszt szerveren! \\n\\nTe már regisztálva vagy. Lentre írd be a jelszavad\", !\"Bejelentkezés\", !\"Mégse\");
return 1;
}
stock RegisterDialog(playerid)
{
format(i_str, sizeof(i_str), \"{\" #XCOLOR_WHITE \"}Regisztráció: {%06x}%s(%d)\", GetPlayerColor(playerid) >>> 8, pName(playerid), playerid);
#if defined NINCS_REG_CSILLAG
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, i_str, !\"{\" #XCOLOR_GREEN \"}Üdvözöllek a \\n\\n{\" #XCOLOR_BLUE \"}My{\" #XCOLOR_YELLOW \"}SQL {\" #XCOLOR_GREEN \"}teszt szerveren! \\n\\nItt még nem regisztráltál. Lentre írd be a jelszavad\", !\"Regisztáció\", !\"Mégse\");
#else
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, i_str, !\"{\" #XCOLOR_GREEN \"}Üdvözöllek a \\n\\n{\" #XCOLOR_BLUE \"}My{\" #XCOLOR_YELLOW \"}SQL {\" #XCOLOR_GREEN \"}teszt szerveren! \\n\\nItt még nem regisztráltál. Lentre írd be a jelszavad\", !\"Regisztáció\", !\"Mégse\");
#endif
return 1;
}
/* Bejelentkezés */
stock LoginPlayer(playerid)
{
new
iPVarSet[6],
szFetch[12],
iRegID = GetPVarInt(playerid, \"LineID\");
// Ha a line ID 0, tehát a MySQL nem adott vissza sorokat, akkor semmiképp sem jelentkezhez be!
// Ennek nem szabadna elõfordulnia, de biztonság kedvéért teszek rá védelmet.
if(!iRegID) return printf(\"HIBA: Rossz reg ID! Játékos: %s(%d) (regid: %d)\", pName(playerid), playerid, iRegID);
   
SetPVarInt(playerid, \"RegID\", iRegID); // RegID-t beállítjuk
cache_get_row(0, 0, szFetch); iPVarSet[0] = strval(szFetch); // RegID
cache_get_row(0, 6, szFetch); iPVarSet[1] = strval(szFetch); // Money
cache_get_row(0, 7, szFetch); iPVarSet[2] = strval(szFetch); // Score
cache_get_row(0, 8, szFetch); iPVarSet[3] = strval(szFetch); // Kills
cache_get_row(0, 9, szFetch); iPVarSet[4] = strval(szFetch); // Deaths
cache_get_row(0, 10, szFetch); iPVarSet[5] = strval(szFetch); // Fightingstyle
SetPVarInt(playerid, \"Cash\", iPVarSet[1]); // A pénzét egy PVar-ban tároljuk, mert a skinválasztásnál nemlehet a játékos pénzét állítani.
SetPlayerScore(playerid, iPVarSet[2]);
SetPVarInt(playerid, \"Kills\", iPVarSet[3]);
SetPVarInt(playerid, \"Deaths\", iPVarSet[4]);
SetPVarInt(playerid, \"Style\", iPVarSet[5]);
g_PlayerFlags{playerid} |= e_LOGGED_IN;
return 1;
}
stock SavePlayer(playerid, regid)
{
if(IsPlayerNPC(playerid)) return 1;
// Ha nincs bejelentkezve és még nem spawnolt le, akkor nem mentjük. Ezt ajánlatos itthagyni, mivel ezmiatt nekem sok bug keletkezett!
if(g_PlayerFlags{playerid} & (e_LOGGED_IN | e_FIRST_SPAWN) == (e_LOGGED_IN | e_FIRST_SPAWN))
{
getdate(year, month, day);
gettime(hour, minute, second);
format(g_szQuery, sizeof(g_szQuery), \"UPDATE `players` SET `laston` = \'%02d.%02d.%02d/%02d.%02d.%02d\', `money` = %d, `score` = %d, `kills` = %d, `deaths` = %d, `fightingstyle` = \'%d\' WHERE `reg_id` = %d\",
year, month, day, hour, minute, second, GetPlayerMoney(playerid), GetPlayerScore(playerid), GetPVarInt(playerid, \"Kills\"), GetPVarInt(playerid, \"Deaths\"), GetPlayerFightingStyle(playerid),
regid);
mysql_function_query(1, g_szQuery, false, \"OnQueryFinish\", \"\");
// %02d azt jelenti, hogyha a szám egyjegyû (1, 5, 7, stb... ), akkor tegyen elé egy 0-t. Pl: 05, 07.
// Ezt általában idõre használják, mivel így \'érthetõbb\'.
// Ez ugyanúgy mûködik %03d-vel %04d-vel, és így továb... ^
}
return 1;
}
stock pName(playerid)
{
static // \"Helyi\" globális változó
s_szName[MAX_PLAYER_NAME];
GetPlayerName(playerid, s_szName, sizeof(s_szName));
return s_szName;
}
forward OnQueryFinish();
public OnQueryFinish()
{
return 1;
}
/* SQL Tábla */
/*
CREATE TABLE IF NOT EXISTS `connections` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(21) NOT NULL,
  `ip` varchar(16) NOT NULL,
  `serial` varchar(128) NOT NULL,
  `time` varchar(24) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `namechanges` (
  `id` smallint(5) NOT NULL AUTO_INCREMENT,
  `reg_id` mediumint(8) NOT NULL,
  `oldname` varchar(21) NOT NULL,
  `newname` varchar(21) NOT NULL,
  `time` varchar(24) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `reg_id` (`reg_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `namechanges_p` (
  `id` smallint(5) NOT NULL AUTO_INCREMENT,
  `reg_id` mediumint(8) NOT NULL,
  `name` varchar(24) NOT NULL,
  `oldpass` varchar(21) NOT NULL,
  `newpass` varchar(21) NOT NULL,
  `time` varchar(24) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `reg_id` (`reg_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `players` (
  `reg_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(24) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `ip` varchar(20) NOT NULL,
  `pass` varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `reg_date` varchar(24) NOT NULL,
  `laston` varchar(24) NOT NULL,
  `money` int(11) NOT NULL DEFAULT \'0\',
  `score` int(11) NOT NULL DEFAULT \'0\',
  `kills` mediumint(11) unsigned NOT NULL DEFAULT \'0\',
  `deaths` mediumint(11) unsigned NOT NULL DEFAULT \'0\',
  `fightingstyle` enum(\'4\',\'5\',\'6\',\'7\',\'15\',\'16\') NOT NULL DEFAULT \'4\',
  PRIMARY KEY (`reg_id`),
  KEY `name` (`name`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC;
CREATE TABLE IF NOT EXISTS `queryerrors` (
  `id` mediumint(7) NOT NULL AUTO_INCREMENT,
  `errorid` int(11) NOT NULL,
  `error` text NOT NULL,
  `resultid` mediumint(7) NOT NULL,
  `extraid` mediumint(7) NOT NULL,
  `callback` varchar(512) NOT NULL,
  `sql_query` varchar(512) NOT NULL,
  `connectionHandle` mediumint(7) NOT NULL,
  `time` varchar(24) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `errorid` (`errorid`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
*/

416
Beszélgetés / Újévi fogadalom?
« Dátum: 2013. január 03. - 00:13:38 »
Én fõleg az alkoholt szeretném letenni ami nagyon nehéz lesz, mivel a buszmegállónál ahol leszállok ottvan a kocsma.
Másik dolog amit a legfontossabbnak tartok, hogy ne szokjak vissza a cigire.

417
Archívum / Lemondás by ɐʞzssǝlosz
« Dátum: 2013. január 02. - 13:09:06 »
Sok sikert a továbbiakban, énis hasonló dolgok miatt jutottam pontosan ebbe a helyzetbe.

418
Best of 2012 / Az Év Legérdekesebb témanyitója[Összesítve]
« Dátum: 2013. január 01. - 19:05:42 »
Idézetet írta: RampagE date=1357062710\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"31742\" data-ipsquote-contentclass=\"forums_Topic
okoska - help elakadtam
 
^.

419
Best of 2012 / Az Év Scriptere[Összesítve]
« Dátum: 2013. január 01. - 19:01:14 »
ɐʞzssǝlosz, DrAkE, Anthony, Epsilon
(Sorrend nem jelent semmit, csak leírtam, szerintem kik azok!)
[gmod]Érvénytelen szavazás! Oka: Olvasd el ezt: http://sampforum.hu/index.php?topic=35904.0

((Köszönöm a megemlítést :) ))
[/gmod]

420
Best of 2012 / Az Év Pályakészítõje[Összesítve]
« Dátum: 2013. január 01. - 18:58:12 »
Jackob.

Oldalak: 1 ... 26 27 [28] 29 30 ... 184
SimplePortal 2.3.7 © 2008-2024, SimplePortal