Jump to content

Mister

Moderator
  • Posts

    1.886
  • Joined

  • Last visited

  • Days Won

    113

Everything posted by Mister

  1. Ha, nici macar nu stiu de unde e sistemul acela banuiesc ca de la rusi ceva, sistemul meu nu are nimic in comun cu acela inafara de nume care defapt este h1z1 am pus pubg pentru ca este mai cunoscut. Chiar crezi ca mi-as risca reputatia sa editez un sistem ca acela mie nu imi place sa lucrez pe edituri eu lucrez de la 0 ceva. Eu nici nu am textdrawuri ar fi facut lag dupa mine e mai simplu si frumos pe dialog Asa cum spune un intelept "Debugging is twice as hard as writing the code in the first place." Iar eu o spun in sensul de sisteme: Este de doua ori mai greu sa modifici un sistem sa il faci cum vrei tu decat sa il creezi de la 0. Deci de ce m-as complica, plus ca eu lucrez de placere in pawno nu de dragul de a copia si fura. Nu stiu cum trageti voi concluziile acestea daca eram un user cu 10 postari si 0 reputatie mai ziceai. Va rog sa nu sariti cu gura, daca doresti iti dau ip sa il testezi sa vezi ca nu am nimic din ce vezi in acele poze, cele 7000 de dropuri pe toata mapa sunt puse de mana mea salvate in joc deci nu iti bate joc de munca mea.
  2. Vand sistem BattleGround/ H1Z1. Sistemul este unic realizat in aproximativ 7 zile cu tot cu teste este functional 100% creat intr-un filterscript din care doar il mutati in gm pentru a putea folosi restrictiile de level si alte variabile necesare. Peste 6000 de obiecte in toate orasele: LS, LV, SF, Palomino Creek, Angel Pine, Blueberry, Fort Carson, Montgombery, Dillimore si orice alt loc de pe harta in care se afla o cladire. La aproximativ fiecare cladire/casa se afla drop in LS LV si SF sunt dropuri pe strada deoarece sunt multe prea multe cladiri si case pentru a pune la fiecare in parte. Includeuri necesare <zcmd> <foreach> <streamer> <OnPlayerPause>//pentru a fi scosi din meci in caz ca playerii stau afk in arena 42 vehicule 7026 de Dropuri: LS 2556 LV 2520 SF 1950 *Sistemul este un sistem inedit ce va captiva jucatorii si cred ca este primul de acest fel care il puteti cumpara Pretul este de 25EURO. Paysafe/ Paypall/ Transfer Bancar. Contact: https://www.facebook.com/scripting.pawn/ sau pm forum Ofer asa cum este si normal suport/ asistenta timp de o zi sau doua, in caz de nelamuriri buguri(nu am gasit), neintelegeri sau pentru montare in gm. Poze: https://imgur.com/a/rHlGc
  3. Ce doresti sa faca aceasta Comanda?
  4. nu stiu de ce pluginuri ai tu nevoie si ce versiuni doar te uiti ce pluginuri ai tu in folderul plugins si cand deschizi serverul pe localhost in consola scrie pluginul version si apoi cauti pe google si cand downloadezi arhiva ai si numeplugin.dll si numeplugin.so
  5. fisierele dll nu sunt necesare pe host pe linux mai exact ai nevoie de pluginurile cu extensia .so EDIT: in server.cfg ai nevoie sa pui la linia plugins numele pluginului si .so la final plugins streamer.so mysql.so sscanf.so
  6. arata comanda /gmats sau /gdurugs, pentru celelalte mafii merge comanda?
  7. Vei avea nevoie de ceva rabdare si pricepere dar poate iesi ceva frumos
  8. eu am luat din ultimul log pe care l ai postat, deci nu poti sa zici ca m am uitat gresit arata server cfg sterge rconpass si ce crezi tu ca nu trebuie sa aflam
  9. [18:47:22] CrashDetect must be loaded before 'streamer.so' Spune clar, in linia plugins trebuie sa ai crashdetect.so inainte de streamer.so
  10. Salutare, am si eu o problema la o variabila, ea este de tip string dar se pare ca mysql plugin o detecteaza ca pe integer enum factionvehs {fvOwner[30]}; new FVehInfo[200][factionvehs] cache_get_value_name(i,"Owner", FVehInfo[x][fvOwner]); iar in mysql error imi apare [09/22/17 18:58:12] [plugins/mysql] cache_get_value_name_int: value 'The State' is not a number Problema este ca pe windows tot nu imi citeste pe server variabila dar nu am erorile astea in errors.log doar pe linux sunt si sunt confuz Sunt sigur ca e ceva insignifiant ce imi scapa doar ca nu imi dau seama ce In baza de date EDIT: Rezolvat
  11. Noi suntem sa-mp.ro. Nu face reclama la alta comunitate, asta e foarte putini mai fac ceva original majoritatea copiaza si chiar daca nu o fac nu prea ii crede nimeni, sa nu ne abatem de la subiect este o prezentare a unui sistem de garaj de ce sa sarim cu gura.
  12. Recomand, baiatul este serios am avut o colaborare sa zic asa si mereu a fost punctual si serios.
  13. Trebuie sa folosesti textdrawtextsize pentru fiecare td in parte si sa gasesti marimile potrivite pentru a nu se suprapune ca in cazul de fata. Asta inseamna ca va trebuie sa compilezi testezi si iar sa modifici pentru ca nu cred ca vei nimeri marimea de prima data
  14. cand deschizi serverul scrie in consola mysql plugin loaded r3333x bla bla cat este iar la include il deschizi si citesti in el, dar degeaba pui aceeasi versiune de mysql la plugin si in include daca gmul este scris pe alta, logic si normal ar trebui sa ai r-39
  15. La dialogul de vehicule trebuie sa faci o variabila sa se atribui listitem+1 iar apoi aici unde ai tu aceasta functie getvehslot sa fie apelata acea variabila gen adauga in gm new vehslot[MAX_PLAYERS]; iar la dialogul dialog_vehicles atribui vehslot[playerid] = listitem+1; iar la new id = getvehslot(playerid,vehslot [playerid]);
  16. Eu asta am inteles ca vrei sa faci din ce ai cerut, functia merge adapteaza pentru dialogul in care ai functiile fiecarui vehicul
  17. Bun tu ar trebui sa adaugi codul acesta la DIALOG_VEHICLES if(response) // spawn { new id = getvehslot(playerid,listitem+1); new gString[200]; if(IsVehSpawned(id) == 1) return SendClientMessage(playerid, COLOR_ERROR, "Aceasta masina este spawnata."); SpawnVeh(playerid, id); format(gString, sizeof(gString), "Masina de tip %s s-a spawnat.", VehicleNames[vInfo[id][vModel]-400]); SendClientMessage(playerid, COLOR_ERROR, gString); }
  18. Posteaza comanda /v ca vad ca nu ai inteles ce am spus
  19. Din ce am vazut mai sus ai dialogul unde nu trebuie la comanda de /v sau cum ai tu, acolo tu arati un dialog cu fiecare masina iar dialogul modificat de mine trebuie sa aiba idul aceluia
  20. Verifica versiunea de mysql din plugin sa fie la fel cu cea din mysql.inc Si desigur verifica ca dupa ce ai pus ambele fisiere mysql.dll si mysql.inc din aceeasi versiune sa ai in gamemode #include <a_mysql> si sa compilezi
  21. tu ai si la response si la daca nu da response sa se spawneze toate masinile Adauga functia asta in gm getvehslot(playerid,slot) { new counth=0; for(new i = 0; i <= Total_Veh_Created; i++) { new gString[200]; if(strmatch(vInfo[i][vOwner], GetName(playerid))) { counth++; if(counth==slot) return i; } } return -1; } Iar la dialog modifici in asta if(response) // spawn { new id = getvehslot(playerid,listitem+1); new gString[200]; if(IsVehSpawned(id) == 1) return SendClientMessage(playerid, COLOR_ERROR, "Aceasta masina este spawnata."); SpawnVeh(playerid, id); format(gString, sizeof(gString), "Masina de tip %s s-a spawnat.", VehicleNames[vInfo[id][vModel]-400]); SendClientMessage(playerid, COLOR_ERROR, gString); } EDIT am omis ceva
  22. posteaza dialogul
  23. Am vazut ca este foarte cautat acest sistem deoarece cand cineva adauga ceva nou se iau cam toti dupa el asa ca m-am gandit sa va postez acest tutorial, desigur el va trebui configurat pe gmul vostru si "calibrat" pentru baza voastra de date si variabilele voastre de case. Sa incepem. In baza voastra de date veti crea un tabel nou numit garages, cu 2 variabile de tip integer si 3 de tip float cum este in imaginea de mai jos Acum in gm vom defini variabilele necesare: enum gInfo { gID, Float: gX, Float: gY, Float: gZ, gHouse } new GarageVariable[100][gInfo];//100 trebuie inlocuit cu numarul de case din joc new GarageNum;//numarul total de garaje care vor fi pe server new Text3D:GarageLabel[sizeof(GarageVariable)];//Textul pentru fiecare garaj in parte Acum vom crea publicul pentru incarcarea datelor din baza de date. forward OnLoadGarages(); public OnLoadGarages() { new Cache:resul = mysql_query(SQL,"SELECT * FROM `garages` ORDER BY `garages`.`ID` ASC"); new x,temp[144]; for(new i,j=cache_get_row_count();i!=j;++i) { x++; GarageNum++; cache_get_field_content(i,"ID", temp); GarageVariable[x][gID] = strval(temp); cache_get_field_content(i,"X", temp); GarageVariable[x][gX] = floatstr(temp); cache_get_field_content(i,"Y", temp); GarageVariable[x][gY] = floatstr(temp); cache_get_field_content(i,"Z", temp); GarageVariable[x][gZ] = floatstr(temp); cache_get_field_content(i,"House", temp); GarageVariable[x][gHouse] = strval(temp); } cache_delete(result); printf("%d Garages Loaded", GarageNum); return 1; } Iar la OnGameModeInit vom adauga simplu LoadGarages(); //iar sub el vom crea textul new textg[144]; for(new g=1; g<=GarageNum; g++) { DestroyDynamic3DTextLabel(GarageLabel[g] format(textg, sizeof(textg),"{FFFFFF}Garaj nr. %d\nOwner %s",g,HouseInfo[GarageVariable[g][gHouse]][hOwner]);//hOwner si HouseInfo va reprezante numele variabilelor din gamemodeul vostru GarageLabel[h] = CreateDynamic3DTextLabel(textg ,0x0066FFFF,GarageVariable[g][gX], GarageVariable[g][gY], GarageVariable[g][gZ],25, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100.0); } Pana aici am creat tabelul am incarcat datele din baza de date in variabilele din gm si am creat textul la fiecare garaj in parte. Mai departe vom crea comenzile Comanda de intrat si iesit din garaj CMD:garage(playerid, params[]) { new g=-1; new house = PlayerInfo[playerid][pHouse];// variabila playerului de casa pentur a putea folosi comanda if(house == 0) return SCM(playerid, COLOR_LIGHTRED, "You don t have a house."); for(new h = 1; h <= GarageNum; h++)// vom face o verificare peste toate garajele de pe server si vom vedea daca playerul se afla la intrarea acestuia { if(PlayerToPoint(5.0, playerid, GarageVariable[h][gX],GarageVariable[h][gY],GarageVariable[h][gZ])) g = h;// vom seta variaibla idul garqjului la care se afla playerul } if(GetPlayerVirtualWorld(playerid)==0) { if(g==-1) return 1;//daca variabila este -1 adica default inseamna ca nu este langa un garaj if(GarageVariable[g][gHouse] != house) return SCM(playerid,COLOR_LIGHTRED,"This garage is not yours");// verificam daca garajul apartine casei playerului if (GetPlayerState(playerid) == 2)//daca playerul este in masina { new tmpcar = GetPlayerVehicleID(playerid); SetVehiclePos(tmpcar, 1302.519897,-1.787510,1001.028259);//pozitia de garaj care am gasito eu SetPlayerInterior(playerid,1);// interiorul grajului LinkVehicleToInterior(tmpcar,1);//setam interiorul masinii SetVehicleVirtualWorld(tmpcar, g);//setam virtual worldul garajului pentru a sti unde sa iesim SetPlayerVirtualWorld(playerid,g);//la fel si pentru masina pentru a putea fi vazuta de playeri PutPlayerInVehicle(playerid, tmpcar, 0);//punem playerul inapoi ca sofer in masina SCM(playerid, COLOR_GRAD1, "Bun venit in garaj.");//trimitem un mesaj de bun venit } else//daca playerul este pe jos { SetPlayerPos(playerid, 1302.519897,-1.787510,1001.028259); SetPlayerVirtualWorld(playerid,g); SetPlayerInterior(playerid,1);// interiorul grajului SCM(playerid, COLOR_GRAD1, "Bun venit in garaj."); } } else { if(IsPlayerInRangeOfPoint(playerid,20,1302.519897,-1.787510,1001.028259))//coordonatele interiorului { if (GetPlayerState(playerid) == 2) { new tmpcar = GetPlayerVehicleID(playerid); SetVehiclePos(tmpcar, GarageVariable[GetPlayerVirtualWorld(playerid)][gX],GarageVariable[GetPlayerVirtualWorld(playerid)][gY],GarageVariable[GetPlayerVirtualWorld(playerid)][gZ]);// setam pozitia la coordonatele garajului care are idul egal cu virtual worldul playerului SetVehicleVirtualWorld(tmpcar, 0); LinkVehicleToInterior(tmpcar,0); SetPlayerInterior(playerid,0); SetPlayerVirtualWorld(playerid,0); PutPlayerInVehicle(playerid, tmpcar, 0); } else { SetPlayerPos(playerid, GarageVariable[GetPlayerVirtualWorld(playerid)][gX],GarageVariable[GetPlayerVirtualWorld(playerid)][gY],GarageVariable[GetPlayerVirtualWorld(playerid)][gZ]); SetPlayerVirtualWorld(playerid,0); SetPlayerInterior(playerid,0); } } } return 1; } Comanda de creat CMD:gcreate(playerid, params[]) { if(PlayerInfo[playerid][pAdmin] < 8) SCM(playerid, -1,"You don t have acces");// restrictia pentru admini daca aveti diferit veti schimba cum aveti voi in gm new house; if(sscanf(params, "d", house)) return SCM(playerid,COLOR_WHITE,"Folosire: /gcreate <houseid>");//se va scrie gcreate si idul casei care va fi asociat garajului new Query[256],Float:X,Float:Y,Float:Z; GetPlayerPos(playerid,X,Y,Z);// vom crea garagul la pozitia curenta de unde sa foloseste comanda mysql_format(SQL, Query, sizeof(Query), "INSERT INTO `garages` (`X`, `Y`, `Z`,`House`) VALUES ('%f', '%f', '%f', '%d')", X,Y,Z,house); new Cache:result = mysql_query(SQL, Query); GarageNum++;// vom creste numarul de garaje pe server new i = cache_insert_id();// acum vom genera idul din baza de date care nu este important in joc si nu afecteaza cu nimic, este doar pentru baza de date pentru a crea o ordine cache_delete(result); GarageVariable[i][gID] = i; GarageVariable[i][gX] = X; GarageVariable[i][gY] = Y; GarageVariable[i][gZ] = Z; GarageVariable[i][gHouse] = house; DestroyDynamic3DTextLabel(GarageLabel[i]); format(Query, sizeof(Query),"{FFFFFF}Garaj nr. %d\nOwner %s",i,HouseInfo[GarageVariable[i][gHouse]][hOwner]); GarageLabel[i] = CreateDynamic3DTextLabel(Query ,0x0066FFFF,GarageVariable[i][gX], GarageVariable[i][gY], GarageVariable[i][gZ],25, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100.0); format(Query, sizeof(Query), "Garaj creat cu succes. ID %d, coordonate (%f, %f, %f), casa %d.", i, X,Y,Z, house); SCM(playerid, COLOR_WHITE, Query); return 1; } Comanda pentru distrus garajul CMD:destroygarage(playerid, params[]) { if(PlayerInfo[playerid][pAdmin] < 7) SCM(playerid, -1,"Admin to low"); new i; if(sscanf(params, "d", i)) return SCM(playerid,COLOR_WHITE,"folosire /destroygarage <id>"); new Query[200]; GarageVariable[i][gX] = 0; GarageVariable[i][gY] = 0; GarageVariable[i][gZ] = 0; GarageVariable[i][gHouse] = 0; format(Query, sizeof(Query), "DELETE FROM `garages` WHERE `ID`='%d'", i); mysql_query(SQL ,Query); DestroyDynamic3DTextLabel(GarageLabel[i]); SCM(playerid, COLOR_GOLD, "Garage destroyed"); return 1; } Comanda pentru mutat garajul CMD:movegarage(playerid, params[]) { if(PlayerInfo[playerid][pAdmin] < 7) SCM(playerid, -1,"Admin to low"); new i; if(sscanf(params, "d", i)) return SCM(playerid,COLOR_WHITE,"folosire: /garagepos <id>"); new Query[200],Float:X,Float:Y,Float:Z; GetPlayerPos(playerid,X,Y,Z); GarageVariable[i][gX] = X; GarageVariable[i][gY] = Y; GarageVariable[i][gZ] = Z; format(Query, sizeof(Query), "UPDATE `garages` SET `X`='%f',`Y`='%f',`Z`='%f' WHERE `ID`='%d'",GarageVariable[i][gX],GarageVariable[i][gY],GarageVariable[i][gZ], i); mysql_query(SQL ,Query); DestroyDynamic3DTextLabel(GarageLabel[i]); format(Query, sizeof(Query),"{FFFFFF}Garaj nr. %d\nOwner %s",i,HouseInfo[GarageVariable[i][gHouse]][hOwner]); GarageLabel[i] = CreateDynamic3DTextLabel(Query ,0x0066FFFF,GarageVariable[i][gX], GarageVariable[i][gY], GarageVariable[i][gZ],25, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100.0); SCM(playerid, COLOR_GOLD, "Garage moved"); return 1; } Si mai sunt 2 scripturi de adaugat la comenzile de cumparat si vandut casa for(new g=1; g<= GarageNum; g++) { if(GarageVariable[g][gHouse]==house) { DestroyDynamic3DTextLabel(GarageLabel[g]); format(Query, sizeof(Query),"{FFFFFF}Garaj nr. %d\nOwner %s",g,HouseInfo[GarageVariable[g][gHouse]][hOwner]); GarageLabel[g] = CreateDynamic3DTextLabel(Query ,0x0066FFFF,GarageVariable[g][gX], GarageVariable[g][gY], GarageVariable[g][gZ],25, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100.0); } } Si cam atat pentru acest sistem de dificultate medie as spune eu. Nu este chiar un tutorial as spune pentru ca este prea de a gata totul, iar la filterscripturi nu se putea incadra de aceea l-am postat aici. Daca sunt greseli in tutorial gramaticale sau de script voi remedia, sper ca va este de ajutor si il veti folosi.
  24. la primul dialog ai asta new i = SelectedCar[playerid] ei bine tu mai departe ai peste tot PlayerInfo[playerid][pCarID] iar aceasta este o matrice, tu ai nevoie de un tablou tridimensional adica trebuie sa mai adaugi [integer] deci vei inlocui peste tot PlayerInfo[playerid][pCarID] cu PlayerInfo[playerid][pCarID] pentru ca tu ai nevoie de i este variabila SelectedCar[playerid]
  25. Vina mea inlocuieste cu KEY_WALK acel key_fire http://wiki.sa-mp.com/wiki/Keys
×
×
  • 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.