Jump to content

Banditul

Moderator
  • Posts

    1,134
  • Joined

  • Last visited

  • Days Won

    96

Everything posted by Banditul

  1. CreateDynamicMapIcon(x, y, z, 10, 0); Asta va crea un map icon la coordonatele respective(nu cunosc locatia burger shot deci nu iti pot oferi si coordonatele) cu icon pentru burger shot disponibil pentru toti jucatorii toate interioarele si toate lumile(worlds) CreateDynamicMapIcon(x, y, z, 10, 0, .interiorid = 0); Si daca vrei sa fie vazut numa in interior 0 pui cum am pus mai sus (e valabil si pentru ceilalti paramerii) , de ce am pus punct? Ca sa accesez explicit acel parametru si sa nu dau valori pentru toti Si daca vrei sa zicem ca vrei sa o stergi new burgerShotIcon; burgerShotIcon = CreateDynamicMapIcon(x, y, z, 10, 0); DestroyDynamicMapIcon(burgerShotIcon):
  2. Edit: Dublu post din greseala( imi merge putin greu netu)
  3. Nu. Este id-ul mapiconului. Poti avea de la 0-99 de map icons. Deci practic e ca si cum ai face asta: new timer; timer = SetTimer(...); Acea variabila timer este id-ul timerului , asemanator acel 1 este id-ul map icon. (Atentie daca nu ai grija si pui acelasi id dar icon diferit se va suprascrie) https://github.com/samp-incognito/samp-streamer-plugin/wiki/Natives-(Map-Icons) Eu as folosi CreateDynamicMapIcon si sa stochez intr-o variabila (se poate folosi si per player) si in cazul in care este un icon pe care vrei sa il aibe toata lumea, metoda de mai sus este inutila
  4. Cauti la OnPlayerLogin sau ce ai o verificare daca ai sau nu admin si daca e adevarata da kick. Imposibil sa nu ai acolo daca nu e acolo e la OnPlayerSpawn care e chemat imediat dupa
  5. Hmmm. Stiam ca a fost dezactivata, nu stiam ca a revenit la viata. In fine, fi sigur ca ai announce pe 1 , in rest altceva nu cred ca influenteaza
  6. Din pacate in versiunea 0.3.7 a fost scoasa listarea tuturor serverelor pe internet tab cauza unor destepti care atacau prin diverse metode persoanele care se uitau pe internet tab si ina alte cateva motive Ca sa apari pe internet tab trebuie sa iti cumperi hosted tab. Dar din cate am auzit in 0.3.8 va fi dinou valabila internet tab pentru toti in limita bunului simt. http://forum.sa-mp.com/showthread.php?t=644495
  7. Desigur new h,m,s; gettime(h, m, s); format(string,sizeof(string), "%.2d:%.2d%.2d",h+5,m,s); Si asta va afisa ora actuala a serverului + 5 ore (desigur nu este sigura aceasta metoda pentru ca nu stiu 100% daca nu va face overflow (va trece sub 0 sau va trece peste 24))
  8. http://forum.sa-mp.com/showthread.php?t=537468 Te folosesti de acest include. Cordonatele sunt ca cele de la textdraw(pt ecran)
  9. Daca e pe acelasi vps trebuie sa te conectezi cu localhost nu cu ip, la mysql_connect(pentru ca nu ai portforward facut)
  10. Problema este ca hostul nu este din Romania iar ora serverului este cu cateva ore in urma fata de Romania Poti sa faci o smecherie si sa aduni orele lipsa. In format unde e variabila de ora ii aduni spre exemplu 5(daca sunt 5 ore diferenta intre server si Romania) si va afisa corect
  11. Banditul

    Problema Clan

    Daca logul este plin atunci ai mai mari probleme decat clanul. Daca vrei copiaza tot (absolut tot ) din mysql log pune pe pastebin si posteaza aici sau trimite pm si iti voi explica o solutie pentru fiecare eroare in parte Daca ai mai multe query care se refera la clans atunci pe toate , pentru fiecare in parte poate avea o problema , habar nu am , presupun.
  12. Banditul

    Problema Clan

    Eu stiu cum ai gm-ul? De preferabil la toate dialogurile care compun crearea clanului. Nu stiu cum sa-ti explic, ai zis ca ai modificat mysql asa inseamna ca stii ce e acela un query si unde ar trebui sa te uiti si anume la un query care face insert in tabela clans Si mysql_log, e imposibil sa nu ai mysql_log in folderu cu serveru
  13. if(strcmp(list,"punish",true) == 0) { new iddd; if(id != -1) { string[0] = EOS; format(query, sizeof(query), "SELECT * FROM `punishlogs` WHERE `playerid`= %d ORDER BY `ID` DESC LIMIT %d", PlayerInfo[id][pSQLID], lines); new Cache: resultt = mysql_query(SQL, query); for(new i, j = cache_get_row_count (); i != j; ++i) { iddd = cache_get_field_content_int(i, "id"); cache_get_field_content(i, "time", test); cache_get_field_content(i, "reason", reason); actionid = cache_get_field_content_int(i, "actionid"); actiontime = cache_get_field_content_int(i, "actiontime"); cache_get_field_content(i, "playername", name); cache_get_field_content(i, "givername", name2); if(actionid == 1) { format(string,sizeof(string),"%s(#%d) %s[%s] Ban: %s has been permanent banned by %s, reason: %s.\n",string,iddd,string,test,name,name2,reason); } else if(actionid == 2) { format(string,sizeof(string),"%s(#%d) %s[%s] Ban: %s has been banned by %s for %d days, reason: %s.\n",string,iddd,string,test,name,name2,actiontime,reason); } else if(actionid == 3) { format(string,sizeof(string),"%s(#%d) %s[%s] IP Ban: %s has been permanent banned by %s, reason: %s.\n",string,iddd,string,test,name,name2,reason); } else if(actionid == 4) { format(string,sizeof(string),"%s(#%d) %s[%s] IP Ban: %s has been banned by %s for %d days, reason: %s.\n",string,iddd,string,test,name,name2,actiontime,reason); } else if(actionid == 5) { format(string,sizeof(string),"%s(#%d) %s[%s] Warn: %s received a warn from admin %s, reason: %s.\n",string,iddd,string,test,name,name2,reason); } else if(actionid == 6) { format(string,sizeof(string),"%s(#%d) %s[%s] Jail: %s was jailed by %s for %d minutes, reason: %s.\n",stringiddd,string,test,name,name2,actiontime,reason); } else if(actionid == 7) { format(string,sizeof(string),"%s(#%d) %s[%s] Mute: %s has been muted by %s for %d minutes, reason: %s.\n",string,iddd,string,test,name,name2,actiontime,reason); } else if(actionid == 8) { format(string,sizeof(string),"%s(#%d) %s[%s] %s was released from jail by admin %s, reason: %s.\n",string,iddd,string,test,name,name2,reason); } } cache_delete(resultt); ShowPlayerDialog(playerid,DIALOG_LASTS,DIALOG_STYLE_MSGBOX,"punish for player",string,"Close",""); } else { string[0] = EOS; format(query, sizeof(query), "SELECT * FROM `punishlogs` ORDER BY `ID` DESC LIMIT %d", lines); new Cache: resultt = mysql_query(SQL, query); for(new i, j = cache_get_row_count (); i != j; ++i) { iddd = cache_get_field_content_int(i, "id"); cache_get_field_content(i, "time", test); cache_get_field_content(i, "reason", reason); actionid = cache_get_field_content_int(i, "actionid"); actiontime = cache_get_field_content_int(i, "actiontime"); cache_get_field_content(i, "playername", name); cache_get_field_content(i, "givername", name2); if(actionid == 1) { format(string,sizeof(string),"%s(#%d) %s[%s] Ban: %s has been permanent banned by %s, reason: %s.\n",string,iddd,string,test,name,name2,reason); } else if(actionid == 2) { format(string,sizeof(string),"%s(#%d) %s[%s] Ban: %s has been banned by %s for %d days, reason: %s.\n",string,iddd,string,test,name,name2,actiontime,reason); } else if(actionid == 3) { format(string,sizeof(string),"%s(#%d) %s[%s] IP Ban: %s has been permanent banned by %s, reason: %s.\n",string,iddd,string,test,name,name2,reason); } else if(actionid == 4) { format(string,sizeof(string),"%s(#%d) %s[%s] IP Ban: %s has been banned by %s for %d days, reason: %s.\n",string,iddd,string,test,name,name2,actiontime,reason); } else if(actionid == 5) { format(string,sizeof(string),"%s(#%d) %s[%s] Warn: %s received a warn from admin %s, reason: %s.\n",string,iddd,string,test,name,name2,reason); } else if(actionid == 6) { format(string,sizeof(string),"%s(#%d) %s[%s] Jail: %s was jailed by %s for %d minutes, reason: %s.\n",string,iddd,string,test,name,name2,actiontime,reason); } else if(actionid == 7) { format(string,sizeof(string),"%s(#%d) %s[%s] Mute: %s has been muted by %s for %d minutes, reason: %s.\n",string,iddd,string,test,name,name2,actiontime,reason); } else if(actionid == 8) { format(string,sizeof(string),"%s(#%d) %s[%s] %s was released from jail by admin %s, reason: %s.\n",string,iddd,string,test,name,name2,reason); } } cache_delete(resultt); ShowPlayerDialog(playerid,DIALOG_LASTS,DIALOG_STYLE_MSGBOX,"punish",string,"Close",""); } } Ce ai uitat tu sa faci este sa oferi la stringuri o continuitate , fiind intr-o bucla care e de n ori formatezi acelasi string de n ori si nu il copiezi pe cel precedent la cel actual. Sunt 2 variainte, cum a facut eu sau folosind strcat(putin mai optim). Practic copiai o informatie de n ori fara sa salvezi ce era inaintea ei si ramanea ultima(sper sa fie de la asta , altceva nu vad)
  14. Banditul

    Problema Clan

    INSERT INTO `clans` etc etc.... Query = ce trimiti tu la baza de date, gen sa iti introduca sau sa iti actualizeze Daca alea nu sunt corecte, degeaba cauti altceva
  15. Banditul

    Problema Clan

    Pai o problema ori la query de insert ori la un query de update(in cazul in care updatezi clanul pe parcursul procesului si nu il inserezi pe tot odata) Eventual o bucata de cod care sa faca referire la ce am spus mai sus si eventual mysql_log
  16. Banditul

    Nu Porneste

    Cand il rulezi pe pc nu trebuie sa pui .so la finalul plugins, sterge .so si sterge si acel bind pentru ca nu ai nevoie nici de el
  17. Nu da nici o eroare gamemodul doar daca incerci sa compilezi cu alta versiune de mysql(mai noua) si eventual cu YSI Iterate e posibil sa-ti dea acele warnings cu syntaxa foreach veche
  18. Banditul

    help

    Ca si idee generala(nu prea stiu php) va trebui sa obtii si valoarea BankLY din baza de date apoi sa faci o verificare (if else banal) dupa sa faci un string si sa aduni cele doua valori (ca string) dupa sa transformi acel string in float si sa-l folosesti in format_number. Dar nu sunt sigur daca merge in sensul de overflow a numarului. Asta ar fi la ce m-am gandit ca si idee
  19. Este foarte ciudat. Ar fi trebuit sa sorteze descrescator id-ul si crescator emailRead ( https://www.w3schools.com/sql/sql_orderby.asp , ultima chestie) format(query, sizeof(query), "SELECT * FROM `emails` WHERE `playerid` = %d ORDER BY `EmailRead` ASC ,`ID` DESC, LIMIT 20 Ultima chestie, altcumva chiar nu mai stiu cum sa le asez
  20. EmailId[playerid][idd] Asta cel mai probabil este pagubasu. Ori maresti array-ul EmailID (EmailID[MAX_PLAYERS][10] ma gandesc) ori scazi acel LIMIT
  21. Hmmm atunci: format(query, sizeof(query), "SELECT * FROM `emails` WHERE `playerid` = %d ORDER BY `ID` DESC, EmailRead ASC LIMIT 20 Si iti va grupa emailurile de la ultimu la primu, si de la necitit la citit
  22. A stai asa atunci , trebuia sa ma gandesc mai devreme format(query, sizeof(query), "SELECT * FROM `emails` WHERE `playerid` = %d AND `EmailRead` = 0 ORDER BY `ID` DESC LIMIT 20 Si asa selecteaza doar emailurile necitite
  23. format(query, sizeof(query), "SELECT * FROM `emails` WHERE `playerid` = '%d' ORDER BY `ID` DESC LIMIT 10 In: format(query, sizeof(query), "SELECT * FROM `emails` WHERE `playerid` = %d ORDER BY `ID` DESC LIMIT 20 // primele 20 Si ca sa afiseze mai multe modifici doar acel limit
  24. Poti folosi Streamer_SetVisibleItems(STREAMER_TYPE_OBJECT, 999); La OnFilterScriptInit/OnGameModeInit desi o sa taie putin din performanta jucatorului (fps scazut probabil)
  25. Functiile oferite de sa-mp. Doar in 3 cazuri ar trebui sa definesti o functie pe care o faci ,public. In cazul in care folosesti un timer, folosesti mysql_t/pquery sau vrei sa chemi functia prin CallRemoteFunction/CallLocalFunction. Astea sunt singurele cazuri. Si din cate am vazut function din gm-uri este exact un public dar nu trebuie sa te mai complici sa scrii o linie in plus. Dar nu, functiile declarate public nu au efect asupra vitezei(sau e inisemnificativ). Ele sunt salvate in memoria amx pentru a putea fi folosite de metodele zise mai sus. Sfatul meu este daca nu folosesti functia pentru unul din cazurile de mai sus, mai bine las-o fara public/function(ambele sunt la fel din cate am vazut la definirea function)
×
×
  • 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.