Jump to content

RaZVaN ^ xD

Membru
  • Posts

    51
  • Joined

  • Last visited

    Never

Everything posted by RaZVaN ^ xD

  1. RaZVaN ^ xD

    Beep

    1. Ti se pare ca m-am laudat undeva? 2. Ai ceva impotriva ca am postat aici? 3. Doar cei doi utilizatori mentionati mai sus au dreptul sa descopere ceva? Uita-te in fisierul cu informatii despre pawn si vei afla ca de acolo am luat informatia . 4. Gramatica se lasa in spatele tastaturii? Sau nici pe caiet nu o utilizezi? Am vrut sa postez cateva informatii, insa se pare ca romanii nu accepta o informatie in plus .
  2. Si unde e parametrul optional aici? Si in ce sens ai folosit "params" ? Lasa-te de meserie :-h
  3. Arata-mi tu metoda ta, folosind MAI MULTI PARAMETRI.
  4. Daca sintaxa in care fisierul .ini nu este aceeasi cu cea librariei y_ini, nu vei putea face asta. Insa poti incerca sa-l deschizi ca pe orice fisier .ini
  5. Stersul obiectelor nu cred ca este convertit de vreun script online. Fie inveti sa-ti convertesti singur acele functii, fie faci mapa din nou cu map editor ( ala de pe sa-mp.com )
  6. Atunci, daca e prea greu sa citesti un "readme", du-te in libraria JunkBuster ( .inc ) si sterge toate liniile care incep cu #error
  7. Incluzi FS-ul in GM si adaugi verificarea urmatoare la inceputul comenzilor: if ( PlayerInfo [ playerid ] [ pMember ] != 1 && PlayerInfo [ playerid ] [ pLeader ] != 1 ) return SendClientMessage ( playerid, -1, "Nu sunteti membru PD ." );
  8. Asta poti face si fara PS. Dublu-click pe bara de jos ( server info ) + click pe marginea acelei "ferestre" cu jucatori si tragi spre dreapta.
  9. if(strcmp(cmd, "/rentbike", true) == 0) { if(IsPlayerConnected(playerid)) { if(GetPlayerVehicleID(playerid) >= rentbike1 && GetPlayerVehicleID(playerid) <= rentbike24) { new hirefee = HireCost(GetPlayerVehicleID(playerid)); if(GetPlayerVehicleID(playerid) >= rentbike1 && GetPlayerVehicleID(playerid) <= rentbike24) { if(SBizzInfo[0][sbProducts] == 0) { GameTextForPlayer(playerid, "~r~Out Of Stock", 5000, 1); return 1; } if(PlayerInfo[playerid][pPbiskey] == 0 && PlayerInfo[playerid][pPbiskey2] == 0) { GameTextForPlayer(playerid, "~w~No charge for the boss", 5000, 3); TogglePlayerControllable(playerid, 1); return 1; } if (GetPlayerMoney(playerid) < SBizzInfo[0][sbEntranceCost]) { SendClientMessage(playerid, COLOR_GRAD2, " You dont have that much cash !"); return 1; } GivePlayerMoney(playerid,-SBizzInfo[0][sbEntranceCost]); SBizzInfo[0][sbTill] += SBizzInfo[0][sbEntranceCost]; ExtortionSBiz(0, SBizzInfo[0][sbEntranceCost]); SBizzInfo[0][sbProducts]--; } if(GetPlayerVehicleID(playerid) >= rentbike1 && GetPlayerVehicleID(playerid) <= rentbike24) { if(SBizzInfo[1][sbProducts] == 0) { GameTextForPlayer(playerid, "~r~Out Of Stock", 5000, 1); return 1; } if(PlayerInfo[playerid][pPbiskey] == 1 && PlayerInfo[playerid][pPbiskey2] == 1) { GameTextForPlayer(playerid, "~w~No charge for the boss", 5000, 3); TogglePlayerControllable(playerid, 1); return 1; } if (GetPlayerMoney(playerid) < SBizzInfo[1][sbEntranceCost]) { SendClientMessage(playerid, COLOR_GRAD2, " You dont have that much cash !"); return 1; } GivePlayerMoney(playerid,-SBizzInfo[1][sbEntranceCost]); SBizzInfo[1][sbTill] += SBizzInfo[1][sbEntranceCost]; ExtortionSBiz(1, SBizzInfo[1][sbEntranceCost]); SBizzInfo[1][sbProducts]--; } if(HireCar[playerid] != 299) { gCarLock[HireCar[playerid]] = 0; UnLockCar(HireCar[playerid]); SendClientMessage(playerid, COLOR_GREY, "You already rent a car,type /unrentcar to unrent previous car !"); return 1; } for(new i=0; i<MAX_PLAYERS; i++) { if(HireCar[i] == GetPlayerVehicleID(playerid)) { SendClientMessage(playerid, COLOR_GREY, " Someone rented this car !"); return 1; } } HireCar[playerid] = GetPlayerVehicleID(playerid); OnPropUpdate(); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); format(string, sizeof(string), "~w~Dont't Forget to ~r~/unrentbike~n~~g~/lock ~w~to lock your bike",hirefee); SendClientMessage(playerid, COLOR_YELLOW, "Poti porni motorul acum!"); gEngine[playerid] = 0; SetVehicleParamsEx ( GetVehiclePlayerID ( playerid ), true, false, false, false, false, false, false ); engineOn[GetPlayerVehicleID(playerid)] = false; TogglePlayerControllable(playerid, 1); GameTextForPlayer(playerid, string, 5000, 3); } } return 1; }
  10. RaZVaN ^ xD

    Ajutor

    In niciun caz. SendLogClient e o functie pe care ai uitat sa o copiezi din locul de unde ai copiat acea comanda.
  11. Din cate stiu, trebuia sa modifici un rand in libraria JB prin care confirmi ca ai citit readme ( era un #define )
  12. sscanf2 - Parametri optionali Ce este un parametru optional? Un parametru optional este un parametru de care nu depinde functionarea unei comenzi. Cum poate recunoaste sscanf2 un parametru optional? sscanf2 nu poate sti ce parametru doriti dvs. sa fie optional, asa ca trebuie sa interveniti. Un parametru optional se noteaza cu majuscula specificatorului ( ex: pentru string este "S", pentru integer este "I" sau "D", pentru hex este "X" sau "H", pentru nume de jucator este "U" ). Notarea si valoarea implicita a unui parametru optional: Imediat dupa ce se noteaza un parametru optional cu majuscula specificatorului, trebuie notata valoarea implicita intre doua paranteze rotunde. [pawn]sscanf ( params, "iI(21)", p[0], p[1] );[/pawn] In codul de mai sus exista doi parametri, ambii integer: primul parametru este unul obligatoriu al doilea parametru este optional, cu valoarea implicita = 21 NOTA: In cazul unui parametru optional ce este string, mai intai se face notarea valoii implicite, apoi marimea string-ului: [pawn]sscanf ( params, "iS(pere)[32]", integer, string );[/pawn] In codul de mai sus exista doi parametri: primul parametru este unul obligatoriu, integer al doilea parametru este optional, string de marimea "32", cu valoarea implicita = "pere" Exemple: CMD:veh ( playerid, params [ ] ) { new param [ 3 ] ; if ( sscanf ( params, "iI(-1)I(-1)", param [ 0 ], param [ 1 ], param [ 2 ] ) ) return SendClientMessage ( playerid, -1, "/veh <id> <culoare 1> <culoare 2>" ); // unde culorile sunt parametri optionali new Float:pos[3], ; GetPlayerPos ( playerid, pos [ 0 ], pos [ 1 ], pos [ 2 ] ); CreateVehicle ( param [ 0 ], pos [ 0 ], pos [ 1 ], pos [ 2 ], 0.0, param [ 1 ], param [ 2 ], -1 ); return 1; } CMD:kick ( playerid, params [ ] ) { new giveplayerid, motiv [ 32 ] ; if ( sscanf ( params, "uS()[32]", giveplayerid, motiv ) ) // motivul este optional si are valoarea implicita NULA return SendClientMessage ( playerid, -1, "/kick <playerid/nume> <motiv>" ); if ( isnull ( motiv ) ) // nu s-a introdus nici un motiv { SendClientMessage ( giveplayerid, -1, "* Ati primit kick fara motiv." ); } else // s-a introdus un motiv { new string [ 64 ] ; format ( string, sizeof ( string ), "* Ati primit kick. Motiv: %s", motiv ); SendClientMessage ( giveplayerid, -1, string ); } Kick ( giveplayerid ); return 1; } CMD:fine ( playerid, params [ ] ) { new param [ 2 ] ; if ( sscanf ( params, "uI(-1)", param [ 0 ], param [ 1 ] ) ) return SendClientMessage ( playerid, -1, "/fine <playerid/nume> <bani>" ); // unde "bani" este parametrul optional if ( param [ 1 ] == -1 ) // Nu s-a introdus parametrul optional { ResetPlayerMoney ( param [ 0 ] ); } else // Parametrul optional a fost introdus { GivePlayerMoney ( param [ 0 ], -param [ 1 ] ); } return 1; } NOTA: Aceasta metoda nu se poate aplica pe prima versiune sscanf ( stock ).
  13. PVars - Variabile per jucator Variabilele per jucator au fost adaugate in 0.3a si sunt folosite, in general, pentru a putea transfera informatii intre script-uri ( GM <-> FS | FS <-> FS ). Proprietati principale: se pot citi din orice script incarcat, nu doar din script-ul in care au fost create daca valoarea unui PVar nu a fost setata, are valoarea implicita = 0 se reseteaza automat dupa executarea callback-ului OnPlayerDisconnect ( dupa ce jucatorul paraseste server-ul, se reseteaza automat ) poate "tine" string-uri foarte mari datorita memoriei ce se aloca dinamic Tipuri de PVars: Variabilele per jucator sunt de trei tipuri: integer - un numar intreg ( ex: 0, 63, 19, -7, -1999 ); float - un numar zecimal ( ex: 21.4185, -741.456, -79311.213, 342.1 ); string - un bloc de text ( "Salut", "Razvan e smecher", "Ana are mere" ). Functii: Fiecare tip de PVar are functiile sale, cu exceptia catorva, care sunt comune: Integer: SetPVarInt ( playerid, pvar [ ], valoare ) - > Seteaza valoarea ca integer a unui PVar playerid = ID-ul jucatorului caruia doriti sa ii setati un PVar ( integer ) pvar [ ] = denumirea PVar-ului ( string ) valoare = valoarea pe care doriti sa o setati ( integer ) [pawn]SetPVarInt ( playerid, "Admin", 1340 ); // Seteaza PVar-ul "Admin" al jucatorului playerid = 1340[/pawn] GetPVarInt ( playerid, pvar [ ] ) - > Returneaza valoarea ca integer a unui PVar playerid = ID-ul jucatorului caruia doriti sa ii setati un PVar ( integer ) pvar [ ] = denumirea PVar-ului ( string ) [pawn]new admin = GetPVarInt ( playerid, "Admin" ); // Va returna ca integer valoarea PVar-ului "Admin" a jucatorului playerid[/pawn] Float: SetPVarFloat ( playerid, pvar [ ], Float:valoare ) - > Seteaza valoarea ca numar zecimal a unui PVar playerid = ID-ul jucatorului caruia doriti sa ii setati un PVar ( integer ) pvar [ ] = denumirea PVar-ului ( string ) Float:valoare = valoarea pe care doriti sa o setati ( float ) [pawn]SetPVarFloat ( playerid, "Armura", 73.4 ); // Seteaza PVar-ul "Armura" al jucatorului playerid = 73.4[/pawn] GetPVarFloat ( playerid, pvar [ ] ) - > Returneaza valoarea ca numar zecimal a unui PVar playerid = ID-ul jucatorului caruia doriti sa ii setati un PVar ( integer ) pvar [ ] = denumirea PVar-ului ( string ) [pawn]new Float:AP = GetPVarFloat ( playerid, "Armura" ); // Va returna ca numar zecimal valoarea PVar-ului "Armura" a jucatorului playerid[/pawn] String: SetPVarString ( playerid, pvar [ ], valoare [ ] ) - > Seteaza valoarea ca string a unui PVar playerid = ID-ul jucatorului caruia doriti sa ii setati un PVar ( integer ) pvar [ ] = denumirea PVar-ului ( string ) valoare [ ] = valoarea pe care doriti sa o setati ( string ) [pawn]SetPVarString ( playerid, "Rang", "Lider" ); // Seteaza PVar-ul "Rang" al jucatorului playerid = "Lider"[/pawn] GetPVarString ( playerid, pvar [ ], string [ ], len ) - > Returneaza valoarea ca string a unui PVar in variabila string playerid = ID-ul jucatorului caruia doriti sa ii setati un PVar ( integer ) pvar [ ] = denumirea PVar-ului ( string ) string [ ] = variabila de tip string in care se va stoca valoarea PVar-ului ( string ) len = marimea string-ului ( integer ) [pawn]new string_rang [ 16 ]; GetPVarString ( playerid, "Rang", string_rang, sizeof ( string_rang ) ); // Va returna ca string in var. string_rang valoarea PVar-ului "Rang" a jucatorului playerid[/pawn] Functii comune: DeletePVar ( playerid, pvar [ ] ) - > Sterge un PVar playerid = ID-ul jucatorului caruia doriti sa ii stergeti un PVar ( integer ) pvar [ ] = denumirea PVar-ului ( string ) [pawn]DeletePVar ( playerid, "Armura" ); // Va sterge PVar-ul "Armura" a jucatorului playerid[/pawn]
  14. Actualizare server SA:MP la o noua versiune Unii dintre voi sunteti probabil amatori in "d-ale SA:MP-ului" si doriti sa va actualizati serverul la o noua versiune SA:MP. Pasii pe care trebuie sa ii urmati sunt simpli: [list type=decimal] [*]Intrati pe site-ul SA:MP la sectiunea Downloads ; [*]Descarcati ultimul pachet SA:MP ( fie pentru sistemul de operare Windows, fie pentru Linux ) ; [*]Dezarhivati pachetul ; [*]In functie de sistemul de operare pe care va rula server-ul SA:MP, inlocuiti urmatoarele fisiere / dosare ale server-ului dvs. cu cele din pachetul descarcat: Windows: announce.exe samp-npc.exe samp-server.exe dosarul pawno Linux:announce samp-npc samp03svr [*]Verificati daca exista versiuni noi pentru librariile / plugin-urile folosite de server, iar daca exista, actualizati-le ; [*]Compilati gamemode-ul si filterscript-urile . NOTA: Daca sistemul de operare este unul tip Linux, va trebui sa schimbati permisiunile fisierelor announce, samp-npc si samp03svr in 777 ( chmod ) . Daca ati respectat toti pasii enumerati mai sus, server-ul dvs. SA:MP ruleaza pe ultima versiune !
  15. ZCMD + STRCMP V-ati gandit sa va actualizati vechiul script cu peste 500 de comenzi si sa-l treceti pe ZCMD, insa nu aveti destul timp sa modificati toate comenzile? Puteti modifica doar cateva comenzi, restul ramanand pe strcmp. Uitati cum trebuie sa procedati: In primul rand, includeti libraria "zcmd" in script-ul dvs.: #include <zcmd> Cautati in script-ul dvs. callback-ul "OnPlayerCommandText": public OnPlayerCommandText ( playerid, cmdtext [ ] ) In acest moment, il modificati in "OnPlayerCommandPerformed" si adaugati un ultim parametru, "success": public OnPlayerCommandPerformed ( playerid, cmdtext [ ] , success ) Explicatie: In momentul in care ZCMD executa o comanda, "cheama" callback-ul OnPlayerCommandPerformed() cu parametrul "success = 1" daca acea comanda este ZCMD, sau "success = 0" daca acea comanda NU este ZCMD. Tot odata, va trebui sa adaugati urmatoarea clauza la OnPlayerCommandPerformed ( ): if ( success ) return 1; Explicatie: Daca, comanda executata este ZCMD, nu trebuie sa ne legam de ea, deoarece ne intereseaza comenzile non-ZCMD. Daca totul este corect, callback-ul ar trebui sa arate in felul urmator: public OnPlayerCommandPerformed ( playerid, cmdtext [ ], success ) { if ( success ) return 1; // Daca, comanda executata este ZCMD, nu se intampla nimic if ( !strcmp ( cmdtext, "/test", true, 5 ) ) // Verifica daca, comanda executata este "/test" { SendClientMessage ( playerid, -1, "Test!" ); return 1; // Comanda a fost procesata } if ( !strcmp ( cmdtext, "/test2", true, 6 ) ) // Verifica daca, comanda executata este "/test2" { SendClientMessage ( playerid, -1, "Test2!" ); return 1; // Comanda a fost procesata } return 0; // In cazul in care comanda nu se gaseste in script ( indiferent daca e ZCMD sau alt procesor de comenzi, trimite mesajul "SERVER: Unknown command." }
  16. RaZVaN ^ xD

    Beep

    Beep Citind recent pawn_lang.pdf, am observat ca exista un cod care face ca boxa interna a PC-ului unde este gazduit server-ul sa faca BEEP ( testat doar pe Windows ). Poate fi de ajutor la debugging. Tot ce trebuie sa faceti este sa scrieti codul "\a" in functia print(f). [pawn]print ( "\a" );[/pawn] Cand va fi executata acea instructiune, boxa interna va face BEEP.
  17. [ 0.3x ] Rezolvare problema Kick / Ban Probabil dupa ce ati actualizat server-ul la versiunea 0.3x ati observat o problema la functiile Kick / Ban. Potrivit unui post al lui Kye de pe forumul SA:MP, aceasta problema se datoreaza inchiderii conexiunii dintre server si client inainte de a se transmite si mesajele din callback-ul cu pricina ( cel care contine functia Kick / Ban ). Metoda de rezolvare este simpla: functia Kick / Ban trebuie trimisa dupa executarea callback-ului. Cum facem asta? Folosind functia SetTimerEx. Potrivit lui Slice ( forum.sa-mp.com ), timer-ele sunt executate dupa finalizarea instructiunilor din callback . Mai jos aveti codul pe care il folosesc eu : forward Kick_Ban ( playerid, bool: kickban ); public Kick_Ban ( playerid, bool: kickban ) return ( !kickban ) ? Kick ( playerid ) : Ban ( playerid ); #define Kick(%1) SetTimerEx ( "Kick_Ban", 500, false, "ii", %1, false ) #define Ban(%1) SetTimerEx ( "Kick_Ban", 500, false, "ii", %1, true ) *NOTA: Daca tot nu va apare mesajul / mesajele de pe server-ul dvs, mariti intervalul timer-ului ( mariti acel nr. 500 ) . Codurile scrie mai sus trebuie copiate EXACT in aceasta ordine ! Acum nu va mai trebui sa inlocuiti functiile Kick, respectiv Ban.
  18. Classic TogglePlayerControllable BRING BACK THE INVINCIBILITY ! Informatii generale: Libraria CTPC readuce posibilitatea de a face un jucator invincibil prin functia TogglePlayerControllable, posibilitate inlaturata din 0.3x . Libraria adauga un nou parametru functiei TogglePlayerControllable, invincibilitatea . In mod implicit, parametrul de invincibilitate este setat pe 1, deci daca includeti libraria CTPC intr-un script care script foloseste TogglePlayerControllable, nu va trebui sa modificati nimic pentru a readuce posibilitatea de a face un jucator invincibil, aceasta fiind activata automat . Cand parametrul de invincibilitate este setat pe 1, jucatorul este invincibil, cand este setat pe 0, TogglePlayerControllable functioneaza normal . Noua sintaxa: [pawn]TogglePlayerControllable ( playerid, toggle, invincibility = 1 );[/pawn] Exemple de folosire: [pawn]TogglePlayerControllable ( playerid, 0, 0 ); // Jucatorul va fi blocat . TogglePlayerControllable ( playerid, 0, 1 ); // Jucatorul va fi blocat si invincibil . TogglePlayerControllable ( playerid, 0 ); // Jucatorul va fi blocat si invincibi ( motivul este scris mai sus ) . TogglePlayerControllable ( playerid, 1 ); // Jucatorul va fi deblocat .[/pawn] Credite: SA-MP Team Persoana ce a conceput metoda ALS de HOOKING RaZVaN ^ xD Descarcare: [download]http://pastebin.com/fLXB7c5K[/download] [download]http://www.solidfiles.com/d/611fa3b598/[/download]
  19. Return arata in primul rand sfarsitul executarii unor instructiuni. Return mai este folosit si pentru ca o functie sa returneze o valoare, ceea ce este foarte folositor in cadrul functiilor care se folosesc la verificari ( exemplu este functia ta ). Deci, la codul tau in starea actuala, nu conteaza daca returnezi 0, 1, 2, 1337 sau chiar nu returnezi nicio valoare: "return;" Totusi, daca vrei sa folosesti functia asta drept una pe care o poti folosi la o verificare ( if ), ai putea sa returnezi false ( 0 ) in cazul in care jucatorii nu sunt conectati / nu sunt in preajma ; sau sa returnezi true ( 1 ) daca jucatorii sunt apropiati: stock IsPlayerInRangeOfPlayer( playerid, targetid, distance = MAX_DISTANCE ) { if ( !IsPlayerConnected( playerid ) || !IsPlayerConnected( targetid ) ) // daca unul din cei jucatori nu sunt conectati, se returneaza 0 return 0; if ( playerid == targetid ) // daca jucatorul 1 este acelasi cu jucatorul 2, automat ca sunt "unul langa altul", deci se returneaza 1. return 1; new Float:t_Pos[ 3 ]; GetPlayerPos( targetid, t_Pos[ 0 ], t_Pos[ 1 ], t_Pos[ 1 ] ); return IsPlayerInRangeOfPoint( playerid, distance, t_Pos[ 0 ], t_Pos[ 1 ], t_Pos[ 1 ] ); // functia IsPlayerInRangeOfPlayer va returna aceasi valoare cu IsPlayerInRangeOfPoint, deci daca IsPlayerInRangeOfPoint va returna 1, functia custom va returna tot 1 ( aceeasi situatie si la 0 ) } Dupa cum observi, am sters functia GetPlayerPos pentru playerid, deoarece nu este nevoie. if ( IsPlayerInRangeOfPlayer ( playerid, giveplayerid ) ) { /* instructiuni */ } else { /* instructiuni */ } Sper ca ai inteles care e treaba cu return ...
  20. Vad ca e nevoie si de un critic negativ pe aici: Gireada, te lauzi singur, insa codul e praf: [pawn]new name[35];[/pawn] un nume are maxim 24 caractere ( MAX_PLAYER_NAME = 24 ) [pawn]public IsAnOwnableCar(vehicleid) { if(vehicleid >= gbuyablecars && vehicleid <= 1000) { return 1; } return 0; }[/pawn] Poate serverul are peste 1000 vehicule, ce se intampla atunci ? [pawn]new file[512];[/pawn] Cat de lunga poate fi calea catre fisier? Are 511 caractere? Variabila "pLoggedIn" ce cauta in scriptul asta? Ca nu faci nicio verificare, doar o incarci dintr-un fisier si este aproape permanent setata "true" [pawn]new name1[MAX_PLAYERS];[/pawn] La comanda "motor" pentru ce ai creat arrayul "name1" de marimea MAX_PLAYERS, cand 24 era de ajuns? ( tintem cont ca MAX_PLAYERS este egal , de obicei, cu 500 ) [pawn]new string[1024];[/pawn] La comanda "manual" ai creat acel array de 1024 cand 204+1 era de ajuns ( din nou ). [pawn] if(unformat(params, "s[3]", numar)) { SendClientMessage(playerid, 0xFFFFFFFF, "Foloseste: /setnumar <litere>(3)"); return 1; }[/pawn] Litere? Eu observ ca variabila numar e integer, deci s-a dus tot [pawn]strmid(VehInfo[carid][Numar], "DeVanzare", 0, strlen("DeVanzare"), 999);[/pawn] Variabila "Numar" este tip integer, deci nu vei putea stoca in ea un string. ( Pe intelesul tau, Gireada, nu se poate salva nr-ul de inmatriculare ) Daca scriptul este facut in totalitate de tine, cum se face ca exista functii / variabile cu denumirea atat in engleza, cat si in romana? Si sunt inca alte "n" probleme in asa-zisul script "al tau". Pe scurt, scriptul tau este un mare consumator de memorie.
  21. Sistem de factiuni Autor: RaZVaN ^ xD Informatii: Acest sistem de factiuni este unul static, adica factiunile nu pot fi create direct din joc. Sistemul de salvare este bazat pe SQLite. Procesorul de comenzi este ZCMD in combinatie cu sscanf2. De asemenea, pentru crearea de loop-uri eficiente am folosit foreach. Initial, am dorit sa creez doar un tutorial, insa m-am razgandit si am creat un filterscript-tutorial. Informatii veti gasi in codul-sursa. Are un numar mic de comenzi, dupa mine, cele mai importante pentru un astfel de filterscript: /angajeaza - Sintaxa: [ playerid / nume jucator ] /concediaza - Sintaxa: [ playerid / nume jucator ] /seteazarangul - Sintaxa: [ playerid / nume jucator ] [ rang ] ( Rangul trebuie sa fie cuprins intre 1 - 6 ) /falider - Sintaxa: [ playerid / nume jucator ] [ ID factiune ] ( ID-ul factiunii poate fi cuprins intre 0 - 10, insa poate fi modificat foarte usor ) /parasestefactiunea - Sintaxa: FARA SINTAXA /factiunechat ( /fc ) - Sintaxa: [ mesaj ] Bugs: Daca veti gasi vreo eroare in acest cod ( nu am idee ce eroare se poate gasi intr-un asa script ), postati aici sau trimiteti-mi un PM. Credite: SA-MP Dev. Team - SQLite Zeex - ZCMD Y_Less - sscanf2, foreach si DB_Escape RaZVaN ^ xD - Scriptare Download: [download]Pastebin[/download] ( doar codul-sursa ) [download]Solidfiles [/download]( .pwn + .amx + .INCs + plugins )
  22. Adauga si plugin-ul nativechecker si revino cu server.log .
  23. RaZVaN ^ xD

    SFC

    /mwlols ? Modul asta nu e facut de tine, poate putin modificat. Acest GM l-am mai vazut si acum 2 saptamani. Daca nu ma insel e eMAV RP edited by ASROCK.
  24. Gresit, unora poate le merge bine textdraw-ul, tot la fel altora poate sa nu le mearga textdraw-ul deoarece acel textdraw este facut la o anumita rezolutie, iar la alta rezolutie, acel textdraw poate sa nu mai apara exact peste bani.
  25. La GF, in 90% din cazuri, eroarea aceasta provine de la uitarea unei { sau }; ori punerea unei { sau } in plus.
×
×
  • 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.