Jump to content

shane

Membru
  • Posts

    124
  • Joined

  • Last visited

  • Days Won

    19

Everything posted by shane

  1. Nu inteleg dc continuati sa postati in subcategoria asta. Daca dati scroll putin mai jos, in categorie, aveti un buton mare albastru "Ask a question". ON TOPIC: Cum ti-a spus si @Banditul, nu ai acel fisier in folderul includes. Poftim un link de download, in felul asta poti pastra AutoAFK in script si nu vei mai primi eroarea: https://www.solidfiles.com/v/ABVnqnnravQvM (Asta in cazul in care gamemodeul tau se foloseste de acesta, daca nu, pur si simplu sterge linia 10 "#include <AutoAFK>"
  2. shane

    problema cica

    Salut @Waller, In cazul in care ce ti-au spus cei de mai sus nu a functionat, procedeaza in felul urmator: Inchide XAMPP (de tot) Mergi in folderul in care ai tu instalat XAMPP -> mysql -> data Sterge fisierul ibdata1 Deschide XAMPP si vezi daca s-a rezolvat. Asta ar trebui sa mearga.
  3. Salut @MarianLeo, Prima eroare se produce deoarece scriptul tau incearca sa acceseze un id care nu exista pe server. Pentru a rezolva eroarea, tot ce ai de facut e sa detectezi daca id-ul jucatorului este diferit de INVALID_PLAYER_ID. Probabil e de la functia GetVehicleDriver. Pentru a 2-a eroare, verifica daca MAX_PERSONAL_VEHICLES nu e cumva mai mare decat pCar[ x ], astfel accesand un ID care nu exista.
  4. Salut @KenyRPG, Pentru asta, ai nevoie de un sistem pentru bani, care sa-ti permita sa depasesti limita de 2kkk. Desi mi se pare destul de greu pentru un incepator (daca e si in cazul tau) si fiind singura disponobile pe sa-mp.ro, iti recomand o rezolvare romaneasca, si anume, include-ul facut de Matt, BigINT:
  5. Salut @JoeMirana, Te poti folosi de urmatoarea animatie: ApplyAnimation( playerid, "PED", "IDLE_CHAT", 4.0, 0, 0, 0, 0, 0 ); ... pe care o adaugi la publicul "OnPlayerText"
  6. Salut @Xtrem_Maddox, Pai e foarte simplu. Iti las mai jos un exemplu: function CustomWeapName( weapon_id ) { //weapon_id = id-ul armei, pe care il detectezi cu GetPlayerWeaponID new String[ 17 ]; switch( weapon_id ) { case 24: String = "Numele armei" // 24 = idul armei pe samp (adica arma desert eagle / deagle) case 31: String = "Numele armei" // 31 = idul armei pe samp (adica arma m4) //si tot asa } return String; } Asta ar fi cred ca cea mai simpla varianta. Dupa, detectezi numele armei folosind functia respectiva. (EX: format( String, sizeof String, "Arma ta este: %s", CustomWeapName(GetPlayerWeaponID(playerid)) ); )
  7. Salut @VAurel, Posteaza IsAPizza. Desi, ar trebui sa-ti faci o functie pentru a opri lucrul peste tot unde o apelezi (ex: Stop_Work(playerid), sau cum e pe burned) Si ar fi bine sa stockezi ID-ul vehiculului de la job intr-o variabila (ex: JobVehicle[playerid]) Poti folosi ca exemplu sistemul de joburi de pe burned, e exact ce zic eu. In cazul in care totusi vrei sa pastrezi functia ta (IsAPizza), iar tu din functia asta detectezi daca modelul pe care jucatorul il conduce este acel vehicul de la Pizza delivery, verifica daca nu cumva tu creezi vehiculele folosind CreateVehicleEx, si daca nu cumva le distrugi folosind alta functie, precum DestroyVehicleEx. Si apropo, adauga in verificarea ta si daca jucatorul respectiv profeseaza un job in momentul in care coboara de pe scooter. (ex: if(Working[playerid] == 1) etc)
  8. Salut @JoeMirana, Pai e foarte simplu, faci o salvare in baza de date, spre ex cum se salveaza levelul: PlayerInfo[playerid][pLevel] Sa zicem ca tu adaugi variabila pAutoSleep. Cauti locul in care salvezi tu variabilele jucatorilor, care se salveaza in baza de date, si adaugi o noua variabila (ex: pAutoSleep) Dupa care, va trebui sa adaugi in tabelul users (sau players, sau unde ti se salveaza tie conturile), adaugi o coluana noua, spre ex: AutoSave, care va fi de tip INT (valoarea 2), conform definitiei (AS DEFINED), 0. (poti sa copiezi un rand cum ar fi Level, stii ce zic). Acum, va trebui sa verifici incarci datele din baza, din coloana AutoSleep (pe care ai creat o in baza de date), in variabila pAutoSleep, pe care ai adaugat o la primul pas. Iar acum, tot ce iti mai ramane de facut e sa o verificare la conectare, spre exemplu cauti unde iti afiseaza un mesaj atunci cand te conectezi (ex: Welcome back, shane). Exemplu: if(PlayerInfo[playerid][pAutoSleep]) Sleep(playerid); Va trebui sa creezi functia (sau publicul, cum ai tu), Sleep. Ex: function Sleep(playerid) { //comanda ta /sleep (fara CMD:sleep etc etc) return true; } Sau, pe ZCMD parca puteai sa returnezi direct o comanda, poti cauta pe net ceva despre asta, si returnezi direct comanda /sleep atunci cand te conectezi. Cam atat, nu am dispozitia sa-ti explic mai detaliat, ti-am spus exact ce trebuie sa faci, acum.. ai nevoie de niste cunostine basic si sa intelegi logic.
  9. Salut @SenpaiAdv, Foloseste exemplul de mai jos: new result[ 50 ], var[ 50 ]; cache_get_field_content(i, "Mods", result), format(var, sizeof var, result); // sau cache_get_field_name (daca folosesti Mysql r40+) sscanf(var, "p<|>iiiiiiiiiiiiii", CarInfo[id][cMod][0], CarInfo[id][cMod][1], CarInfo[id][cMod][2], CarInfo[id][cMod][3], CarInfo[id][cMod][4], CarInfo[id][cMod][5], CarInfo[id][cMod][6], CarInfo[id][cMod][7], CarInfo[id][cMod][8], CarInfo[id][cMod][9], CarInfo[id][cMod][10], CarInfo[id][cMod][11], CarInfo[id][cMod][12], CarInfo[id][cMod][13]);
  10. Salut @Yonut, Pe romaneste, daca folosesti "sleep" in server.cfg o sa creeze un deelay de executie al scripturilor care ruleaza pe server. Nu stiu nici eu exact cu ce ajuta, pentru ca nu m-am interesat niciodata atat de mult incat sa aflu. E pur si simplu o command folosita in linux pentru a adauga un deelay in executarea unui script. Deci iti poti da si tu seama ca nu te ajuta absolut deloc, ci din potriva, "te deranjeaza" si te sfatuiesc sa il elimini din server.cfg . Folosind sleep in server.cfg mai poti provoca si probleme precum desync-uri, timeout-uri, etc. // edit De pe sa-mp official: "The time in milliseconds the main sa-mp and raknet networking thread will "sleep" idly during each sync cycle. Higher values decreases server processing, but reduces sync quality. Lower values increases server processing, but improves sync quality. It is not advisable to change this value unless your player count is very high and you have server fps stability issues."
  11. Nu e vorba de erorile de la compilare. Daca ai facut ce ti-am spus, iti afiseaza linia problemei in consola, atunci cand o intampini. Nu iti spune linia problemei dupa ce l-ai compilat. Pornesti serverul, astepti pana primesti eroarea respectiva, sau daca stii ca o primesti de la un sistem, "folosesti" sistemul respectiv pe server ca sa primesti eroarea in consola si tot odata sa primesti si linia problemei. Iti spun asta pentru ca altfel nu rezolvi problema. Cum a spus si @L0K3D, ai depasit un array si daca nu stii exact ce ai facut sau daca nu folosesti metoda pe care ti-am spus-o mai sus, nu stiu cum il poti rezolva altfel sau cum poate altcineva sa te ajute. Daca vrei sa-ti explic, poate n ai inteles undeva, imi lasi discordul privat.
  12. Salut @The_RobyRo, Pentru inceput, descarca urmatorul fisier si pune-l in folderul tau pawno (unde se afla compilatorul, adica pawno.exe): https://www.solidfiles.com/v/p5Ny7mrzvWNa7 Fisierul respectiv te va ajuta sa vezi exact unde se afla linia care cauzeaza acea eroare in consola. In cazul in care ai deja fisierul, nu-l mai schimba, compileaza direct cu ce ti-am spus mai jos. Deci dupa ce ai adaugat fisierul respectiv, compileaza iar gamemodeul folosind compilatorul default (adica pawno.exe), urca-l pe host sau porneste consola (daca esti pe windows) si fa iar actiunea care a rezultat in eroarea respectiva. Cand eroarea va aparea iar, vei sti exact linia unde se afla problema. Dupa ce afli linia, posteaz-o aici si asteapta raspuns. Tine minte sa compilezi cu compilatorul default (pawno.exe).
  13. Salut @Slay3r, In primul rand, vei descarca, in functie de versiunea mysql pe care o foloseste serverul tau, mysql_static.so de pe link-ul urmator: https://github.com/pBlueG/SA-MP-MySQL/releases Daca nu stii ce versiune mysql foloseste serverul tau, deschide consola pe windows (samp-server.exe) si nu uita ca in server.cfg, la linia plugins, sa ai trecute pluginurile sub forma => plugins mysql sscanf streamer (etc etc). Dupa ce serverul a pornit pe windows, dupa "Loading plugin: mysql", o sa iti apara ceva gen: >> plugin.mysql: R*versiunea ta* successfully loaded. Dupa ce ai aflat ce versiune mysql foloseste serverul tau, intri pe linkul pe care ti l-au dat si baietii mai sus, si pe care ti l-am dat si eu, iti cauti versiunea prin releases, si descarci fisierele pentru linux (sau versiunea linux pe care o folosesc cei de la host). Tu cel mai probabil ai versiunea R39. Dupa ce s-a descarcat arhiva, dezarhiveaza fisierele din folderul plugins in folderul tau plugins (unde e gmu gen) si pune editeaza pe host, la linia plugins, in loc de "plugins mysql.so sscanf.so (exemplu doar)", in "plugins mysql_static.so sscanf.so etc etc". Problema ta ar trebui sa fie rezolvata.
  14. Salut @Aesma, Parerea mea, problema asta s-ar putea rezolva cu o atentie directa. Exista 2 cauze care sa determine problema ta, ori ai o eroare atat de mare incat "compilatorul nu o poate rezolva", ori nu ai instalat bine compilatorul pe sublime. Da-mi add pe discord (shane /aka Bugsy#4354) sa vad ce pot face si revin cu rezolvarea in cazul in care reusesc.
  15. Salut @Serbaq, De aici poti descarca TDE Editor -> https://www.solidfiles.com/v/p5NAVBLBLw3nr (VIRUS TOTAL: https://www.virustotal.com/gui/file/8d87b77df847cd977a27242a6979a99b0c523540d3d6c7845d95265723bf1329/detection) Sau il poti descarca direct de pe github -> https://github.com/adri1336/TDEditor
  16. Salut @Slay3r, Intra pe link-ul urmator. Probabil asta iti va rezolva problema:
  17. Salut @SebastianM, Erorile respective nu apar de la scriptul pe care l-ai oferit. L-am compilat personal si nu am primit nici un fel de eroare. Pentru a-ti da seama exact de linia de cod unde se afla problema, foloseste combinatia de taste CTRL+G si introdu urmatorul numar: 1991 (care reprezinta linia problemei si care apare in paranteze inainte de erorile tale / sau la sfarsitul directiei catre gamemode). Dupa care, pune aici minim 10 linii din cod, cu tot cu linia la care se afla problema (Exemplu liniile de la 1980 la 1995) si se rezolva. E o problema, in general simpla. Dupa ce postezi ce ti-am cerut, iti explic si cum sa rezolvi o problema de genul, folosind ca exemplu problema ta. Si apropo, nu aici se cere ajutor pentru probleme. Odata ce ai ajuns in categoria Ajutor Scripting, dai scroll mai jos si vei gasi butonul 'Ask a question'.
  18. Salut @Revim Games, In primul rand, asigura te ca serverul are pluginurile: mysql, streamer si sscanf in folderul include (din folderul unde ai tu fisierele de la gamemode, sper ca intelegi unde zic sa te uiti) Dupa care, daca rulezi serverul pe un host, asigura-te ca in server.cfg, la linia plugins, ai adaugate pluginurile prin exemplul urmator: mysql.so sscanf.so streamer.so . Daca rulezi serverul pe windows, din consola (samp-server), asigura-te ca le ai adaugate prin exemplul urmator: mysql sscanf streamer (fara extensia .so) Daca nu te regasesti in cele mentionate mai sus, instaleaza urmatoarele packete de la microsoft: Microsoft Visual C++ 2008 Redistributable Package Microsoft Visual C++ 2010 Redistributable Package Microsoft Visual C++ 2012 Redistributable Package Microsoft Visual C++ 2013 Redistributable Package Microsoft Visual C++ 2015 Redistributable Package Microsoft Visual C++ 2017 Redistributable Package Microsoft Visual C++ 2019 Redistributable Package Pe care le gasesti aici: https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads Instaleaza versiunile atat pentru x64 cat si pentru x86 (Versiunea ARM64 nu ar trebui sa aiba importanta) Daca nici dupa toti acesti pasi serverul tau nu porneste (mai exact, nu sunt incarcate pluginurile), problema ar putea fi de la gamemode, iar pentru rezolvarea ei, e nevoie de mai multe detalii. Dar sunt sigur in procent de 90% ca asta iti va rezolva problema. Bafta!
  19. Salut @Waller Trebuie sa mai dai niste detalii precum: Primesti vr-o eroare in server_log.txt (apare si in consola de la server, daca ruleaza pe windows). Doar nu iti afiseaza textdrawul? Premiul il primesti? Nu iti apare un anumi textdraw? Sau nici unul. Mai posteaza si un link catre pastebin.com, in care sa se afle functia ShowCrates/Dialoguri, precum si alte functii ale sistemului sau direct un link de download catre gamemode, daca se afla pe sa-mp.ro.
  20. Salut @Guta Florin In cazul in care folosesti un procesor de comenzi precum ZCMD (comenzile incep cu CMD:Comanda_Ta), poti folosi exemplu dat de catre Mister mai sus (OnPlayerCommandPerformed) In cazul in care folosesti un procesor de comenzi precum YCMD (comenzile incep cu YCMD:Comanda_Ta), mesajul respectiv poate fi modificat din OnPlayerCommandReceived. Exemplu => public e_COMMAND_ERRORS: OnPlayerCommandReceived( playerid, cmdtext[], e_COMMAND_ERRORS:success ) { if( success == COMMAND_UNDEFINED ) SendClientMessage( playerid, -1, "Error: This command doesn't exist, use the /help command for a generic list." ); return COMMAND_OK; } In cazul in care folosesti procesorul default de comenzi, mesajul poate fi modificat din OnPlayerCommandText. Exemplu => public OnPlayerCommandText (playerid, cmdtext []) { //comenzile tale return SendClientMessage( playerid, -1, "Error: This command doesn't exist, use the /help command for a generic list." ); } Tu ar trebui sa ai 'return 0;' in loc de 0, pui exemplul de mai sus.
  21. Salut @TheSlim2 Nu am inteles exact intrebarea. Daca te referi strict la adaugarea unei locatii noi in /gps, vei face urmatorul lucru: In primul rand vei cauta comanda /gps in gamemode, folosind combinatia de taste CTRL+F, iar in casuta afisata vei scrie 'gps(' (cu tot cu paranteza). Primul rezultat ar trebui sa fie comanda, in cazul in care nu folosesti o alta comanda, avand /gps ca alternativa. (adica spre ex daca folosesti ycmd si ai comanda /locations iar ca alternativa /gps, pe romaneste). Te poti informa despre libraria YSI, mai exact despre YCMD cu un search pe internet. Si apropo, ar trebui sa cauti in romana, pentru ca daca vei cauta in engleza vei primi rezultate de pe site-ul oficial/global sa-mp, care este offline/inchis. Ma rog, detalii.., sa trecem peste. Comanda rezultata ar trebui sa arate in felul urmator: Pe ZCM => CMD:gps( playerid, params[] ) { ShowPlayerDialog( playerid, DIALOG_GPS, DIALOG_STYLE_LIST, "Locations", "Locatia 1\nLocatia 2\nLocatia 3", "Select", "Close" ); return true; } Pe YCMD => YCMD:gps( playerid, params[], help ) { ShowPlayerDialog( playerid, DIALOG_GPS, DIALOG_STYLE_LIST, "Locations", "Locatia 1\nLocatia 2\nLocatia 3", "Select", "Close" ); return true; } Dupa cum vezi, in codul de mai sus sunt trecute in functia 'ShowPlayerDialog' urmatoarele: Locatia 1, Locatia 2 si Locatia 3, care sunt delimitate pe un rand nou folosind "\n". (\n = insereaza un rand nou in lista, adica Locatia 2 apare sub Locatia 1 in dialogul afisat de comanda). Ce ne intereseaza in comanda este functia ShowPlayerDialog. Folosind exemplul meu, vei adauga o locatie noua, adaugand la sfarsitul sirului tau de locatii => \nNumele Locatiei Tale. Exemplu: ShowPlayerDialog( playerid, DIALOG_GPS, DIALOG_STYLE_LIST, "Locations", "Locatia 1\nLocatia 2\nLocatia 3\nNumele Locatiei Tale", "Select", "Close" ); Acum, locatia ta a fost adaugata in lista, in /gps. In continuare, va trebui sa setezi un checkpoint locatiei. Pentru asta, vei cauta in gamemode numele dialogului tau pentru locatii. Spre exemplu, numele dialogului meu, din exemplul de mai sus, este 'DIALOG_GPS'. Tu va trebui sa cauti numele dialogului tau, pe care il gasesti unde am ingrosat eu => ShowPlayerDialog( playerid, DIALOG_GPS, DIALOG_STYLE_LIST, "Locations", "Locatia 1\nLocatia 2\nLocatia 3\nNumele Locatiei Tale", "Select", "Close" ); Ca rezultat, vei avea ceva de genul: Pe switch => case DIALOG_GPS: { if( !response ) return true; switch( listitem ) { case 0: SetPlayerCheckpoint( playerid, 2459.7097, 1324.9181, 10.8203, 5.0 ); // Locatia 1 case 1: SetPlayerCheckpoint( playerid, 1090.2291,1074.8134,10.8359, 5.0 ); // Locatia 2 case 2: SetPlayerCheckpoint( playerid, 1099.5839,1601.5763,12.5469, 5.0 ); // Locatia 3 } } Default => if( dialogid == DIALOG_GPS ) { if( !response ) return true; if( listitem == 0 ) SetPlayerCheckpoint( playerid, 2459.7097, 1324.9181, 10.8203, 5.0 ); // Locatia 1 else if( listitem == 1 ) SetPlayerCheckpoint( playerid, 1090.2291,1074.8134,10.8359, 5.0 ); // Locatia 2 else if( listitem == 2 ) SetPlayerCheckpoint( playerid, 1099.5839,1601.5763,12.5469, 5.0 ); // Locatia 3 } Dupa cum vezi, sunt 3 locatii, ca in exemplul meu. Pentru a adauga checkpointul, tu va trebui sa adaugi un rand nou, in functie de modul in care ai tu organizate locatiile, folosind exemplul meu. In exemplul urmator o sa ma folosesc de switch, adica primul exemplu pe care ti l-am dat mai sus, si voi adauga un checkpoint nou pentru noua locatie adaugata. Deci, voi adauga: case 3: SetPlayerCheckpoint( playerid, 2459.7097, 1324.9181, 10.8203, 5.0 ); // Noua locatie adaugata Aici trebuie sa fii atent la 2 lucruri foarte importante: Va trebui sa cresti numarul locatiei cu 1 (+1), spre exemplu, numarul ultimei mele locatii (din exemplu) a fost 2, deci am adaugat 3 (case 3: ..bla bla bla). Lafel se procedeaza si in al 2-lea exemplu pe care ti l-am dat, doar ca de data asta va trebui sa adaugi si 'else' inainte de if, care pe romaneste inseamna ('sau daca'), rezultatul fiind => else if( listitem == 3 ) SetPlayerCheckpoint.. etc. Pentru ca probabil, tu in dialogul tau vei gasi variabile precum 'CP[playerid] = Un Numar' sau 'Checkpoint[playerid] = Un Numar', spre exemplu: case 0: { SetPlayerCheckpoint( playerid, 2459.7097, 1324.9181, 10.8203, 5.0 ); CP[ playerid ] = 1; } sau => switch( dialogid ) { case 0: bla bla bla case 1: bla bla bla case 2: bla bla bla case 3: bla bla bla } CP[ playerid ] = 1; [...] In cazul in care te regasesti in primul exemplu, va trebui sa adaugi si acea variabila, cum il ai in celelalte dialoguri, sau in exemplul pe care ti l-am oferit. Ok, acum mai ai un singur lucru de facut, va trebui sa introduci coordonatele checkpointului tau, pentru noua locatie. Pentru a face asta, foloseste comanda /save in locul in care vrei sa apara checkpointul, dupa care, navigeaza in pc-ul tau pana in folderul Decuments -> Gta San Andreas User Files -> SAMP, in care vei gasi un fisier tip Note (.txt) cu numele saved-possitions sau ceva de genul, nu mai stiu exact. Il vei deschide, iar ultimul rand din lista va fi noua ta locatie va fi ceva de genul => AddPlayerClass(un numar (care simbolizeaza skinul tau), coordonata_1, coordonata_2, coordonata_3, etc etc. Ce ne intereseaza pe noi sunt coordonatele 1, 2 si 3. Le vei copia, cu tot cu virgula dintre ele (doar cele dintre coordonate, nu si dinainte sau de dupa) si le vei inlocui cu coordonatele din ultima ta locatie, cea adaugata de tine in gamemode, la dialogul tau, dupa exemplul urmator: Vei adauga coordonatele cum am eu exemplul mai jos SetPlayerCheckpoint(playerid, coordonata_1, coordonata_2, coordonata_3, Cat_de_mare_sa_fie_cercul); In loc de coordonata 1, 2 si 3, vei adauga coordonatele pe care le-ai copiat din fisierul pe care ti-am spus sa-l cauti mai sus. Exemplu: SetPlayerCheckpoint(playerid, 2459.7097, 1324.9181, 10.8203, 5.0); In loc de 'Cat_de_mare_sa_fie_cercul', poti pune 5.0, 10.0, 7.0 (e doar un exemplu). Asta reprezinta cat de mare sa fie acel cerc rosu, care reprezinta checkpointul. Deci cat de mare sa fie raza checkpointului. Cam asta e. Am incercat sa-ti raspund cat mai detaliat si mai clar. Desi nu ma pot numi un profesor, sper sa intelegi ceva. Oricum, te mai poti lua si dupa exemplele din gamemodeul tau sau din alte gamemodeuri. In cazul in care ai vrut toata comanda, cu ce ti-am dat mai sus iti poti face singur comanda daca ai ZCMD sau YCMD ca procesor de comenzi.
×
×
  • 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.