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 - DrAkE
Oldalak: 1 ... 84 85 [86] 87 88 ... 135
1276
« Dátum: 2012. február 11. - 10:51:54 »
Deriva
1277
« Dátum: 2012. február 11. - 10:50:48 »
log 21,9156194260823610729479337839379e+53 :D:D:D:D:D
1278
« Dátum: 2012. február 11. - 10:48:38 »
7/10
1279
« Dátum: 2012. február 10. - 14:18:09 »
A Phoenix RolePlay (azaz mi), nem nagyon fogunk bezárni, mivel VPS-en futunk, sõt ezt kiterjesztjük egy egész játék közösségre is! Sajnos az a baj a mostani szerverekkel, hogy mind editelt, és kevés az olyan ami egyedi. Illetve kevés olyan dolgot létrehozni ami egyedivé teszi a szervert. Hisz ha már valami meg van csinálva a szerveren, akkor egybõl írják, hogy ez See edit, DT edit, GF edit és még sorolhatnám. Mi azért vettünk/bérlünk egy egész VPS-t mivel ezt mi komolyan gondoljuk, és fogjuk is. Remélem minél többen felmentek rá. Ugyanakkor a mi szerverünket fél évig \"írtuk\", és lassan másfél hónapja (azaz 1,5 hónapja) már nyitva áll a játékosok számára. Sajnos sokan nem szoktak felmenni rá, és az indokot nem tudni :\\
1280
« Dátum: 2012. február 09. - 22:24:55 »
Köszönöm mindenkinek a segítséget! Még 1 hiba történt a végén:
error 035: argument type mismatch (argument 1) Sor:
if(!strcmp(GetData(\"jatekosok\", \"s\", \"jelszo\", \"nev\", PlayerName(playerid)), MD5_Hash(inputtext))){
Csak ismételni tudom magam stock GetData(tabla[], tipus, mezo[], feltetelmezo[], ertek[]) { format(query, 256, \"SELECT %s FROM `%s` WHERE %s = \'%s\'\", mezo,tabla,feltetelmezo,ertek); mysql_query(query); mysql_store_result(); mysql_fetch_row(sor); mysql_free_result(); new tarolo[256]; sscanf(sor, \"s[256]\", tarolo); switch(tipus) { case 1: {return tarolo;} case 2: {return strval(tarolo);} case 3: {return floatstr(tarolo);} case 4: {return boolstr(tarolo);} } } case 1: {return tarolo;} // ez nem tartozik a hibásak közé, csak gondoltam a switch minden tagját bemásolom. 109 - case 2: {return strval(tarolo);} 110 - case 3: {return floatstr(tarolo);} 111 - case 4: {return boolstr(tarolo);} Ezek a sorok kapnak errort: 109 - error 079: inconsistent return types (array & non-array) 110 - error 079: inconsistent return types (array & non-array) 111 - error 079: inconsistent return types (array & non-array) Nem tudom mi lehet a gond, csak gondolom, hogy a visszatérések nem jók, de már nagyon sokféle képpen próbáltam. Ahol használom ott a tipus nem felel meg a vártnak. Ja és lenne még egy kérdésem. Mit lehet ellene tenni, ha a SpawnPlayer kickel? stock GetData(tabla[], tipus[], mezo[], feltetelmezo[], ertek[]) { format(query, 256, \"SELECT %s FROM `%s` WHERE %s = \'%s\'\", mezo,tabla,feltetelmezo,ertek); mysql_query(query); mysql_store_result(); mysql_fetch_row(sor); mysql_free_result(); new tarolo[256]; sscanf(sor, \"s[256]\", tarolo); switch(tipus[0]) { case \'s\': return format(tarolo, sizeof(tarolo), \"%s\", tarolo); case \'d\', \'i\': return format(tarolo, sizeof(tarolo), \"%d\", strval(tarolo)); case \'f\': return format(tarolo, sizeof(tarolo), \"%f\", floatstr(tarolo)); case \'b\': return format(tarolo, sizeof(tarolo), \"%b\", boolstr(tarolo)); } return 1; }
Gondolom a \"tipus\" változó miatt lesz.
1281
« Dátum: 2012. február 09. - 21:52:32 »
Sziasztok! 2-3 napja feltettem egy kérdést, kaptam is rá választ, azt hittem úgy menni fog, de végül nem sikerült. Már sok féle módon próbáltam megoldani, de nem sikerül. Ahelyett, hogy elmagyaráznám, milyen függvény, inkább bemásolom, így érthetõbb is lesz.
stock GetData(tabla[], tipus, mezo[], feltetelmezo[], ertek[]) { format(query, 256, \"SELECT %s FROM `%s` WHERE %s = \'%s\'\", mezo,tabla,feltetelmezo,ertek); mysql_query(query); mysql_store_result(); mysql_fetch_row(sor); mysql_free_result(); new tarolo[256]; sscanf(sor, \"s[256]\", tarolo); switch(tipus) { case 1: {return tarolo;} case 2: {return strval(tarolo);} case 3: {return floatstr(tarolo);} case 4: {return boolstr(tarolo);} } }
case 1: {return tarolo;} // ez nem tartozik a hibásak közé, csak gondoltam a switch minden tagját bemásolom. 109 - case 2: {return strval(tarolo);} 110 - case 3: {return floatstr(tarolo);} 111 - case 4: {return boolstr(tarolo);} Ezek a sorok kapnak errort:
109 - error 079: inconsistent return types (array & non-array) 110 - error 079: inconsistent return types (array & non-array) 111 - error 079: inconsistent return types (array & non-array) Nem tudom mi lehet a gond, csak gondolom, hogy a visszatérések nem jók, de már nagyon sokféle képpen próbáltam. Ahol használom ott a tipus nem felel meg a vártnak. Ja és lenne még egy kérdésem. Mit lehet ellene tenni, ha a SpawnPlayer kickel?
stock GetData(tabla[], tipus[], mezo[], feltetelmezo[], ertek[]) { format(query, 256, \"SELECT %s FROM `%s` WHERE %s = \'%s\'\", mezo,tabla,feltetelmezo,ertek); mysql_query(query); mysql_store_result(); mysql_fetch_row(sor); mysql_free_result(); new tarolo[256]; sscanf(sor, \"s[256]\", tarolo); switch(tipus[0]) { case \'s\': return format(tarolo, sizeof(tarolo), \"%s\", tarolo); case \'d\', \'i\': return format(tarolo, sizeof(tarolo), \"%d\", strval(tarolo)); case \'f\': return format(tarolo, sizeof(tarolo), \"%f\", floatstr(tarolo)); case \'b\': return format(tarolo, sizeof(tarolo), \"%b\", boolstr(tarolo)); } return 1; }
1282
« Dátum: 2012. február 09. - 17:35:22 »
Az is lehet hogy Deriva = P3ng3.
1283
« Dátum: 2012. február 09. - 17:32:47 »
Ez egy olyan funkció, amivel gyorsabban fellehet dolgozni a parancsokat, illetve a \"paramétereket\" is egyszerûen lehet kezelni.
1284
« Dátum: 2012. február 09. - 17:08:21 »
if(strcmp(cmdtext, \"/goto\", true) == 0) { new celid, string[128], Float:hely[3], nev[MAX_PLAYER_NAME][2]; if(!strlen(params)) return SendClientMessage(playerid, COLOR_LIGHTBLUE, \"HASZNÁLAT: /goto (játékosid/név)\"); else if(!IsPlayerConnected(celid) && celid == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED, \"HIBA: Nincs ilyen játékos a szerveren, vagy az adott játékos te vagy!\"); GetPlayerPos(celid, hely[0], hely[1], hely[2]); SetPlayerInterior(playerid, GetPlayerInterior(celid)); SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(celid)); if(GetPVarInt(celid, \"goto\") == 1) { if(GetPlayerState(playerid) == 2) { SetVehiclePos(GetPlayerVehicleID(playerid),hely[0]+2, hely[1], hely[2]); LinkVehicleToInterior(GetPlayerVehicleID(playerid), GetPlayerInterior(celid)); SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), GetPlayerVirtualWorld(celid)); GetPlayerName(playerid, nev[0], sizeof(nev)); GetPlayerName(celid, nev[1], sizeof(nev)); format(string,sizeof(string),\"%s elteleportált hozzád!\", nev[0]); SendClientMessage(celid, COLOR_LIGHTBLUE, string); format(string,sizeof(string),\"Elteleportáltál %s-hez(hoz)!\", nev[1]); SendClientMessage(playerid, COLOR_LIGHTBLUE, string); return 1; }else{ SetPlayerPos(playerid, hely[0], hely[1], hely[2]); SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(celid)); SetPlayerInterior(playerid, GetPlayerInterior(celid)); } }else{ format(string,sizeof(string),\"%s letiltotta a gotozást!\", nev[1]); SendClientMessage(playerid, COLOR_RED, string); } return 1; } if(strcmp(cmdtext, \"/setgoto\", true) == 0) { if(GetPVarInt(playerid, \"goto\") == 0) { SetPVarInt(playerid, \"goto\", 1); SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Engedélyezted a gotozást magadhoz!\"); }else{ SetPVarInt(playerid, \"goto\", 0); SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Letiltottad a gotozást magadhoz!\"); } return 1; }
Csak annyi lett volna a dolgot, hogy átírod a CMD:goto(playerid, params[]) -t if(strcmp(cmdtext, \"/goto\", true) == 0) -ra [/quote] Ha nem értettek hozzá, akkor minek írtok hülyeséget? U.I.: Mindjárt leírom!
GetCommandParams(cmdtext); if(!strcmp(cmdtext, \"/goto\", true)) { new celid, string[128], Float:hely[3], nev[MAX_PLAYER_NAME][2]; if(isnull(par)) return SendClientMessage(playerid, COLOR_LIGHTBLUE, \"HASZNÁLAT: /goto (játékosid/név)\"); else if(!IsPlayerConnected(celid) && celid == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED, \"HIBA: Nincs ilyen játékos a szerveren, vagy az adott játékos te vagy!\"); GetPlayerPos(celid, hely[0], hely[1], hely[2]); SetPlayerInterior(playerid, GetPlayerInterior(celid)); SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(celid)); if(GetPVarInt(celid, \"goto\") == 1) { if(GetPlayerState(playerid) == 2) { SetVehiclePos(GetPlayerVehicleID(playerid),hely[0]+2, hely[1], hely[2]); LinkVehicleToInterior(GetPlayerVehicleID(playerid), GetPlayerInterior(celid)); SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), GetPlayerVirtualWorld(celid)); GetPlayerName(playerid, nev[0], sizeof(nev)); GetPlayerName(celid, nev[1], sizeof(nev)); format(string,sizeof(string),\"%s elteleportált hozzád!\", nev[0]); SendClientMessage(celid, COLOR_LIGHTBLUE, string); format(string,sizeof(string),\"Elteleportáltál %s-hez(hoz)!\", nev[1]); SendClientMessage(playerid, COLOR_LIGHTBLUE, string); return 1; }else{ SetPlayerPos(playerid, hely[0], hely[1], hely[2]); SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(celid)); SetPlayerInterior(playerid, GetPlayerInterior(celid)); } }else{ format(string,sizeof(string),\"%s letiltotta a gotozást!\", nev[1]); SendClientMessage(playerid, COLOR_RED, string); } return 1; } if(!strcmp(cmdtext, \"/setgoto\", true)) { if(GetPVarInt(playerid, \"goto\") == 0) { SetPVarInt(playerid, \"goto\", 1); SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Engedélyezted a gotozást magadhoz!\"); }else{ SetPVarInt(playerid, \"goto\", 0); SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Letiltottad a gotozást magadhoz!\"); } return 1; }
A parancs mûködéséhez az alábbi include is szükséges! http://sampforum.hu/index.php?topic=20289.msg217336;topicseen#msg217336
1285
« Dátum: 2012. február 08. - 16:35:43 »
1286
« Dátum: 2012. február 08. - 16:06:14 »
Szerintem nyertem:
1287
« Dátum: 2012. február 07. - 20:15:36 »
format(PlayerInfo[playerid][Nev1], sizeof(PlayerInfo[playerid][Nev1]), \"%s\", inputtext); >
error 001: expected token: \"]\", but found \"-identifier-\" warning 215: expression has no effect error 001: expected token: \";\", but found \"]\" error 029: invalid expression, assumed zero fatal error 107: too many error messages on one line :question:
format(PlayerInfo[playerid][Nev1], MAX_PLAYER_NAME, \"%s\", inputtext); U.I.: Rosszat írtam :S
1288
« Dátum: 2012. február 07. - 19:46:20 »
Sziasztok! Van egy mysql függvényem GetData(playerid, tabla[], mezo[]):
stock GetData(playerid, tabla[], mezo[]) { new fformat[256]; format(query, 500, \"SELECT %s FROM `%s` WHERE nev = \'%s\'\", mezo, tabla, PlayerName(playerid)); mysql_query(query); mysql_store_result(); mysql_fetch_row(sor); if(mysql_num_rows() == 1){ mysql_free_result(); if(!sscanf(sor, \"s[256]\", sztring)) return sztring; if(!sscanf(sor, \"d\", integer)) { format(fformat, 256, \"%d\", integer); } if(!sscanf(sor, \"f\", ffloat)) { format(fformat, 256, \"%f\", ffloat); } if(!sscanf(sor, \"l\", boolean)) { format(fformat, 256, \"%s\", boolean); } return fformat; } return fformat; } Ezt csak így tudtam megoldani... Az a gond vele, hogy így mindenképpen sztringet kapok vissza, ami nem túl elõnyös, ha mondjuk SetPlayerPos függvényt szeretnék használni, mivel annak a paraméterei, a playerid, és a koordináták. Az a kérdésem, hogy tudnám megoldani, hogy mindíg adattipusnak megfelelõ értékeket kapjak?
Új argumentum: tipus Aztán: switch(tipus) { case \'f\': //asdasdasd case \'s\': //asdasdasd case \'b\': //asdasdasd case \'d\': //asdasdasd }
1289
« Dátum: 2012. február 06. - 22:40:07 »
new nev[16] = \"Teszt_Nev\"; print(nev); //kiírja az alábbit: Teszt_Nev new i = -1; while((++i < strlen(nev))) if(nev == \'_\') nev = \' \'; print(nev); //kiírja az alábbit: Teszt Nev
Illetve az sscanfos kód nem valami jó, mivel tegyük fel akinek három tagos neve van (pl: John_W_Smith) akkor az alábbit fogja kiírni: John W_Smith. Így ezzel a kóddal átfutunk a nevén egy ciklussal és ha az \"i\" tag egyenlõ \"_\"-vel akkor kicseréljük \" \"-re (azaz szóközre).
Minek túl bonyolítani? [/quote] [/quote] @1ST_Chr Nem tudom számodra ezen mi a bonyolult, de sscanf már bonyolult, a first verzió ebben a témában meg túl sok native funkciót használ (amiben szintén belsõ ciklusok vannak), emiatt már bonyolultabb. DrAke megoldása meg egyetlen for ciklussal végzi a dolgát. (lehet rajt egyszerûsíteni még. (tipp: strlen nélkül)) (persze ez nem tér vissza a lehetséges vezetéknév tartalmával csak kicseréli az _(alsóvonal)-kat, szóközre) Bármelyik szöveg részt vissza lehet kapni, függetlenül attól, mennyi _ (alsóvonal) szerepel a karakterláncban. Még az strtok függvényt is fel lehet használni egy kis módosítással. (delimiter paraméter kibõvítéssel). [/quote] Még egyszerûbb:
print(\"Betöltve!\"); new nev[16] = \"Teszt_Nev\"; print(nev); new i = 0; while(((nev == \'_\') ? (nev = \' \') : (nev = nev))) i++; print(nev);
1290
« Dátum: 2012. február 06. - 19:55:37 »
ÜDv.
format(Query,100,\"SELECT * FROM felh WHERE nev=\'%s\'\",JatekosNeve(playerid)); mysql_query(Query); mysql_store_result(); new Float:log[3]; if(mysql_retrieve_row()) { mysql_get_field(\"lx\", log[0]); PlayerInfo[playerid][lx] = float(log[0]); } mysql_free_result(); Erre a két sorra:
mysql_get_field(\"lx\", log[0]); PlayerInfo[playerid][lx] = float(log[0]); Tag micmach warningot ír. Mi a baja?
Nem kell a float() függvény, anélkül is jó!
Oldalak: 1 ... 84 85 [86] 87 88 ... 135
|