Az a problémám, hogy nem a koordinátákon keresztül a MySQL mindent betölt. Miért nem tölti be a koordinátákat?
#include a_samp
#include a_mysql
#include zcmd
#include inventory
#define FEHER 0xFFFFFFFF
main(){}
new kapcs, query[2000];
enum eJatekosInfo
{
Nev[25],
Penz,
AdminSzint,
Float:X,
Float:Y,
Float:Z,
SkinID
}
new JatekosInfo[MAX_PLAYERS][eJatekosInfo];
new Belepve[MAX_PLAYERS];
new Aszoli[MAX_PLAYERS];
enum {d_reg, d_belep} //Dialogok automatikus számozása.
public OnGameModeInit()
{
DisableInteriorEnterExits();
Create3DTextLabel(\"{ffea00}Benzinkút\\n{ffffff}(( /enter hogy bemenj ))\", 0x008080FF, -2032.9760,161.5101,29.0461, 20.0, 0, 0);
mysql_log(LOG_ALL, LOG_TYPE_HTML); //Mindent naplózzon (igen, a sikeres dolgokat is), hogy lássunk mindent. A második paraméter azt jelzi, hogy HTML-be naplózzon; így szerintem jóval átláthatóbb.
kapcs = mysql_connect(\"127.0.0.1\", \"dayrpg\", \"dayrpg\", \"xdlol31\"); //A mysql_connect visszatérési értéke a kapcsolat id, ez pont kapóra jön nekünk, beletesszük a változóba.
if(mysql_errno(kapcs) != 0) printf(\"MySQL hiba! Hibakód: %d\", mysql_errno(kapcs)); //Amennyiben a hiba kód nem 0 (azaz van hiba), írassuk ki azt.
if(mysql_errno(kapcs) == 0) printf(\"Sikeres csatlakozás a MySQL szerverhez!\", mysql_errno(kapcs));
return 1;
}
public OnGameModeExit() {
mysql_close(kapcs); //Lezárjuk a kapcsolatot, ez csak akkor történik meg, ha minden késleltetett (threaded) query végzett.HTTP Ha nem zárnánk le, a háttérben futna tovább a kapcsolat.
return 1;
}
public OnPlayerConnect(playerid)
{
Belepve[playerid] = 1;
TogglePlayerSpectating(playerid, true);
for(new a; eJatekosInfo:a < eJatekosInfo; a++) JatekosInfo[playerid][eJatekosInfo:a] = 0; //Nullázzuk az enumjait, nehogy baj legyen.
GetPlayerName(playerid, JatekosInfo[playerid][Nev], 25); //Lekérjük a nevét.
if(strfind(JatekosInfo[playerid][Nev], \"_\") == -1) Kick(playerid);
for(new a; a < strlen(JatekosInfo[playerid][Nev]); a++) if(JatekosInfo[playerid][Nev][a] == \'_\') JatekosInfo[playerid][Nev][a] = \' \';//Végigfutunk a nevén. Ha az egyik karaktere \'_\', kicseréli \' \'-re.
mysql_format(kapcs, query, 256, \"SELECT ID,Nev FROM jatekosok WHERE Nev=\'%e\' LIMIT 1\", JatekosInfo[playerid][Nev]);
mysql_tquery(kapcs, query, \"RegEllenorzes\", \"d\", playerid);
return 1;
}
forward RegEllenorzes(playerid);
public RegEllenorzes(playerid) {
new sorok_szama = cache_get_row_count(); //A sorok_szama változóba lekérjük, hány sort talált. Mint fentebb is beszéltük, ha 0, nincs regelve, ha 1, igen.
if(sorok_szama == 0) ShowPlayerDialog(playerid, d_reg, DIALOG_STYLE_PASSWORD, \"Regisztráció\", \"Üdvözöllek a DayRPG Szerveren!\\nKérlek válassz egy jelszót amely legalább 5, maximum 32 karakter hosszúságú!\\n\\n A kiválasztott jelszót írd be a mezőbe:\", \"Regisztrál\", \"Mégsem!\");
else ShowPlayerDialog(playerid, d_belep, DIALOG_STYLE_PASSWORD, \"Bejelentkezés\", \"Üdvözöllek a DayRPG Szerveren\\nA karaktered már regisztrálva van.\\n\\nA karakterhez kapcsolódó jelszót írd be a mezőbe:\", \"Belép\", \"Mégsem\");
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
GetPlayerPos(playerid, JatekosInfo[playerid][X], JatekosInfo[playerid][Y], JatekosInfo[playerid][Z]);
mysql_format(kapcs, query, 384, \"UPDATE jatekosok SET AdminSzint,Penz=\'%d\',X=\'%f\',Y=\'%f\',Z=\'%f\',SkinID=\'%f\' WHERE Nev=\'%s\'\",JatekosInfo[playerid][AdminSzint], JatekosInfo[playerid][Penz], JatekosInfo[playerid][X], JatekosInfo[playerid][Y], JatekosInfo[playerid][Z],JatekosInfo[playerid][skinID], JatekosInfo[playerid][Nev]);
SaveItems(playerid);
Belepve[playerid] = 0;
GetPlayerPos(playerid, JatekosInfo[playerid][X], JatekosInfo[playerid][Y], JatekosInfo[playerid][Z]);
mysql_format(kapcs, query, 384, \"UPDATE jatekosok SET AdminSzint=\'%d%\',Penz=\'%d\',X=\'%f\',Y=\'%f\',Z=\'%f\',SkinID=\'%f\' WHERE Nev=\'%s\'\", JatekosInfo[playerid][AdminSzint], JatekosInfo[playerid][Penz], JatekosInfo[playerid][X], JatekosInfo[playerid][Y], JatekosInfo[playerid][Z], JatekosInfo[playerid][Nev]);
mysql_tquery(kapcs, query);
return 1;
}
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
if(!success)
{
}
return 1;
}
public OnPlayerUseItem(playerid,item[])
{
if(CompareEx(item,\"Medikit\")) //Tehát ha eggyezik annak a tárgynak a neve, amire rákattintottam a \"Medikit\"-tel... (Az inc tartalmazza a CompareEx-et)
{
SetPlayerHealth(playerid,100); //Beállítjuk a játékos életét 100-ra
RemoveItem(playerid,\"Medikit\",1); //És elvesszük tole, mert ugye már használta.
SendClientMessage(playerid,-1,\"felhasználtad a medikited!\");
return 1;
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == d_reg)
{
if(!response)
{
Kick(playerid);
}
else if(strlen(inputtext) < 5 || strlen(inputtext) > 32)
{
return ShowPlayerDialog(playerid, d_reg, DIALOG_STYLE_PASSWORD, \"Regisztráció\", \"Üdvözöllek a DayRPG Szerveren!\\nKérlek válassz egy jelszót amely legalább 5, maximum 32 karakter hosszúságú!\\n\\n A kiválasztott jelszót írd be a mezőbe:\", \"Regisztrál\", \"Mégsem!\");
}
else
{
mysql_format(kapcs, query, 256, \"INSERT INTO jatekosok (Nev,Jelszo,AdminSzint,Penz,X,Y,Z,SkinID) VALUES (\'%e\',SHA1(\'%e\'),\'0\',\'0\',-1980.6168,141.2433,27.6875,26)\", JatekosInfo[playerid][Nev], inputtext);
mysql_tquery(kapcs, query, \"JatekosBeregelt\", \"d\", playerid);
}
return 1;
}
if(dialogid == d_belep)
{
if(!response)
{
Kick(playerid);
}
else if(strlen(inputtext) < 5 || strlen(inputtext) > 32)
{
return ShowPlayerDialog(playerid, d_belep, DIALOG_STYLE_PASSWORD, \"Bejelentkezés\", \"Üdvözöllek a DayRPG Szerveren\\nA karaktered már regisztrálva van.\\n\\nA karakterhez kapcsolódó jelszót írd be a mezőbe:\", \"Belép\", \"Mégsem\");
}
else
{
if(strlen(inputtext) < 5 || strlen(inputtext) > 32) mysql_format(kapcs, query, 256, \"SELECT * FROM jatekosok WHERE Nev=\'%e\' AND Jelszo=SHA1(\'%e\')\", JatekosInfo[playerid][Nev], inputtext);
mysql_tquery(kapcs, query, \"JatekosBelep\", \"d\", playerid);
}
return 1;
}
OnItemResponse(playerid,dialogid,response,listitem,inputtext);
return 0;
}
forward JatekosBeregelt(playerid);
public JatekosBeregelt(playerid) {
SendClientMessage(playerid, 0xFFFFFFFF, \"Sikeresen regisztráltál!\");
SetSpawnInfo(playerid, 0, 7, -1980.6168, 141.2433, 27.6875, 90.0, 0, 0, 0, 0, 0, 0); //Beállítjuk a spawn pozíciót, skint egyebeket.
TogglePlayerSpectating(playerid, false); //Elohozzuk a spawn gombot, hogy így le tudja spawnolni a szerver.
SpawnPlayer(playerid); //Lespawnoljuk.
JatekosInfo[playerid][Penz] = 185000;
JatekosInfo[playerid][AdminSzint] = 0;
SendClientMessage(playerid, 0xFFFFFFFF, \"Jó játékot kívánok!\");
return 1;
}
forward JatekosBelep(playerid);
public JatekosBelep(playerid)
{
new sorok_szama = cache_get_row_count(); //A sorok_szama változóba lekérjük, hány sort talált. Ha 0, nem jó a jelszó, ha 1 igen, mert van olyan (1) sor, amelynél ez a név és a jelszó is.
if(sorok_szama == 0) return ShowPlayerDialog(playerid, d_belep, DIALOG_STYLE_PASSWORD, \"Bejelentkezés\", \"Üdvözöllek a DayRPG Szerveren\\nA karaktered már regisztrálva van.\\n\\nA karakterhez kapcsolódó jelszót írd be a mezőbe:\", \"Belép\", \"Mégsem\");
//Az elobb, ha hibás volt a jelszó visszatértünk volna, szóval innenztol ami lefut kód, az már jó jelszóval fut le:
SendClientMessage(playerid, 0xFFFFFFFF, \"{7fb2ff}[sZERVER]: {ffffff}Sikeresen bejelentkeztél!\");
LoadItems(playerid); //betöltjük a táskája tartalmát
new Float:float_x = cache_get_field_content_float(0, \"X\");
new Float:float_y = cache_get_field_content_float(0, \"Y\");
new Float:float_z = cache_get_field_content_float(0, \"Z\");
SetSpawnInfo(playerid, 0, 3, float_x, float_y, float_z, 90.0, 0, 0, 0, 0, 0, 0);
TogglePlayerSpectating(playerid, false); //Elohozzuk a spawn gombot, hogy így le tudja spawnolni a szerver.
SpawnPlayer(playerid); //Lespawnoljuk.
JatekosInfo[playerid][Penz] = cache_get_field_content_int(0, \"Penz\"); //A 0. sorból (a legelso, mivel csak 1 találat van, a játékos, akit kerestünk) a pénz oszlop tartalmát integerként (egész számként) lekérjük, és beletesszük a JatekosInfo[playerid][Penz] változóba.
JatekosInfo[playerid][AdminSzint] = cache_get_field_content_int(0, \"AdminSzint\"); //A 0. sorból (a legelso, mivel csak 1 találat van, a játékos, akit kerestünk) a pénz oszlop tartalmát integerként (egész számként) lekérjük, és beletesszük a JatekosInfo[playerid][Penz] változóba.
new string[128]; format(string, sizeof(string), \"Pénzed: %dFt.\", JatekosInfo[playerid][Penz]);
return 1;
}
CMD:penztarca(playerid)
{
new S[128];
format(S, sizeof(S), \"[iNFO] A pénztárcádban jelenleg %dFt van.\", JatekosInfo[playerid][Penz]);
SendClientMessage(playerid, FEHER, S);
return 1;
}
CMD:nrg(playerid)
{
if (JatekosInfo[playerid][AdminSzint] >=1)
{
new Float:xkocsi, Float:ykocsi, Float:zkocsi;
GetPlayerPos(playerid, xkocsi, ykocsi, zkocsi);
SendClientMessage(playerid, -1, \"{8fd44e}[ADMIN]: {ffffff}Sikeresen lespawnoltad az NRG-500at!\");
CreateVehicle(522, xkocsi, ykocsi, zkocsi, 90, 0, 0, -1);
}
return 1;
}
CMD:aszolg(playerid)
{
if (Aszoli[playerid] == 1)
{
Aszoli[playerid] = 0;
SendClientMessage(playerid, -1, \"{8fd44e}[ADMIN]: {ffffff}Sikeresen kiléptél az adminszolgálatból!\");
}
else
{
Aszoli[playerid] = 1;
SendClientMessage(playerid, -1, \"{8fd44e}[ADMIN]: {ffffff}Sikeresen beléptél adminszolgálatba!\");
}
return 1;
}
CMD:hatizsak(playerid)
{
ShowItems(playerid);
return 1;
}
CMD:enter(playerid)
{
if (IsPlayerInRangeOfPoint(playerid, 2.0, -2032.9760,161.5101,29.0461))
{ // Benzinkút bolt be
SetPlayerPos(playerid, -25.9399,-187.5677,1003.5469);
SetPlayerInterior(playerid, 17);
}
return 1;
}
CMD:exit(playerid)
{
if (IsPlayerInRangeOfPoint(playerid, 2.0, -25.9399,-187.5677,1003.5469))
{ // Benzinkút bolt ki
SetPlayerPos(playerid, -2032.9760,161.5101,29.0461);
SetPlayerInterior(playerid, 0);
}
return 1;
}
CMD:medikit(playerid)
{
AddItem(playerid,\"Medikit\",1); //Megadom a \"Medikit\" nevu tárgyat a játékosnak
SendClientMessage(playerid,-1,\"kaptál egy medikitet!\");
return 1;
}
Dupla hozzászólás automatikusan összefûzve. ( 2016. január 20. - 22:51:05 )
http://data.hu/get/9432936/mysql_log.html