Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 03/07/2020 in Posts

  1. 2 points
    Salutare baietii, stand la incarcari si descarcari, plictiseala si-a facut de cap asa ca va las si eu un Vortex Roleplay trecut la versiunea MySQL r41-4. Nu are rost sa va mai fac o descriere pentru ca majoritatea dintre voi cunoasteti acest mod. Precizez ca nu am facut nimic altceva decat sa il trec la versiunea MySQL r41-4 plus cateva modificari. Nu exista comenzi ascunse sau alte magarii de genul, il postez pentru unii dintre voi care vor sa isi faca propriul #edit. Arhiva NU contine fisiere de tip EXE. Vortex RolePlay.rar
  2. 2 points
    Serverul detine urmatoarele sisteme: Rainbowcar Stage Quest de fotografiat se reseteaza zilnic. (/startquest, /stopquest, /questmap) Vehicle Crate, Skin Crate Clan vehicles Apartamente AirGift odata la 30 min Job Owner Arena de PUBG Garaje personalizate la casa Ruleta Blackjack /roll /getgift Bitcoin + multe altele Download: https://www.mediafire.com/file/2zrrywjv3p0f5xl/Gamemode_wlg_+_panel_(_terone_edit_).rar/file Virustotal: https://www.virustotal.com/gui/file/6f4e88423f178e5ed5c40bc2b66a244f92a3f05ae128f8f5ca816d0a71f417a5/detection Se compileaza cu sublime: http://www.fileshare.ro/e3427153738 Intri un Run, scrii %appdata%, il adaugi acolo, dar inainte sa modifici la \Packages\User -> Pawn.sublime-build (pui locatia folderului tau)
  3. 2 points
    "Buenos dias", de "KEY_SECONDARY_ATTACK" ce zici? Am vazut 90% din GM-uri care au loop la case/biz/locatii cu peste 500 "IsPlayerInRangeOfPoint", ce se intampla la 200+ jucatori cand toti folosesc tasta F/Enter pentru a intra/iesi din vehicul, sau orice alta activitate? Luati aminte. Bun tutorial, 80% din script-urile de pe wiki/SA-MP Forum (strain, nu asta) n-au nici o treaba cu optimizarea.
  4. 2 points
  5. 2 points
    Salutare ! Am decis sa redeschid comunitatea si serverul rpg.treed.ro si am nevoie de scripter si de administrator !! Multi cred ca a ti auzit de acest server fiindca a fost destul de populat .... Acum 2 ani din lipsa de timp si ne'fiind in tara, nu am mai avut timp de aceasta comunitate si de server !!! De data asta nu va mai fi inchise nici serverul, nici comunitatea ! Cel ce doreste sa mi se alature, nu trebuie sa vina cu nici un ban.. Doar cu cunostinte scripting si seriozitate Astept scripter / partener ! Ma puteti contacta in privat sau pe facebook ! https://www.facebook.com/ivan.george.923
  6. 2 points
    Salut. Numele meu este Synthetick, activez în ”lumea” SA:MP-ului de câțiva ani buni, pentru cei ce nu mă cunosc am avut câteva realizări în spate (plus reputația de pe alte comunități). Mă rog, nu are rost să intrăm în detalii aici. Cu ce m-am remarcat până acum? câteva proiecte de succes moduri de joc stabile (pe care desigur nu le-am făcut publice). (NU MAI DEȚIN NICIUN MOD DE JOC ÎN PC). personalitate, încredere. Ce pot oferi?: crearea oricărui fel de sistem (folosind cele mai bune librării, scris curat) ; optimizarea modului tău de joc; rezolvarea probelemor / bugurilor raportate ; rezolvarea potențialelor erori din modul tău de joc. Ce metode de plată accept? PaySafeCard Skrill Ltd. PayPal Contact?: Discord: Synthetick#4665 Portofoliu: nu mai am absolut nimic legat de PAWN în PC sau pe YouTube, însă cei care mă cunosc și îmi cunosc stilul de lucru pot lăsa un comentariu aici, vă mulțumesc.
  7. 2 points
    Se cauta testeri pentru un server de samp. Detalii pe forum : http://forum.enders.ro/
  8. 2 points
    nu e asa de frumos sa ii vinzi munca lui tukson cu o mica modificare, macar pastreaza pentru tine
  9. 2 points
  10. 2 points
    Faci acelasi lucru care il faceai si acum 9 ani sau cand ziceai tu. Astea sunt chestii care nu se uita, ca mersul pe bicicleta.
  11. 2 points
    Daca nu ai gasit te pot ajuta, am o experienta destul de mare, daca ai jucat pe pronion, gf zone, inseamna ca esti de pe vremea mea, Mortal quit s.a.m.d. Astept un raspuns, cunosc pawn de vreo 9 ani.
  12. 2 points
  13. 1 point
    Te cred... ======================== Puneti Pickup la orice intrare, folositi-va de "OnPlayerPickUpPickup" (este declansat cand sunteti in aprox. 2m* in preajma pickup-ului, nu cand intrati in el neaparat) si 2 variabile, setati ID-ul Pickup-ului in functie, pentru cealalta variabila aveti in vedere (CreatePickup) si setatii un ID unic sa stiti care locatie este si unde trebuie sa intre jucatorul. Folositi-va dupa de un "switch" in "KEY_SECONDARY_ATTACK" si ati facut acest sistem de intrare/iesire din locatii foarte folosit, cu 90% mai rapid. Pentru iesire se poate ceva asemanator, fara pickup necesar neaparat.
  14. 1 point
    Posibil sa ai la OnPlayerStreamIn ceva ce blocheaza, sterge tot de acolo si de la OnPlayerStreamOut si verifica dupa.
  15. 1 point
    Nu te cunosc pe tine dar +1, fondatorul este de nota 10 si serios.
  16. 1 point
    Salutare! Caut un partener sau Scripter cu care sa deschid un server de samp. Dorinte sau Cerinte: Sa fie intelegator, Sa stie sa scripteze, si sa nu isi bata joc. Mai multe detalii dati pm si va explic mai detaliat! Multumesc!
  17. 1 point
    Tare, incearca sa opresti sunetul de pasi cand merg, nu isi are rostul mai ales ca ei nu merg da mai urat, in rest nota 10.
  18. 1 point
    Ceea ce ai inceput e chiar foarte fain. Eu zic ca atat timp cat faci ceea ce iti place de ce nu?
  19. 1 point
  20. 1 point
    Multa baftă la proiect fratimiu , te pupa Marlboro ❤
  21. 1 point
    PARTAJARE PE DISCORD :))))
  22. 1 point
    verifica daca ai toate includeurile, in caz ca nu le ai punele pe toate in folderul cu pawno > include
  23. 1 point
    Nici 40% b-zone nu e dar 95 pfaai unde ati ajuns ma
  24. 1 point
    Acel pool size nu este numarul de query-uri, este numaru de thread-uri. Nu recomand sa pui valoare foarte mare, eu as zice undeva la jumatate din numarul de core-uri de la procesor sau o valoare egala cu numarul de core-uri.
  25. 1 point
    Sincer, nu mi-am pus problema asta pana acum. Ca si deductie, da doar cat suporta si restu posibil sa fie puse in asteptare. Adica ar merita incercat ca si test care ar fi comportamentul, ca limita depinde strict de pc. Desi in sa-mp e ireal sa ai prea multe query paralele, in cel mai rau caz sa ai 2-3 query de la fiecare player desi sunt executate destul de rapid chiar si cand baza/query sunt prost optimizate
  26. 1 point
  27. 1 point
    @Andrei Liviu pe asta poti sa-l iei ca e de la mine din oras, il aranjez eu in caz de stricare. :))) :*
  28. 1 point
  29. 1 point
    Cu Tab pentru a le da in fata, si cu SHIFT+TAB pentru a le da in spate.
  30. 1 point
  31. 1 point
    Caut un partener serios cu care sa deschid un server de samp. Trebuie sa stie cat de cat sa scripteze. Vreau sa facem un edit blana. P.S : O sa scriptam amandoi. Daca gamemode-ul o sa fie frumos, serverul o sa-l platesc eu, iar promovarile la fel. Astept pm pe discord : MarioGeorgescu#2806 Doresc sa precizez ca am deja comunitate deschisa cu un baiat. Am nevoie de cat de un partener / scripter cu care sa facem un gamemode stabil si sa deschidem un server de samp.
  32. 1 point
    Super descrierea, denumeste cateva proiecte, ar arata mai frumos +1.
  33. 1 point
  34. 1 point
    Super descriere, sper sa iti iasa totul perfect, succes.
  35. 1 point
    Ai dreptate,insa gm-ul pe care il fac e unic in Romania si multi sunt voluntari in treaba asta,si da e chiar unic in RO,cand ai timp intra pe server.
  36. 1 point
    Nu merita nici 3 euro...
  37. 1 point
  38. 1 point
    Ti-am lasat eu in PM link.
  39. 1 point
    Cu placere, cu comanda /editvehicle asta daca masina apartine unei factiuni deja, daca nu intri in baza de date si cauti 'svehicles' si dai la ultima masina din acea structura numita 'svehicles' si dai copy si editezi 2-3 numere din coordonate ca sa nu fie una in alta cand se spawneaza si dai restart la server, dar cu blocarea cand intri sau iesi dintr-un interior etc... cauti 'SetPlayerFreeze' si stergi de unde nu vrei sa se mai activeze
  40. 1 point
    bro, un alt link pentru baza de date? pls
  41. 1 point
  42. 1 point
    BristonGOV Acest server a fost creat cand: @Sealand123 a decis sa faca un server de RP-RPG asa ca a apelat la mine, eu fiind bun prieten cu el.Am inceput de la 0 si am ajuns zic eu departe,el a venit integral cu partea de idei si eu partea de scripting.Ne-am gandit ca joburile atractive si numeroasele locuri unde playerii sa se recreeze ii vor aduce pe server,ceea ce nu prea s-a intamplat poate si din cauza noastra.GM-ul are scripturi unice facute cu mult cap si as dori ca multi sa se foloseasca de ele deoarece sa recunoastem marile servere si in general toate GM-urile de samp sunt simple, bazandu-se pe factiuni si joburi ceea ce ii poate atrage doar pe playerii experimentati,nu si pe cei care nu au mai jucat samp.Am dorit ca oricine intra pe serverul nostru sa aiba ce sa faca:sa se joace biliard,baschet, sa mearga in drumetii pe Chilliad si la poalele muntelui etc. Pe server se afla numeroase chesti unice sau aproape unice:Biliardul,Fotbalul,sistemul Politic(parlament,guvern,presedinte),Iphone-ul,Y-ul la lspd ca in GTA IV, Pentagonul, Telegondola, etc. Le-am numerotat pe cele mai importante,dar serverul detine numeroase sisteme.Sa va zic care a fost ideea lui @Sealand123 el a dorit ca Presedintele sa fie ales de playeri la fel ca Parlamentul ,el sa aleaga Primul-Ministru care sa-si faca o echipa si sa fie acceptata de parlament.Ministri gen Aparare sa aleaga liderul NG,cel de Interne liderul LSPD etc si sa supervizeze activitatea factiunii....lucruri destul de complicate....dar am vrut sa fie diferit. Am muncit mult la el(cearta multa,nervi etc) sper sa ne apreciati munca sau macar sa o respectati pentru ca am vrut sa facem ceva diferit.As vrea sa multumesc tuturor pentru ca jucati si activati pe aceasta minunata comunitate: SAMP. De ce postez acest gm? Ne-am hotarat sa il postam pe net in urma unei vanzari, pentru ca asa cum stiti in urma unei vanzari acesta apare pe net dupa un timp, Asa ca ne-am hotarat sa il postam noi inaintea altora si sa ai ce face pe samp nu doar sa muncesti. Decat sa faca altii bani de pe urma muncii noastre, mai bine sa il aiba free pe net In plus m-am apucat de un nou proiect si oricum trebuia sa il posteze cineva pana la urma. ============================================================================================= Gamemodul este RPG contine 17 factiuni: 5 guvernamentale 3 politice 2 pasnice 6 mafii si Hitman LSPD National Guard FBI CIA Navy Seal Agentia Prezidentiala Parlamentul Guvernul Hitman News Reporter Taxi Cab Rifa Gang Triads Mafia Bratva Mafia Ballas Gang Seville Gang Corleone Mafia Joburi: Detectiv Avocat Bodyguard Paramedic Sweeper Boxeur Mechanic Transportator Paperboy Pizzaboy Taietor de iarba Pompier Barcagiu Lumberjack Sofer de autobuz Ilegale: Tarfa Dealer de droguri Spargator de masini Fermier de droguri Dealer de arme Server Contine: Case dinamice care se pot edita in joc Bizuri care se pot edita in joc Porti pentru factiuni sau case care se creaza si editeaza in joc Atm-uri care se pot crea in joc Rpg panel clasic Dealer expozitie, unde masinile pot fi adaugate(sunt expuse iar un player se urca iar prin comanda /buycar comanda o masina in port) Maping peste tot pe server Peste tot am incercat sa reformam samp-ul cu idei noi Am adaugat Pentagounl care are CIA si FBI Pe Chilliad se afla o statiune cu spa si telegondola La stadion se afla un sistem de fotbal in care echipele au golurile contorizate pe tabela de marcat Sistem de biliard intre doi jucatori I.T. Shop unde poti cumpara cartela, iphone si casti pentru radio Lista de prieteni care poate fi gasita la /iphone Sistem selfie Sistem paintball avansat Exista 3 sBizzuri de benzinarii (Going Xommer si Gaso) benzinariile sunt impartite in orase incat profitul sa fie acelasi Sistem de GPL pentru masina care permite sa treci pe gas daca ramai fara combustibil sau pentru a iesi mai ieftin Sistem de leasing la dealer(Daca nu ai bani pentru pretul full vei cumpara in rate, la payday platesi o suma mica pana ajungi la valoarea intreaga a masinii) Frana de mana la masini pentru a nu putea fi inpinsa de playerii masina Sistem de artificii si petarde colorate, luminoase, pocnitori sau fumigene Sistem de frizerie unde poti alege 4 feluri de frizuri In fiecare oras este o mafie si un Gang pentru a fi in echilibru de teritorii Sistem de war pe teritorii cu scor timp de 10 minute Gps cu sageti si distanta Joburi unice si noi Sistem de panel pentru pd ca in gta iv cu suspecti, jailed, radar, backup, si somare Sistem de BlackMarket un GunShop unde nu ai nevoie de licenta de arma dar in care vei primi wanted daca vei fi prins cu armele ilegale Sistem de servieta in care iti poti tine armele ascunse sau pe spate Sistem ochelari Sistem de ninsoare si mapping care poate fi introdus Avion catre Liberty city unde se gasesc sanii Sistem rulota in care dai g si esti intr-o camera si poti calatori oriunde Sistem de pd un skin pentru duty si acelasi off duty doar ca fara uniforma de politsti Sistem /equip la politisti Sistem sirena pentru politisti Taer avansat cat si pentru masini Grade pe spate pentru politisti la fiecare rank Taguri de spray pentru ganguri cu nume 2 barci cu care te poti pliba Interiore care se vad afara (PD si NR cu lift) Kilometraj unic Sistem afk pentru admini Loguri pentru factiuni care se pot sterge in joc de la admin Cabinet pentru mafii si gang-uri Sistem carcode pentru masinile personale si factiuni(/carcode codul pentru a porni) Sistem decodor care poate sparge codul masinii Sistem casino in care poti castiga jackpot sau premiul cel mare Didier sachs victim prolaps zip Clothes si Binco pentru haine(skinuri) Sistem ivn pentru admini Sistem spawn masini pentru eventuri Sistem sif pentru factiuni Sistem refferal (la o ora jucate vei fi intrebat cine te-a adus pe server playerul va primi +1) Sistem safezone in anumite locuri Sistem bancar si transfer cu Dobanda Sistem anticheat destul de bun in fiecare oras stadion cu masini de derby respectiv monster, sandking, sanchez, hotring pentru curse Dmw frumos pentru toate licentele Sistem VIP Si YENI(Puncte premium) si shop premium Si multe altele Voi face update daca imi aduc aminte ce mai este [Hide] Video-uri : https://www.youtube.com/channel/UC_0Qf4cmr1LeTwZX5N3iRFw Poze: http://imgur.com/a/e4pLf Pagina: https://www.facebook.com/BristonGov/?fref=ts Server: https://www.dropbox.com/s/k72xl09d5oqegra/Briston%20GOV%20R39-3.rar?dl=0 Parola: bristongovserver VirusTotal: https://www.virustotal.com/en/url/b4e85c6acbe098d93a662900893547178259ee6eb6800a97682bf16633053c83/analysis/1454005644/ Panel: https://www.dropbox.com/s/c4esj88rdd9tiyt/Briston GOV Panel.rar?dl=0 Parola: bristongovpanel VirusTotal: https://www.virustotal.com/en/url/4a359d51c2c60c2d51b3356a82156875b7d06bae7d72b19284590a3e4d6f90aa/analysis/1454005705/ Pagina Oficiala IN CAZ CA VETI VREA VREODATA SA MULTUMITI ADEVARATILOR CREATORI https://www.facebook.com/BristonGov/?fref=ts Pagina de contact personal: https://m.facebook.com/scripting.pawn/ [/hide] ============================================================================================= Primul topic in care l-am vandut si am facut descrierea este si aici in topicul de vanzare, Daca il gasiti pe un server, sa stiti ca este munca mea si a lui @Sealand123 -Daca nu stiti cat de cat limbajul pawn, va sugerez sa nu il downloadati -Nu ofer suport decat contracost, daca nu stiti sa il porniti mai bine nu il downloadati Edit : VREAU SA INTELEGETI AM POSTAT GMUL PE NET SA NU MAI FACA ALTI BANI DE PE URMA LUI ASTA E SINGURA VERSIUNE NU DATI BANI NIMANUI CA ARE O VERSIUNE MAI BUNA SAU COMPLETA PENTRU CA NU EXISTA!
  43. 1 point
    Ce scripter care stie cu ce se mananca pwn si stie ce e ala un string de 128 si stie cum se calculeaza tot rahatul asta si sunt o multime de exemple isi v-a bate capul sa faca un gamemode de la 0 pt 100 de euro amarati? :))) "Coetari" care stie sa adauge un sistem de pe gm burnet pe un gm big zone gasesti cu nemiluita. Fratele @sMok3 ;x ia si baga mana in buzunar si contacteaza un scripter care are reputatie nu toti puradeii de 14 ani.
  44. 1 point
    Bine frate dar cand o sa sti cu ce se mananca pawn sa vorbesti cu mine
  45. 1 point
  46. 1 point
    si el munceste degeaba?face ce vrea cu munca lui, eu sper sa l vanda.
  47. 1 point
    UN COMMENT PREA BUN DIN 2017 PANA CAUM.
  48. 1 point
  49. 1 point
    Tu te auzi? Nu stii absolut nimic, darkness are propriul lui gm de la 0 care este pe modular, ci nu acest gm, acest gm e editat de catre mine 100%, am fost ultimul scripter bigzone, am mai adus un scripter care a pus gm-ul pe net, apoi l-a sters, darkness nu mai are nici o treaba cu gm-ul, nu mai vorbi fara sa cunosti
  50. 1 point
    Salutare, astăzi vreau să discut cu voi nişte lucruri legate de optimizarea unui GM şi tot în acelaşi timp cum să faci lucrurile mai simple în GM. Q: Mai simple? Cum mai simple? A: Urmăreşte-mă şi vei află. În primul rând să discutăm despre optimizare. Optimizarea este esenţială pentru un GM, adică reduce timpul de execuţie a unei/unor functi. Q: Bun, şi dacă îl reduce ce? A: În timpul de executare a unei/unor funcţii lagul va creşte, şansă de crash devine mai mare şi nimeni nu e mulţumit. Dacă optimizăm, timpul de lag va fi redus substanţial cea ce scade şansă de crash. Q: Dar lagul acela de ce se produce? A: Că să înţelegeţi mai bine imaginativă un calculator mai vechi, cu componente slabe de genu: 1 GB ram , placă video 64 , procesor AMD 2.0 GH. Acum ganditiva că el lucrează. cu cât deschizi mai multe programe cu atât funcţionează din ce în ce mai greu , până se blochează. Acum imaginativă un calculator mai bun de genu 4GB ram , placă video 1GB, procesor i3 şi punetil să ruleze aceleaşi programe. Cu siguranţă veţi observă diferenţa şi anume că se mişcă mai rapid la acele programe şi nu se mai blochează aşa de repede. Aşa ceva este şi cu GM-ul. El trebuie să gândească în acelaşi timp ce face fiecare player în parte. Dacă GM nu este optimizat atunci clientul(adică voi) de a se bloca(crash) este mai mare. Acum că am lămurit aceste aspecte haideţi să discutăm despre cum putem face un GM mai optim şi totodată introducem şi simplitatea. Mai întâi voi începe cu sistemul de stocare a datelor MYSQL. MYSQL Observ că mulţi se plâng că nu mai sunt GM-uri pe ini(dini, yini sau alte derivări ale acestuia).Dacă tot am pomenit de derivările lui ini, pentru cei care nu ştiu sistemul de stocare a datelor ini este cel care crează un fişier .txt în scriptfiles>user(account/conturi/akk/etc). Dini, yini şi mai sunt câteva derivări sunt pentru a face puţină parformantă, adică să fie creat fişierul .txt mai rapid. Ok , am lămurit şi acest aspect, acum hai să facem diferenţa mai întâi între ini şi mysql.Mai există şi SQLLite, dar habar nu am cu ce se mânca ăla... Mysql este în momentul actual cel mai rapid şi mai de folos sistem de creare a datelor. Este cel mai avantajos dintre toate, iar conturile sunt într-o deplină siguranţă. Q: Ok , şi ce treaba are cu siguranţă conturilor? A: Hai să va zic ce mi să întâmplat mie personal după un restart. Eram pe un server de să-mp, şi numai văd că se da restart la server, eu aveam nivelul 5 , aveam 2.000.000 $ , 2 maşini, totul bine şi frumos , dar după ce să dat restart , mă văd că trb să mă înregistrez din nou, singurul de pe server, m-am înregistrat şi văd că am lvl 1 şi cele 2 maşini, iar ceilalţi nu aveau contul afectat. La mysql nu să întâmplat nici odată această. Am zis că e şi mai rapid. Da este mult mult mai rapid decât ini , deoarece un cont pe mysql poate fi creat în baza de date într-un interval scurt de timp (0.0001-0.0010 secunde, tastaţi o comandă şi vedeţi timpul de execuţie dacă nu mă credeţi), iar la dini este undeva la 0.1 - 0.9 secunde , poate ajunge dacă este lag pe server chiar şi la 1 - 1.3 - 1.5 secunde. Personal cred că este şi mai uşor de folosit. La mysql trebuie să fi atent la query-uri, pentru că ele trimit în baza de date informaţiile, în rest conturile se verifică cu if(Rows)- adică dacă se găsesc rânduri la acel cont, la dini de exemplu se verifică cu if(dini_Exists(file)) şi , personal mă bucur că e mai greu de făcut legătură cu baza de date, deoarece nu tot puştiul poate să-şi deschidă server. Acum să vorbim despre procesoarele de comenzi. ZCMD(cel mai cunoscut) şi altele Văd că încă se foloseşte strcmp pe unele GM-uri. STRCMP este extrem de lent. STRCMP este o funcţie ce verifică mesajul din chat. Adică, uitaţi cum arată o comandă pe strcmp: if (strcmp("/mycommand", cmdtext, true, 10) == 0) - verifică dacă a fost scris /mycomand. Aici intervine zcmd, care e are 2 avantaje. Aici se poate spune de simplitate, adică e mai simplu să scri CMD:mycomand(playerid,params[]) decât if (strcmp("/mycommand", cmdtext, true, 10) == 0) , clar e mult mai simplu de scris. Acum , haideţi să va vorbesc de ce strcmp e mult mai lent. Să zicem că eu am 100 de comenzi pe strcmp. Eu folosesc ultima comandă, adică comandă cu numărul 100. STRCMP verifică 99 de comenzi şi când ajunge la a 100-a se aplică. În timp ce se verifică se produce lag, într-adevăr , lag-ul ăla se nu e vizibil , dar el există. ZCMD e conceput să fie mai rapid. El foloseşte CallLocalFunction cea ce "se aruncă" direct în comandă şi nu stă să verifice cele 99 de comenzi , cea ce e vizibil mai rapidă comandă la executare. Acum există nenumărate procesoare de comenzi LIFE-CMD MCMD(cel mai rapid la ora actuală), aceste procesoare au nevoie de plugin, iar în pluginul respectiv, este folosit memory hack, cea ce îl face mult mai rapid decât zcmd, dar e puţin vizibil ochiului că e mai rapid , dar că lag, e redus substanţial. SSCANF Când vorbim de sscanf putem spune clar simplitate în folosire. Sscanf este un strtok dar cu mai multe atribuiri şi este mult mult mai rapid în verificare. Am să va dau o comandă care foloseşte strtok să vedeţi şi cum se foloseşte. CMD:givemoney(playerid,params[]) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /givemoney [playerid/PartOfName] [money]"); return 1; } new playa; new money; playa = ReturnUser(tmp); tmp = strtok(cmdtext, idx); money = strval(tmp); if (PlayerInfo[playerid][pAdmin] >= 1339) { if(IsPlayerConnected(playa)) { if(playa != INVALID_PLAYER_ID) { GivePlayerMoney(playa, money); } } } else { SendClientMessage(playerid, COLOR_GRAD1, "Nu esti autorizat sa folosesti aceasta comanda"); } } return 1; }Vedeţi voi, în comandă există 2 strtok-uri şi acele strtok-uri se leagă şi de strlen. Strtok-ul , în comandă are atribuţia de a îi pune un parametru, în cazul nostru, la comandă de mai sus, avem 2 parametri şi anume "playerid/PartOfName" şi "money". Ele sunt definite în felul următor cu strtok: tmp = strtok(cmdtext, idx); - face legătură cu money, adică pune că parametru şi money(suma de bani pe care o atribuim) playa = ReturnUser(tmp); - transformă playa în jucător, adică oricare playa este jucător(playa este ţintă, persoană pe care aplicăm comandă) tmp = strtok(cmdtext, idx); - cu strtok îl definim că parametru în comandă money = strval(tmp); - cu strval money este definită că număr. Deci avem nevoie de 4 functi pentru o comandă simplă. Pare inutil să le scri , dar sunt esenţiale şi fără ele nu poţi face comandă corectă, mai ales că trebuie să transformăm definirile în valori playa - jucător, money - suma de bani şi să le facem că parametru. Aici intervine sscanf care e mult mult mai simplu de folosit şi mai rapid, adică noi transformăm definirile în valori şi totodată le facem şi parametri. Putem face în felul următor comandă, în loc să scriem atât o simplificăm şi o şi optimizăm. CMD:givemoney(playerid,params[]) { if(IsPlayerConnected(playerid)) { new playa, money; if(sscanf(params,"ud", playa, money)) return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /givemoney [playerid/PartOfName] [money]"); if (PlayerInfo[playerid][pAdmin] >= 1339) { if(IsPlayerConnected(playa)) { if(playa != INVALID_PLAYER_ID) { GivePlayerMoneyEx(playa, money); } } } else { SendClientMessage(playerid, COLOR_GRAD1, "Nu esti autorizat sa folosesti aceasta comanda"); } } return 1; }Acum să analizăm. Noi avem parametri următori, eu vii prezint pe cei mai folosiţi: s - String(sir de caractere, sau mesaj) i, d - Integer(sau numar intreg) -> 1, 42, -10 c - Caracter -> a, o, * l - Logical -> true, false b - Binary -> 01001, 0b1100 h, x - Hex -> 1A, 0x23 o - Octal -> 045 12 n - Numar -> 42, 0b010, 0xAC, 045 f Float(numar cu virgula sau pozitie) -> 0.7, -99.5 u Username(Nume jucator sau id jucator) -> WiDuAlK(numele), 0(id-ul meu) Bun şi acum să analizăm situaţia următoare: new playa, money; - eu am definit 2 lucruri: playa - care vreau să fie playerul şi money - care vreau să fie suma de bani pe care o atribui. if(sscanf(params,"ud", playa, money)) sscanf - funcţia (params - vine de la CMD:givemoney(playerid,params[]), dacă folosiţi strcmp, cea ce nu va recomand, în loc de params puneţi "cmdtext" din funcţia if (strcmp("/givemoney", cmdtext, true, 10) == 0) "ud", playa, money - fac 2 chestii 1 definesc valorile : "u" i se atribuie lui playa, "d" i se atribuie lui money, dacă era "ud", money, playa "u" i se atribuia lui money iar "d" lui playa. Deci revenim, această funcţie if(sscanf(params,"ud", playa, money)) este exact că funcţiile menţinute mai sus, adică : playa = ReturnUser(tmp); money = strval(tmp); deci respectivul "u" îl transformă pe playa în jucător, iar respectivul "d" îl transformă pe money în număr întreg. Tot în acelaşi timp, transformă cele acele 2 definiri în condiţi pentru comandă , adică dacă nu scrie /givemoney Widualk/0(id meu) 1000(suma de bani) să îi dea mesaj cu parametri comenzii. Totodată sscanf verifică dacă a scris parametri , nu doar îi transformă, deci if(sscanf(params,"ud", playa, money)) verifică dacă sau scris greşiţi parametri şi îi returnează un mesaj cu ei, sau cu ce vreţi voi. Că o concluzie la sscanf , ea are mai multe atribuţii , e şi simplă şi elegantă şi optimă şi ce vreţi voi. Deci e recomandabil să îl folosiţi la orice GM. Foreach Foreach-ul , este că un loop rapid. Loop-ul arată ceva de genu: for(new i = 0; i < MAX_PLAYERS; i++) , adică i să fie egal cu toţi jucători, adică să atribuie o funcţie tuturor jucătorilor. de genu: for(new i = 0; i < MAX_PLAYERS; i++) { GivePlayerMoney(i,100); } sau for(new i = 0; i < MAX_PLAYERS; i++) { GivePlayerWeapon(i,46(id arma),1(nr de munitii/gloante)); }Acest "i" creşte de la 0 şi ajunge la nr playerilor conectaţi pe server, adică dacă voi aveţi 46 de playeri pe server, i = 46, dacă voi aveţi 600 playeri, i = 600 şi se atribuie la toţi 600 nu doar unuia. În timp ce creşte i la nr max de playeri, adică se verifică playeri conectaţi, apoi creşte, se face într-un timp , pe care noi nu îl vedem , dar el există şi timpul acela, bine înţeles este încărcat cu lag. Aici intervine foreach şi prin simplitate şi pentru că este şi mai rapid, deci simplu pentru că scri aşa: foreach(Player, i) în loc de acel cod mărişor şi include-ul foreach este structurat să fie mai rapid decât loop-ul normal, deci timp de lag scăzut. Streamer Streamer este un include, care depinde şi de plugin . Şi cam atât pot să va zic... Glumesc , cu streamer poţi introduce obiecte în joc. Cu funcţia CreateObject poţi introduce doar 1000 de obiecte, deci voi puteţi pune 2000 de obiecte, dar primele 1000 le va citi. Streamer nu are limita şi poate fi configurat că obiectele să se vadă mai de la distanţă, mai de aproape. Q: Bun , dar de ce e limita de 1000 de obiecte? A: Limita respectivă este pentru binele clientului(voi când intraţi pe server sunteţi client, hostul e serverul), deci dacă marea limita era nevoie de resurse de pc, RAM şi alte resurse, deci limita este pentru binele clientului. Streamer nu are nevoie de multe resurse, doar dacă puneţi hărţi stricate, în sens cu multe obiecte într-o zona , ele fiind şi dublicate, poate chiar de mai multe ori, în rest nu produce lag, serverele de stunt au o groază de linii numai cu obiecte, dar nu prea au lag. Array-uri Array-ul e ceva de genu: new string[200]; acesta este array pt că are "[200]". Este un simplu array, el poate fi şi dublu de genu: new PlayerInfo[MAX_PLAYERS][pInfo] sau new număr[100][25]; sau mai mare. Dacă vedeţi, lungimea strîng-ului meu este de 200 de caractere(caracterele însemnând litere, cifre, simboluri sau spaţiul dintre 2 cuvinte). Deci va citi un mesaj de 200 caractere, în caz că va avea mai mult, caracterele în + nu vor fi afişate. De multe ori strîng-urile mari sunt inutile şi consumă biţi. În chat se pot vedea maxim 144 de caractere, deci strîng-ul nostru este mai mare cu 56 de caractere, care mănâncă biţi. Ce va recomand eu, este să faceţi strîng-urile mici, cam de 144 , mai mult nu aveţi nevoie, sau calculaţi în minte câte cuvinte scrieţi, şi îl puteţi face şi mai mic. Dacă e necesar, de exemplu pui comandă /stats pe dialog MSGBOX, da , ai nevoie de strîng mai mare, pentru că te foloseşti de el, dar în rest nu e necesar, şi e recomandabil să îl faci mai mic. Stilul Tot acum vreau să va vorbesc despre stilul în care scriptati. Eu personal folosesc tab-ul de multe ori, şi fac economie de new-uri, de genu: new strîng[100], targetid, suma = 0; în loc de new strîng[200]; new targetid; new suma = 0; şi mereu folosesc 2 tab-uri la aliniere de genu: if(sscanf(params,"ud", playa, money)) return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /givemoney [playerid/PartOfName] [money]");sau if(PlayerInfo[playerid],[pAdmin] < 1) return SendClientMessage(playerid, COLOR_GRAD2, "Nu poti folosi aceasta comanda!");Sau alţi folosesc SPACE între caracterele din functi, dar mie personal nu prea îmi place, dar dacă vouă va place e ok. Sau dacă aveţi multe enum-uri de genu: new engine, lights, alarm, doors, bonnet, boot, objective; putem face aşa: new engine, lights, alarm, doors, bonnet, boot, objective;Sau dialogurile să le aduceţi într-un enum nu în define, puteţi face ceva de genu: #define DIALOG_LOGIN 1 #define DIALOG_REGISTER 2 #define DIALOG_STATS 3 #define DIALOG_HELP 4 il faceti asa: enum { DIALOG_LOGIN, DIALOG_REGISTER, DIALOG_STATS, DIALOG_HELP };Şi iese mult mai frumos. Eu nu sunt fan acoladelor foarte lungi, de exemplu: CMD:fixveh(playerid,params[]) { if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pAdminServer] < 1337) { SendClientMessage(playerid, COLOR_GRAD1, " Nu esti autorizat sa folosesti comanda asta!"); return 1; } if(IsPlayerInAnyVehicle(playerid)) { RepairVehicle(GetPlayerVehicleID(playerid)); SendClientMessage(playerid, COLOR_GREY, " Masina a fost reparata !"); } } return 1; } transformam in: CMD:fixveh(playerid,params[]) { if(PlayerInfo[playerid][pAdminServer] < 1337) return SendClientMessage(playerid, COLOR_GRAD1, " Nu esti autorizat sa folosesti comanda asta!"); if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GRAD1, " Nu esti intr-un vehicul!"); RepairVehicle(GetPlayerVehicleID(playerid)); SendClientMessage(playerid, COLOR_GREY, " Masina a fost reparata !"); return 1; } Observaţi că am scăpat de acoladele în exces, când se tastează comandă îşi face verificările, după ce trece de verificări se execută, dacă rămâne la o verificare îi da mesaj. Observaţi că am scăpat şi de verificarea if(IsPlayerConnected(playerid)) deoarece, cel care tastează comandă este mereu conectat, dar dacă folosim o comandă pe cineva, şi el nu este conectat, trebuie să facem verificarea dar în loc de if(IsPlayerConnected(playerid)) punem if(IsPlayerConnected(playa)) sau în loc de playa cum am definit noi jucătorul. Cam atât am avut de zis, dacă cunoaşteţi şi alte metode , puteţi să le ziceţi printr-un reply aici. Mic anunţ!! Am decis că la fiecare tutorial dacă acumulez 5 puncte de + şi câteva reply uri voi mai poştă un tutorial. Nu imediat, ci doar când observ acest lucru. Deci dacă acumulez câte 5 puncte + la aceste tutoriale: http://www.sa-mp.ro/forums/topic/20174-sscanf-si-zcmd/? http://www.sa-mp.ro/forums/topic/20256-cum-sa-tii-un-server-din-pc-folosind-hamachi/? http://www.sa-mp.ro/forums/topic/20286-tutorial-cum-sa-creez-un-radio-pe-server-si-cum-sa-iti-creezi-melodi-pentru-ascultat-pe-server/? http://www.sa-mp.ro/forums/topic/20173-foreach-inlocuieste-loopul/? Am câteva topicuri care mai au +-uri dar nu au câte vreau eu. Q: Ce faci tu cu +, la ce îţi trebuie, de ce tot inişti? A: Acel + şi reply reprezintă mai multe pentru mine... Un lucru ar fi ăla că apreciez ce am făcut eu, ce am încercat să explic, ce am vrut să arăt, apreciezi faptul că am făcut ceva pentu ţine/voi sau pentru această comunitate, luaţi-o cum vreţi, şi îmi mai spuneţi că v-am ajutat prin tutorialul meu şi mai doriţi să mai fac, la fel prin reply mai creşte şi activitatea pe forum.
This leaderboard is set to Bucharest/GMT+03:00
×
×
  • Create New...

Important Information

This site uses cookies. By continuing browsing, you agree to the use of this information. For more details, see Terms of Use and Privacy Policy.