Jump to content

Nightkill

Membru
  • Posts

    23
  • Joined

  • Last visited

Everything posted by Nightkill

  1. E doar un exemplu dar ma refeream la ceva de genul asta. Repet e doar un exemplu ca sa intelegi despre ce vorbesc. Presupun eu ca ai tu deja in gamemode o comanda sa intri in GSLS si am facut si eu acum una, mai mult de test dar ideea e ca daca pui comanda asta inaintea comenzii /buygun ar trebui sa functioneze bine si sa arate meniul de cumparare daca esti inauntru sau sa zica ca nu esti in GSLS si sa nu poti cumpara dar eu doar ti-am oferit baza si tu trebuie sa continui. if (strcmp(cmd, "/intragsls", true) == 0) { if(!IsPlayerInRangeOfPoint(playerid, 7.0, x, y, z)) return SendClientMessage(playerid, COLOR_RED, "[Nume Server] Nu esti in fata GSLS."); SetPlayerPos(playerid, x, y, z); SendClientMessage(playerid, COLOR_WHITE, "[Nume Server] Ai intrat in GSLS."); PlayerInfo[playerid][pLocal] = 200; return 1; }
  2. Incearca asa ca sa nu te mai complici if(strcmp(cmd, "/shop", true) == 0) { new pString[ 2019 ]; pString[ 0 ] = EOS; strcat(pString, "Clear Warns - {FFFF00}10 premium pointsn"); strcat(pString, "Premium Account - {FFFF00}30 premium pointsn"); strcat(pString, "Clear Faction Punish - {FFFF00}15 premium pointsn"); strcat(pString, "Change Nickname - {FFFF00}10 premium pointsn"); strcat(pString, "Clear car 1 KM's - {FFFF00}25 premium pointsn"); strcat(pString, "Clear car 2 KM's - 25 premium pointsn"); strcat(pString, "Clear car 3 KM's - 10 premium pointsn"); strcat(pString, "Clear car 4 KM's - 10 premium pointsn"); strcat(pString, "Clan - 50 premium pointsn"): strcat(pString, "iPhone - 5 premium pointsn"); strcat(pString, "Hidden Color - 15 premium pointsn"); ShowPlayerDialog(playerid,2222,DIALOG_STYLE_LIST, "Premium Shop:", pString, "Buy", "Exit"); return 1; }
  3. Salut. Cand intra jucatorul in Ammunation sau GSLS ii setezi PlayerInfo[playerid][pLocal] sa fie 200 sau 203 ?
  4. Ok pai erorile alea. Arata liniile de cod de la 81 la 83. E un public sau ce e acolo? Arata-l pe tot pentru ca am impresia ca mai trebuie ceva definit si ai omis sa pui undeva punct si virgula.
  5. Ma refeream ca tu sus de tot in gamemode-ul tau, sub include trebuie sa ai undeva pusa acea chestie.
  6. Incearca sa adaugi asta(cu modificarile de rigoare normal). Ti-am explicat exact ce inseamna fiecare lucru. // Face jucatorul cu id 42 sa vada jucatorul cu id 1 pe radar, culoarea 0xFF0000FF SetPlayerMarkerForPlayer( 42, 1, 0xFF0000FF ); Ar trebui sa faci ceva de genul asta: for(new i; i < MAX_PLAYERS; i++) { if(playerid != i) { SetPlayerMarkerForPlayer(i, playerid, 0xFFB6C1FF); } } Sa arati la toti jucatorii pe radar unde e adminul, adminului nu ii va aparea pe radar locatia lui marcata ca ar fi chiar absurd, stie deja unde e . Nu e testat codul dar ar trebui sa mearga.
  7. Foloseste comanda asta si vezi daca-ti merge. dcmd_unban(playerid, params[]) { if(PlayerInfo[playerid][pAdmin] > 6) { new PlayerFile[50]; format(PlayerFile, sizeof(PlayerFile), "LARP/Users/%s.ini", params); if(!strlen(params)) return SendClientMessage(playerid, COLOR_WHITE, "Usage: /unban [playername]"); if(!dini_Exists(PlayerFile)) return SendClientMessage(playerid, COLOR_BRIGHTRED, "Nu exista nici un jucator cu numele specificat"); dini_IntSet(PlayerFile, "Banned", 0); SendClientMessage(playerid, COLOR_GREEN, "Jucatorul a fost debanat"); } return 1; }
  8. Iti scried e 2 ori loaded gang pentru ca ai 2 teritorii salvate. public OnTurfsLoads() { new file[64]; for(new idx; idx < sizeof(tInfo) ; idx++) { format(file, sizeof(file),"LARP/Ganguri/%d.ini", idx) if(dini_Exists(file)) { tInfo[idx][tfminx] = dini_Float(file,"Entrance_X"); tInfo[idx][tfminy] = dini_Float(file,"Entrance_Y"); tInfo[idx][tfmaxx] = dini_Float(file,"Exit_X"); tInfo[idx][tfmaxy] = dini_Float(file,"Exit_Y"); tInfo[idx][tfaction] = dini_Int(file,"Factiunea"); tInfo[idx][tid] = dini_Int(file,"Id"); tInfo[idx][tcolor] = dini_Int(file,"Color"); } } print("[SCRIPT]: Loaded Gang"); return 1; } Ai incercat in onplayerspawn sa printezi valorile sa vezi daca le citeste macar? In plus observ ca te-ai inspirat putin din sistemul meu pe baza de date dar la fel ca si in cazul meu e o problema undeva pe care nu o vedem cred si probabil e doar ceva minor. Am sa mai incerc in noaptea asta sa gasesc o rezolvare la mine si daca gasesc iti postez pentru ca e posibil sa te ajute si pe tine.
  9. Verifica daca ai pus sus inainte de main() new incercari[MAX_PLAYERS];
  10. Ba da am raspuns. Am incercat cum ai zis tu Ph0eniX dar tot nu imi apar teritoriile. Deci nu imi apare nici un teritoriu din baza de date.
  11. Am incercat cum ai zis tu Ph0eniX dar tot nu imi apar teritoriile. @Sonny: Daca erai putin mai atent la ce am postat eu ar fi trebuit sa observi ca turf-urile le salvez si le incarc dintr-o baza de date, nu e nici un fisier(e invechita rau metoda asta si nu e prea eficienta, recurg la ea doar in cazul extrem in care chiar nu reusesc sa le fac sa apara din baza de date)
  12. Ba da dar sunt doar 2 teritorii si am vrut sa fac de test momentan sa vad ca merge. for(new i; i<2; i++) { GangZoneShowForPlayer(playerid, zone, tInfo[tcolor]); } Scrie si sus de tot in primul post din topic
  13. Am asta new zone[MAX_TERITORIES]; for(new i; i<2; i++) { zone = GangZoneCreate(tInfo[tfminx], tInfo[tfminy], tInfo[tfmaxx], tInfo[tfmaxy]); } Query-ul e in main si merge foarte bine.
  14. Pai isi mai are rostul daca deja am pus cum zice pe wiki in onplayerspawn?
  15. Nu am pus si turf safe ca nu are rost. Se salveaza bine turf-ul, ia toate alea. Culoare, minx, miny, maxx, maxy. La onplayerconnect ce anume sa pun ca nu am vazut nimic pe wiki cum ca ar trebui pus acolo ceva.
  16. Problema intalnita (descriere): De cateva zile lucrez la un sistem dinamic de factiuni, sa poata jucatorii sa-si creeze propriile factiuni. Cand dau /createfaction totul merge ok si apare turf-ul dar daca opresc si repornesc serverul sau restart nu mai apar deloc gangzone-urile. Ero(area / rile) / warning-(ul / urile): Nu am erori Liniile de cod / sursa / script-ul: Sus de tot #define MAX_TERITORIES 500 forward OnTurfsLoad(playerid); enum TDATA { tid, tfaction, tcolor[16], Float:tfminx, Float:tfminy, Float:tfmaxx, Float:tfmaxy } new tInfo[MAX_TERITORIES][TDATA]; Ongamemodeinit new zone[MAX_TERITORIES]; for(new i; i<2; i++) { zone = GangZoneCreate(tInfo[tfminx], tInfo[tfminy], tInfo[tfmaxx], tInfo[tfmaxy]); } Onplayerspawn new zone[MAX_TERITORIES]; for(new i; i<2; i++) { GangZoneShowForPlayer(playerid, zone, tInfo[tcolor]); } Si in final public-ul public OnTurfsLoad(playerid) { new rows, fields; cache_get_data(rows, fields, mysql); if(rows) { for (new i; i<cache_get_row_count(); i++) { tInfo[tid] = cache_get_field_content_int(i, "id"); tInfo[tfaction] = cache_get_field_content_int(i, "faction"); cache_get_field_content(i, "color", tInfo[tcolor], mysql, 16); tInfo[tfminx] = cache_get_field_content_float(i, "tfminx"); tInfo[tfminy] = cache_get_field_content_float(i, "tfminy"); tInfo[tfmaxx] = cache_get_field_content_float(i, "tfmaxx"); tInfo[tfmaxy] = cache_get_field_content_float(i, "tfmaxy"); } } printf("Number of existing turfs: %d", cache_get_row_count()); return 1; } Imagini / Video (optional): Nu este cazul Ati incercat sa rezolvati singur?: Da, am incercat si inca mai incerc Care este faza care ma intriga foarte tare: Query-ul merge foarte bine, adica se face selectul si toate variabilele daca le dau cu printf mi le arata cum trebuie atata doar ca desi totul este la locul lui(dupa mintea mea) nu apar gangzone-urile. Poate voi baieti va dati seama unde gresesc eu sau ce fac aiurea. Poate nu pun ceva unde trebuie. Am incercat deja sa mut gangzonecreate si gangzoneshow prin diverse locuri gen onplayerconnect, ongamemodeinit si nici o schimbare. Daca pun dupa wiki cu new gangzone si ongamemodeinit create si niste coordonate si dupa onplayerspawn ii dau show merge fara probleme.
  17. Incearca asa... dini_Set(hFile, "Key", var);
  18. Ai incercat sa maresti valoarea variabilei var si na poti sa rescrii asa linia aia: format(var, sizeof(var), "%s", string); Eventual schimba-i numele in altceva inafara de var. Nu vad ce alte probleme ar putea fi pentru ca mie nu imi da eroare daca copiez doar acea linie la mine in gamemode.
  19. Ceva de genul, nu e testata, daca ai conturi de teste incearca pe ele...nu sunt sigur ca iti va merge din prima cum trebuie dar e un inceput dupa care te poti ghida. Ar fi fost mult mai usor daca era pe mysql if(strcmp(cmd, "/schimbaparola", true) == 0) { if (PlayerInfo[playerid][pAdmin] >= 1 || IsPlayerAdmin(playerid)) { new string[64], string3[64], tmpp[256], var[64]; tmpp = strtok(cmdtext, idx); if(!strlen(tmpp)) return SendClientMessage(playerid, COLOR_DBLUE, "USAGE: /schimbaparola [playername] [new password]"); giveplayerid = strval(tmpp); tmp = strtok(cmdtext, idx); format(string3, sizeof(string3),"LARP/Users/%s.ini", giveplayerid); new File: hFile = fopen(string3, io_write); if (hFile) { strmid(string, tmp, 0, strlen(cmdtext), 255); format(var, 64, "%s", string); dini_Set(hFile, Key, var); SendClientMessage(playerid, COLOR_GRAD2, "Parola a fost schimbata"); } else return SendClientMessage(playerid, COLOR_GRAD2, "Nu exista nici un jucator cu acel nume!"); } else return SendClientMessage(playerid, COLOR_GRAD2, "Nu poti folosi aceasta comanda"); return 1; }
  20. Comanda postata de tine schimba numele jucatorului. Sa presupun ca GM-ul tau e LARP sau o modificare de-a lui. Daca vrei sa schimbi parola pentru altcineva incearca ceva gen if(strcmp(cmd, "/schimbaparola", true) == 0) { new tmpp[256]; tmpp = strtok(cmdtext, idx); if(!strlen(tmpp)) return SendClientMessage(playerid, COLOR_DBLUE, "Correct SYNTAX: /schimbaparola [playerid] [new password]"); giveplayerid = strval(tmpp); tmp = strtok(cmdtext, idx); if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pAdmin] >= 1337) { if(IsPlayerConnected(giveplayerid)) { strmid(PlayerInfo[giveplayerid][pKey], tmp, 0, strlen(cmdtext), 255); OnPlayerUpdate(giveplayerid); SendClientMessage(giveplayerid, COLOR_YELLOW, "Un admin ti-a schimbat parola"); SendClientMessage(playerid, COLOR_YELLOW, "Ai schimbat parola jucatorului"); } else { format(string, sizeof(string), "%d nu e conectat.", giveplayerid); SendClientMessage(playerid, COLOR_RED, string); } } else return SendClientMessage(playerid, COLOR_RED, "Nu ai permisiunea de a folosi aceasta comanda!"); } else return SendClientMessage(playerid, COLOR_RED, "Trebuie sa fi logat sa folosesti comanda asta"); return 1; } Nu e testata comanda ca nu folosesc GM-ul LARP dar te poti folosi de ea ca si model. Trebuie sa fie si userul conectat ca sa mearga comanda, daca vrei sa faci chestia asta cu userul offline se cam schimba situatia.
  21. Pai eu iti sugerez sa iti faci o comanda pentru schimbarea parolei dar cum am mai zis, trebuie sa iti dai seama cum sunt criptate.
  22. Sa presupun ca folosesti pluginul mysql a lu' BlueG , asta http://forum.sa-mp.com/showthread.php?t=56564, acum intrebarea mea e ce versiune folosesti. Cand pornesti serverul ar trebui sa-ti scrie in log (exemplu: plugin.mysql: R39-2 successfully loaded.).
  23. Salut. Din ce imi dau eu seama parolele tale sunt criptate si cel mai bine ar fi sa iti faci o comanda decat sa umblii prin fisiere dar pentru asta trebuie sa aflii cum sunt criptate... sha1, hash, Whirlpool sau altele. Criptarea e ok sa o lasi mai mult pentru siguranta userilor, poate aceleasi parole care le au la conturile de pe server le au si in alte parti si na, informatiile lor devin vulnerabile. Sper ca ti-am dat un raspuns care sa te multumeasca.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.