Jump to content

Banditul

Moderator
  • Posts

    1,134
  • Joined

  • Last visited

  • Days Won

    96

Everything posted by Banditul

  1. Se scot fisierele .exe din arhive date spre download cu motive evidente. http://files.sa-mp.com/samp037_svr_R2-1-1_win32.zip Poti lua de aici samp server.exe
  2. Asa cum a spus si SkyHD nu poti trece de acea limita. Dar o poti incerca sa o iei putin pe ocolite. Sa faci un textdraw care sa afiseze variabila de bani , si sa-l pui peste bara originala. Doar ca si aici ai o limita , pentru ca integer 32bit care e 2,147,483,647 din pacate. Dar poti sparge variabila de bani in mai multe variabila cand limita este atinsa si sa continui tot asa. Si deasemena poti face cu textdraw si sa faci mai multe care sa se continue si sa afiseze toti bani la un loc(desigur doar pe ecran, pentru ca in script vor fi separati) E singura optiune pe care o vad sa poti trece peste limita asta a jocului. E doar o idee , inca nu am incercat-o dar amu ca o scriu cred ca o sa o aplic candva.
  3. Da, sa faci mai multe tabele pentru a salva astfel de date. Si sa faci relatii intre ele printr-un forgein key. Va trebui sa te uiti peste niste tutoriale MySQL pentru a invata aceste relatii, eu inca le invat, mai ales ca de multe ori sunt mult mai eficiente decat sa ai un tabel urias. Mai ales daca ai ajuns la 1000 fields intr-un tabel de destul de grav sincer, pentru ca e urias. Singura solutie e sa spargi acel tabel "users" in mai multe(ma refer sa muti de exemplu cele cu crime intr-un alt tabel , sau mai stiu eu ce astfel de date mai ai care pot fi separate de tabelul users) Si ca si sfat , sa folosesti mysql_pquery cand vei face aceste query de a incarca din diverse tabele pentru a putea incarca mai rapid si eficient datele. Pentru ca daca vei folosi mysq_tquery va dura oa vreme ca fiecare sa se execute in ordine, iar daca vei folosi mysql_query , ei bine , vei cam ingheta putin scriptul. Si daca vei avea mai multi playeri care se conecteaza i nacelasi timp, nu vreau sa ma gandesc. Deci sfatul meu, separa cateva lucuri de users in alte tabele si fa relatii de forgein key intre ele (adica intre tabele alea si tabelul users care va contine referinta la playeri) si foloseste mysql_pquery pentru a fae query-urile de SELECT pentru a putea incarca datele in paralel si sa fie putin mai eficient. Dar nu folosi mysql_pquery pentru restu, foloseste mysql_tquery. Edit: Sper ca ai inteles ceva , pentru ca nu sunt chiar atat de bun la scris explciatii.
  4. CMD:setkills(playerid, params[]){ if(PlayerInfo[playerid][pLogged] == true) return 0; // Schimbi cu ce variabila ai tu sa verifici daca playerul este logat //VErificam daca playerul este admin: if(PlayerInfo[playerid][Level] >= 4){ // schimbi tu cu ce lvl vrei la admin new id, kills; if(sscanf(params, "ui", id, kills)) return SendClientMessage(playerid, -1, "Use: /setkills"); if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, "Jucatorul nu este online"); PlayerInfo[playerid][pKills] = kills; // Inlocuiesti cu variabila ta in care stochezi kills } else return 0; return 1; } Asta ar fi idea de baza , merge la fel si pentru setrespect si setdeaths doar ca inlouiesti acel PlayerInfo[playerid][pKills] cu ce variabila ai tu pentru respect si deaths. Din pacate nu pot descarca lux admin , iar topicul este foarte neclar (apar prea multe lucruri contradictori) Sper sa te ajute
  5. Arata cum ai structura la acel Object37 , cum e definit etc in baza dedate.Ca la el pare sa fie problema. Edit1: Nvm , amu am vazut poza a doua....Hmm Edit2: E o posibiliate sa aibe legatura cu Object37
  6. La integer nu trebuie apostrof , apostroful se foloseste pentru stringuri. Faptul ca nu-ti merge fara apostrof e destul de nasol, pentru ca query-urile cu toate ca nu ar trebui accepta apostrof la integer din nu stiuce motiv. Mie imi merge foarte bine fara apostrof: mysql_format(g_SQL, query, sizeof(query), "UPDATE `banks` SET `BankMoney` = %i WHERE `pid` = %i", APlayerData[playerid][BankMoney], APlayerData[playerid][SQLID]); Dar in fine, ma bucur ca l-ai rezolvat
  7. Pentru ca acest query e gresit: mysql_format(SQL, query, sizeof(query), "UPDATE `emails` SET `EmailRead`='0'"); Updatezi tot din simplu fapt ca iti lipseste where clause mysql_format(SQL, query, sizeof(query), "UPDATE `emails` SET `EmailRead`='0' WHERE `ID` = %i", EmailId[playerid][listitem]);
  8. Se pierde conexiunea cu serverul de mySQL , si eu am avut o problema asemanatoare. http://forum.sa-mp.com/showthread.php?t=629496 Incearca sa faci ce mi s-a spus si mie sa fac.
  9. Pai daca vrei sa fie mereu acolo il afisezi la OnPlayerConnect/OnPlayerSpawn iar in pDayTimerDecrease foloseste format(pInfo[playerid][pGText], 31, "payday in: [%02i]", (pInfo[playerid][pPay]-gtm)/60); TextDrawSetString(textdrawid , pInfo[playerid][pGText]); Si astfel se actualizeaza in fiecre minut. Daca ai stii putina matematica , ai stii ca aia inseamna 1min. Si citeste pe dracu 1 secunda. Macar ai testat? Sau zici asa din vasta ta experienta? PS: Data viitoare daca cineva vrea ajutorul tau si nu vrea panel la server , spune-i in fata ca nu vrei sa-l ajuti nu ii da block . Ok copilu?
  10. Undeva sub includes: new pDayTimer[MAX_PLAYERS]; La OnPlayerConnect: pDayTimer[playerid] = SetTimerEx("pDayTimeDecrese", 1000 * 60, true, "i", playerid); Undeva in gm , inafara oricarei acolade: forward pDayTimerDecrese(playerid); public pDayTimeDecrese(playerid) { PlayerData[playerid][pDayTime]--; return 1; } La OnPlayerDisconnect: KillTimer(pDayTimer[playerid]); Asta e idea generala. Str tu vezi-ti de problemele tale daca nu stii sa ajuti si n-ai nici aceasta intentie ( http://forum.sa-mp.com/showthread.php?t=636303 )
  11. Te duci in server.cfg si ai acolo rcon password o schimbi
  12. Pai , poti folosi crashdetect https://github.com/Zeex/samp-plugin-crashdetect/releases Si sa vezi unde si de la ce pica.
  13. Pai nu ti se incarca plugin-ul streamer, cel mai probabil iti lipseste unu din visual c++ . Probabil 2015, 2013 sau 2010 . http://www.standaloneofflineinstallers.com/2015/12/Microsoft-Visual-C-Redistributable-2015-2013-2012-2010-2008-2005-32-bit-x86-64-bit-x64-Standalone-Offline-Installer-for-Windows.html?m=1 Le ai pe toate aici . De preferabil sa instalezi si versiunea x86(x32) chiar daca tu ai sistemu pe x64. Pentru ca sa-mp ruleaza numa pe x32
  14. Poate asta? FIN_Cop1_Fall http://wiki.sa-mp.com/wiki/Animations Pare singura relevanta.Sau poate cele de la ped : FALL_back FALL_collapse FALL_fall FALL_front FALL_glide FALL_land FALL_skyDive Sau de la swat: Rail_fall Desi acel FALL_front pare a naibi de sugestiv. Amu vezi tu, incerci si vezi , pentru ca daca nu incerci si astepti pe cineva sa-ti puna pe tava nu merita.
  15. http://forum.sa-mp.com/showthread.php?t=608474 Ai nevoie de acest plugin, nu are nici o legatura cu mysql Edit: Pune crashdetect inainte de toate pluginurile
  16. Pai daca vrei sa folosesti Dynamic Objects atunci va trebui sa foloseste urmatoarele: DestroyDynamicObject IsValidDynamicObject In locul celor default de la CreateObject
  17. Cel mai probabil iti lipseste o acolada undeva si face ca pawno sa crape. Sau se mai poate intampla de la include-uri(am patit cu un include din libraria y_less)
  18. else if (RestartTime/60 == 0) format(string, sizeof(string), "Restart-ul se va da peste ~y~%d secunde ~w~~n~ Motiv: %s", RestartTime/60, RestartReason); In tutorial aceasta linie el a modificat-o asa: else if (RestartTime/60 == 0) format(string, sizeof(string), "Restart-ul se va da peste ~y~%d secunde ~w~~n~ Motiv: %s", RestartTime, RestartReason);
  19. Nu trebuie sa stii prea multa mate sa iti dai seama ca ceva mai mic de 60 impartit la 60 da 0 virgula ceva. La formatul cu secundele , sterge acel impartit la 60 (restarttime/60 , format nu if)
  20. public OnPropUpdate() { new Cache: r = mysql_query( mysql_db, "SELECT `ID` FROM `bizz`" ); new rows = cache_get_row_count( mysql_db ), SQLID; if( rows >= 1 ) { idx = 0; for( new i = 0; i < rows; i++ ) { idx = cache_get_field_content_int( i, "ID", mysql_db ) - 1; SQLID = cache_get_field_content_int( i, "ID", mysql_db ); mysql_format( mysql_db, string, sizeof(string), "UPDATE `bizz` SET `Owned` = %d, `Owner` = '%e', `Message` = '%e', `Extortion` = '%e', EntX = %f, EntY = %f, EntZ = %f, ExtX = %f, ExtY = %f, ExtZ = %f, Level = %d, Price = %d, EPrice = %d, Till = %d, Locked = %d, Interior = %d, Products = %d, MaxProducts = %d, ProductPrice = %d WHERE ID = %d", BizzInfo[idx][bOwned], BizzInfo[idx][bOwner], BizzInfo[idx][bMessage], BizzInfo[idx][bExtortion], BizzInfo[idx][bEntranceX], BizzInfo[idx][bEntranceY], BizzInfo[idx][bEntranceZ], BizzInfo[idx][bExitX], BizzInfo[idx][bExitY], BizzInfo[idx][bExitZ], BizzInfo[idx][bLevelNeeded], BizzInfo[idx][bBuyPrice], BizzInfo[idx][bEntranceCost], BizzInfo[idx][bTill], BizzInfo[idx][bLocked], BizzInfo[idx][bInterior], BizzInfo[idx][bProducts], BizzInfo[idx][bMaxProducts], BizzInfo[idx][bPriceProd]) SQLID; mysql_tquery( mysql_db, string ); if(BizzInfo[idx][bOwned] == 0) { format(string, sizeof(string), "{2EAD15}%s\n {2EAD15} For Sale\n {2EAD15}Level: {FFFFFF}%d\n {2EAD15}Valoare: {FFFFFF}%d\n{2EAD15} /buybiz",BizzInfo[idx][bMessage],BizzInfo[idx][bLevelNeeded],BizzInfo[idx][bBuyPrice]); } else { format(string, sizeof(string), "{F5E618}%s\n {F5E618}Owner: {FFFFFF}%s\n {F5E618}Exto: {FFFFFF}%s\n {F5E618}Level: {FFFFFF}%d\n {F5E618}Fee: {FFFFFF}%d\n {F5E618}Valoare: {FFFFFF}%d\n{F5E618} Press Enter or F",BizzInfo[idx][bMessage],BizzInfo[idx][bOwner],BizzInfo[idx][bExtortion],BizzInfo[idx][bLevelNeeded],BizzInfo[idx][bEntranceCost],BizzInfo[idx][bBuyPrice]); } Update3DTextLabelText(BizLabel[idx] ,0x008080FF, string); } } cache_delete( r ); } Iti lipsea id-ul bizului din clauza WHERE , adica nu stia la ce id sa updateze asa ca o facea la toate. public LoadBizz() { new idx; new Cache: r = mysql_query( mysql_db, "SELECT * FROM `bizz`" ) , rows = cache_get_row_count( mysql_db ); if( !cache_get_row_count( mysql_db ) ) return cache_delete( r ), print( "Nu ai niciun biz in baza de date." ); for( new i = 0; i < rows; i++ ) { BizzInfo[i][bOwned] = cache_get_field_content_int( i, "Owned", mysql_db ); cache_get_field_content( i, "Owner", BizzInfo[i][bOwner], mysql_db, MAX_PLAYER_NAME ); cache_get_field_content( i, "Message", BizzInfo[i][bMessage], mysql_db, MAX_PLAYER_NAME ); cache_get_field_content( i, "Extortion", BizzInfo[i][bExtortion], mysql_db, MAX_PLAYER_NAME ); BizzInfo[i][bEntranceX] = cache_get_field_content_float( i, "EntX", mysql_db ); BizzInfo[i][bEntranceY] = cache_get_field_content_float( i, "EntY", mysql_db ); BizzInfo[i][bEntranceZ] = cache_get_field_content_float( i, "EntZ", mysql_db ); BizzInfo[i][bExitX] = cache_get_field_content_float( i, "ExtX", mysql_db ); BizzInfo[i][bExitY] = cache_get_field_content_float( i, "ExtY", mysql_db ); BizzInfo[i][bExitZ] = cache_get_field_content_float( i, "ExtZ", mysql_db ); BizzInfo[i][bLevelNeeded] = cache_get_field_content_int( i, "Level", mysql_db ); BizzInfo[i][bBuyPrice] = cache_get_field_content_int( i, "Price", mysql_db ); BizzInfo[i][bEntranceCost] = cache_get_field_content_int( i, "EPrice", mysql_db ); BizzInfo[i][bTill] = cache_get_field_content_int( i, "Till", mysql_db ); BizzInfo[i][bLocked] = cache_get_field_content_int( i, "Locked", mysql_db ); BizzInfo[i][bInterior] = cache_get_field_content_int( i, "Interior", mysql_db ); BizzInfo[i][bProducts] = cache_get_field_content_int( i, "Products", mysql_db ); BizzInfo[i][bMaxProducts] = cache_get_field_content_int( i, "MaxProducts", mysql_db ); BizzInfo[i][bPriceProd] = cache_get_field_content_int( i, "ProductPrice", mysql_db ); printf("BizzInfo:%d Owner:%s Message:%s Entfee:%d Till:%d Products:%d/%d Interior:%d.\n", idx, BizzInfo[idx][bOwner], BizzInfo[idx][bMessage], BizzInfo[idx][bEntranceCost], BizzInfo[idx][bTill], BizzInfo[idx][bProducts], BizzInfo[idx][bMaxProducts], BizzInfo[idx][bInterior]); idx++; } cache_delete( r ); return 1; }
  21. Arata-ne query-urile care sunt la acel edit biz. Probabil sa fie de ala ele
  22. Banditul

    Ajutor

    Uita-te la parametri functiei:| Si citeste ce scrie acolo. Nu asa se face....
  23. Banditul

    Ajutor

    Strcmp nu strlen. Strlen intoarce lungimea stringului care e un numar. http://wiki.sa-mp.com/wiki/Strcmp http://wiki.sa-mp.com/wiki/OnRconLoginAttempt
  24. Porneste serverul pe localhost(pc) si vezi daca s-au facut schimbarile. Daca nu, atunci incearca sa recompilezi. Si uita-te la ce ai schimbat si vezi daca tot asa cum ai pus tu este... La altceva nu ma pot gandi acum, e ciudat pentru ca nu ar trebui sa se intample asta....
  25. Restart la server ai dat?
×
×
  • 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.