Page 1 of 2 12 LastLast
Results 1 to 50 of 61
  1. #1
    Member Array
    Join Date
    Jun 2016
    Location
    Republika Srpska
    Age
    18
    Karma
    2

    Default Besplatan Knife System


    Knife System

    Verzija plugina: 1.0
    Autor plugina: Pićunak
    ● NAPOMENE
    - Ovo je prva verzija plugina a i ja sam početnik tako da su mogući bagovi, ako pronađete neke pošaljite pa ću se potruditi da popravim.
    - Svaka kritika bi mi dobro došla i primam je bolje od pohvala tako da udrite.
    - Mislim da je plugin dobro urađen i ja sam se slomio da ga završim, pronašao sam čak i player modele (p_knife) za sve jedan nož.
    - Mod je skoro moj, za osnovu sam uzeo Knife Mod - Special Abilities plugin i dosta ga editovao.


    ● OPIS PLUGINA
    - Ovo je jako jednostavan plugin iako sam se ja namučio da ga napravim.
    - Na komandu igraču se otvara meni sa odabirom noža.
    - Ukupno ima 28 noževa.
    - Za svaki nož je potreban određen broj ubistava koji igrač mora skupiti.
    - Da bi otključao sve noževe potrebno je 950 ubistava.


    ● KOMANDE
    - /knife - Otvara meni sa noževima.
    - /noz - Isto kao i komanda iznad.
    - /reset - Resetuje vam levele na 0.
    - /resetall - Resetuje levele svim igračima na 0 (samo admin sa flagom l može koristiti). Ova komanda se ne kuca u konzolu već u čet.

    ● PRONAĐENI BAGOVI I PROPUSTI U SKRIPTI
    - Iz nekog razloga HP se pokazivao u minusu. [SREĐENO]
    - Kada neko izvrši samoubistvo dobija 1 kill. [SREĐENO]
    - Mogao si uzimati nož koji već držiš ali sada je dodana provjera. [SREĐENO]
    - Bio je bag sa uklanjanjem radara ali je uspješno uklonjen na kraju. [SREĐENO]
    - Nije se moglo preko tim četa otvoriti meni ali sada može. [SREĐENO]
    - /resetall komanda je restartovala ubistva samo online igračima. [SREĐENO]

    ● SCREENSHOTS
    - Lista noževa - Klikni
    - Hud - Klikni
    - Poruke u četu - Klikni


    ● NEDOSTATCI
    - Nisam povezivao ubistva igrača sa rankom već sam pravio preko vaulta, tako da bi bilo dobro da isključite rank, top15 i tako to da ne bi slučajno došlo do različitog broja ubistava u hudu u odnosu na statistiku.
    - Takođe nisam pravio EXP sistem već se sve radi preko ubistava ali šta je tu je. Meni se ovako više sviđa.
    - Nisam dodavao admin/vip noževe ali možda bude u sledećoj verziji (ako bude sledeća verzija uopšte).
    - Ako neko može da odradi prefikse u četu jer sam se lomio 5-6 sati da to odradim ali nikako mi ne ide.


    ● OSTALE ZASLUGE
    - KGB Hosting Forum - skoro sve sam naučio na ovom forumu.
    - Ljudi sa AlliedModdersa - pomoć oko raznih stvari.
    - GAMEBANANA - svi skinovi su preuzeti sa njihovog sajta.
    - Spunko - Knife Mod - Special Abilities plugin koji mi je dosta pomogao.
    - pablo e$cobar - Prijavljivanje propusta u skripti.
    - b4n_k1 i EFFx - Pomoć oko rješavanja propusta.

    ● INSTALACIJA
    - Fajl KnifeSystem.amxx - ubaciti u cstrike/addons/amxmodx/plugins.
    - Folder knife-system - ubaciti u cstrike/models.
    - KnifeSystem.amxx - dodati u novi red u fajlu cstrike/addons/amxmodx/configs/plugins.ini.

    ● LINKOVI
    - Source: http://pastebin.com/KfLXfuJM [NIJE OPTIMIZOVANO - ČITAJ ISPOD]
    - AMXX: Nije dozvoljeno objavljivati amxx fajlove tako da ćete morati sami kompilovati kod iznad.
    - Modeli: https://www.sendspace.com/file/v9z76y

    NADAM SE DA ĆE NEKO TESTIRATI, OČEKUJEM FEEDBACK!



    Mali update

    Verzija plugina: 1.1
    Zahvaljujem svima na savjetima, naučio sam dosta toga! Kod je skroz optimizovan sada.
    Posebno zahvaljujem sledećim ljudima za pomoć i savjete: klipica, DecaK, GaMeR FoReVeR i Metro! Hvala od srca.

    U mod su dodata sada i 2 cvara (zbog želje pojedinih).

    Code:
    knife_chat_poruke 1/0 - uključuje/isključuje ispisivanje poruka u chat (po defaultu je 1).
    knife_hud 1/0 - uključuje/isključuje informacije u hudu (po defaultu je 1).
    - Source: http://pastebin.com/urANvz9Y [OPTIMIZOVANIJA SKRIPTA ISPOD]


    Novi update

    Verzija plugina: 1.2
    Slušajući savjete koje je ostavio klipica, kod je sada još više optimizovan.
    Iz moda je izbačen 1 cvar (zbog toga što nije radio).

    Code:
    knife_chat_poruke 1/0 - uključuje/isključuje ispisivanje poruka u chat (po defaultu je 1). [IZBAČENO]
    Takođe, iz moda je izbačeno čekanje od 10 sekundi prije nego što se izvrši restartovanje levela.

    Dodat je prefiks (predložio Metro). Da promjenite prefiks samo otiđite na vrh skripte i gdje je sledeći kod:

    Code:
    #define Prefiks	"[Knife Mod]"
    Promjenite u sledeće:
    Code:
    #define Prefiks	"[PREFIKS PO VAŠOJ ŽELJI]"
    - Source: http://pastebin.com/bZJ9ULBw [NOVI UPDATE ISPOD]


    Update

    Verzija plugina: 1.3
    Kod je sada optimizovan skroz.
    Iz moda su izbačeni cvarovi jer nisu imali nikakvu svrhu.
    Bio je ogrmoan bug a to je da kunai (triple) ne može zapravo udarati i zbog toga je dodat novi nož, a link sa modelima je ažuriran.

    Dodat je jedan define za komandu /resetall a to je:

    Code:
    #define Mapa	"fy_snow"
    Znači to "fy_snow" promjenite u "ime mape" koju želite da bude kada se izvrši komanda.
    Takođe dodat je prefiks u čet za sve igrače koji ispisuje poruku u formatu:


    [Otkljucao 14][Ubistva 211] Pićunak : blablablabla

    - Source: http://pastebin.com/eNrKVg9p
    Last edited by Pićunak; 06-07-2016 at 17:28. Reason: Update 1.3

    АЛАЛ ВЕРА

  2. #2

    Default

    Nisam ljubitelj knife servera ali ovo mi se svidja tako prosto a tako dobro . Plugin je po meni odlican , samo sam nasao u kodu da kazem dva mala propusta . Trebao si sve modele da stavis u cstrike / models da ne previs druge foldere lakse je za ubacivanje na server i moze lakse da se koristi u kodu . Drugo pogledaj " public RestartUbistava(id) " admin resetuje ubistva samo onim igracima koji su u tom trenutku na serveru . To je moje misljenje sad moze neko reci lose uradjen plugin ne valja ako si tek poceo sa pawnom ovo je odlicno i gore si napisao da si poceo editom drugih plugina uvek je bolje kad bi sam radio od nule .
    Last edited by pablo e$cobar; 26-06-2016 at 12:30.

  3. #3
    Moderator Array klipica's Avatar
    Join Date
    Apr 2010
    Location
    lk-net.com
    Karma
    26

    Default

    Quote Originally Posted by pablo e$cobar View Post
    Trebao si sve modele da stavis u cstrike / models da ne previs druge foldere lakse je za ubacivanje i moze lakse da se koristi u kodu .
    Ne! Uvek pravi folder za svoj plugin/server, jer izbegavas konflikte sa drugim pluginima, ili sa drugim serverima koji koriste ista imena modela.
    Code:
    #YoMama {
        width: 200%;
        overflow: visible;
    }

  4. #4
    Member Array
    Join Date
    Jun 2016
    Location
    Republika Srpska
    Age
    18
    Karma
    2

    Default

    Quote Originally Posted by pablo e$cobar View Post
    Nisam ljubitelj knife servera ali ovo mi se svidja tako prosto a tako dobro . Plugin je po meni odlican , samo sam nasao u kodu da kazem dva mala propusta . Trebao si sve modele da stavis u cstrike / models da ne previs druge foldere lakse je za ubacivanje na server i moze lakse da se koristi u kodu . Drugo pogledaj " public RestartUbistava(id) " admin resetuje ubistva samo onim igracima koji su u tom trenutku na serveru . To je moje misljenje sad moze neko reci lose uradjen plugin ne valja ako si tek poceo sa pawnom ovo je odlicno i gore si napisao da si poceo editom drugih plugina uvek je bolje kad bi sam radio od nule .
    To nisam primjetio za restartovanje ubistava, ali ne znam kako da napravim komandu da svima. Jedino da se promjeni ime vaulta. I plugin nisam editovao, već sam samo uzeo osnove neke iz njega.

    Quote Originally Posted by klipica View Post
    Ne! Uvek pravi folder za svoj plugin/server, jer izbegavas konflikte sa drugim pluginima, ili sa drugim serverima koji koriste ista imena modela.
    U potpunosti se slažem, zato sam i pravio poseban folder.
    Last edited by Pićunak; 30-06-2016 at 14:06.

    АЛАЛ ВЕРА

  5. #5
    Senior Member Array
    Join Date
    May 2013
    Location
    ⚒ †
    Karma
    5

    Default

    Koliko ti je vremena trebalo ovo da napravis?

  6. #6
    Senior Member Array
    Join Date
    Jul 2014
    Location
    /etc/passwd
    Age
    18
    Karma
    7

    Default

    Quote Originally Posted by Pićunak View Post
    To nisam primjetio za restartovanje ubistava, ali ne znam kako da napravim komandu da svima. Jedino da se promjeni ime vaulta. I plugin nisam editovao, već sam samo uzeo osnove neke iz njega.


    U potpunosti se slažem, zato sam i pravio poseban folder.
    Svaka cast za ovo.
    Svidja mi se jer je mod unikatan, a ne ukradu par linija pa odmah "njihov mod".
    A sto se tice resetovanja nozeva, mogu se uvijek brisati vault fajlovi, a zatim resetovati server..
    Ili preko clcmd-a valjda je to ovo:
    http://www.amxmodx.org/api/nvault/nvault_prune

    E.g. nvault_prune(vault, 0, get_systime() + 1);
    Last edited by b4n_k1; 26-06-2016 at 13:30.

  7. #7
    Senior Member Array
    Join Date
    Apr 2011
    Location
    The Great Slavistania
    Age
    19
    Karma
    19

    Default

    Pokrao si pola nozeva sa Explosion Knifea.
    Inace jako lose radjen mod.

  8. #8
    Senior Member Array
    Join Date
    Jun 2013
    Location
    K und K monarhija
    Karma
    18

    Default

    Ufff 650 linija za ovo Pa ovo komotno staje u 150 linija..

    Prvo, nauci da koristis arraye(nizovi), dakle, umesto ovoga(200 linija):

    Code:
    case 1:
     new command[6], name[64], access, callback;
        menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
        switch(item)
        {
            case 0: PostaviNoz(id , 0), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis default.");
            case 1:
            if(ubistva_igraca[id] < 10)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id , 1), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis machete.");
     
            case 2:
            if(ubistva_igraca[id] < 20)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 2), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis back.");
           
            case 3:
            if(ubistva_igraca[id] < 30)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 3), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis pocket.");
           
            case 4:
            if(ubistva_igraca[id] < 40)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 4), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis butcher.");
           
            case 5:
            if(ubistva_igraca[id] < 50)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 5), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis wooden.");
           
            case 6:
            if(ubistva_igraca[id] < 60)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 6), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis dragon.");
           
            case 7:
            if(ubistva_igraca[id] < 70)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 7), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis ninja.");
           
            case 8:
            if(ubistva_igraca[id] < 80)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 8), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis black.");
           
            case 9:
            if(ubistva_igraca[id] < 90)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 9), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis hitman.");
           
            case 10:
            if(ubistva_igraca[id] < 100)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 10), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis daedric.");
     
            case 11:
            if(ubistva_igraca[id] < 150)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 11), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis ice.");
           
            case 12:
            if(ubistva_igraca[id] < 200)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 12), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis katane.");
           
            case 13:
            if(ubistva_igraca[id] < 250)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 13), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis rusty.");
           
            case 14:
            if(ubistva_igraca[id] < 300)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 14), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis crowbar.");
           
            case 15:
            if(ubistva_igraca[id] < 350)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 15), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis celurit.");
           
            case 16:
            if(ubistva_igraca[id] < 400)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 16), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis kabar.");
           
            case 17:
            if(ubistva_igraca[id] < 450)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 17), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis karambit.");
           
            case 18:
            if(ubistva_igraca[id] < 500)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 18), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis omega.");
       
            case 19:
            if(ubistva_igraca[id] < 550)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 19), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis metal machete.");
           
            case 20:
            if(ubistva_igraca[id] < 600)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 20), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis plunger.");
           
            case 21:
            if(ubistva_igraca[id] < 650)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 21), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis rambo.");
           
            case 22:
            if(ubistva_igraca[id] < 700)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 22), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis toporiaku.");
           
            case 23:
            if(ubistva_igraca[id] < 750)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 23), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis candy.");
           
            case 24:
            if(ubistva_igraca[id] < 800)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 24), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis elite.");
           
            case 25:
            if(ubistva_igraca[id] < 850)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 25), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis traker.");
           
            case 26:
            if(ubistva_igraca[id] < 900)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 26), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis bayonet.");
           
            case 27:
            if(ubistva_igraca[id] < 950)
            ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
            else
            PostaviNoz(id, 27), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis triple.");
        }
    Ovo:

    Code:
    if(ubistvo_igraca[id] < potrebno_ubistva[item]) {
      ColorChat...
    }
     else
      PostaviNoz(id, item);
    Zanimljivo je sto u PromeniNoz koristis nizove, a u handleu ne koristis iste te nizove koje si koristio gore i koji ti trebaju i dole, vec radis 'rucno'?? To ti dokazuje da jos nemas znanja da uradis neki mod, bolje prvo nauci osnovne stvari.
    double penetration sadomazo satisfaction
    k'o svedski akcioni kada kazu action

    Quote Originally Posted by Skubishaa View Post
    Moze bit do mašine na kojoj je hostovan taj server.
    Ili ti je do napajanja neta tvog

  9. #9
    Member Array
    Join Date
    Jun 2016
    Location
    Republika Srpska
    Age
    18
    Karma
    2

    Default

    Quote Originally Posted by MatijaS View Post
    Koliko ti je vremena trebalo ovo da napravis?
    Nekoliko dana, ne znam tačno.

    Quote Originally Posted by b4n_k1 View Post
    Svaka cast za ovo.
    Svidja mi se jer je mod unikatan, a ne ukradu par linija pa odmah "njihov mod".
    A sto se tice resetovanja nozeva, mogu se uvijek brisati vault fajlovi, a zatim resetovati server..
    Ili preko clcmd-a valjda je to ovo:
    http://www.amxmodx.org/api/nvault/nvault_prune

    E.g. nvault_prune(vault, 0, get_systime() + 1);
    Hvala na pohvali i svakako hvala za informacije o vaultu.

    Quote Originally Posted by milutinke2 View Post
    Pokrao si pola nozeva sa Explosion Knifea.
    Inace jako lose radjen mod.
    Ja sam se potrudio da mod odradim kako znam ali jbg. Ako te baš zanima, noževi nisu sa Explosiona (nikad nisam ni ušao tamo) već je dobar dio sa davno ugašene Skill Arene.

    Quote Originally Posted by DecaK View Post
    Ufff 650 linija za ovo Pa ovo komotno staje u 150 linija..
    Zanimljivo je sto u PromeniNoz koristis nizove, a u handleu ne koristis iste te nizove koje si koristio gore i koji ti trebaju i dole, vec radis 'rucno'?? To ti dokazuje da jos nemas znanja da uradis neki mod, bolje prvo nauci osnovne stvari.
    Hvala na savjetu, već danas počinjem učiti nizove.
    Last edited by Pićunak; 30-06-2016 at 14:06.

    АЛАЛ ВЕРА

  10. #10
    Senior Member Array
    Join Date
    Jun 2009
    Location
    Zrenjanin
    Karma
    74

    Default

    ovo je odlicno za jednog pocetnika ne odustaj
    I <3 Turshija
    Quote Originally Posted by relja.kgb View Post
    ako pera psuje ziku, opomeni peru i zakljucaj odmah temu!

  11. #11
    Member Array
    Join Date
    Jun 2016
    Location
    Republika Srpska
    Age
    18
    Karma
    2

    Default

    Quote Originally Posted by Wroy View Post
    ovo je odlicno za jednog pocetnika ne odustaj
    Hvala.
    Last edited by Pićunak; 30-06-2016 at 14:06.

    АЛАЛ ВЕРА

  12. #12
    Senior Member Array
    Join Date
    Mar 2014
    Location
    Бања Лука
    Karma
    7

    Default

    Svaka čast, sviđa mi se

    Par predloga na ono što je Deack već rekao
    Ovo sve možeš da strpaš u dvodimenzionalni niz, prednosti toga su ogromne
    Code:
    new const imena_nozeva[28][] = {
        "Default",
        "Machete",
        "Back"
    }
    new const potrebno_ubistava[] = {
        0,        
        10,        
        20,        
        30
    }
    -->
    Code:
    new const knifeData [][][] = {
    // Naziv noža  Ubistava  Model
    	{"Default",		"456",		"model.mdl"}
    }
    Pristup elementima k dimenzionog niza:

    Code:
    <tip> <ime>'['<N1>']''['<N1>']'...'['<Nk>']';
    Uopšteno:
    Code:
    knifeData[0][1]  (Ima vrednost 456)
    itd. da sad ne nabrajam, prouči uopšteno sve o programiranju, možeš početi od paskala i mnogo će ti pomoći da shvatiš čitav koncept.

    EDIT:
    Takođe obavezno provjeri da li je igrač konektovan prije nego izvršiš neku komandu na njemu
    Last edited by GaMeR FoReVeR; 26-06-2016 at 20:46.

  13. #13
    Member Array
    Join Date
    Jun 2016
    Location
    Republika Srpska
    Age
    18
    Karma
    2

    Default

    @GaMeR FoReVeR - hvala na savjetima i drago mi je da ti se sviđa.
    @Tema - Popravljen propust sa resetall komandom.
    Last edited by Pićunak; 30-06-2016 at 14:07.

    АЛАЛ ВЕРА

  14. #14
    Banovani spamer Array
    Join Date
    Jun 2016
    Age
    20
    Karma
    0

    Default

    public plugin precache() si mogao da zamenis sa 2 linije, tj. da se precachuju modeli iz stringa, kad bi to odradio mogao bi preko istog stringa setovati modele, mislim na trodimenzionalni string, bas kao sto je Gamer rekao(u taj string mozes naziv noza, model, potrebno ubistava i nez sta jos se ponavlja za svaki noz).
    Neki djelovi su c/p iz jednog knife moda, ali nmvz.

    Ipak svidja mi se mod, nije bitno sto moze bolje(jeste da ovo trosi malo vise CPU), bitno je da si se trudio, svaka cast

    edit:
    Code:
    if(ubistva_igraca[id] < nozevi[item][1])//registrujes nozevi[][][]
    		     ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
    		else
    		     PostaviNoz(id, item), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis %s.", nozevi[item][0]);
    i jos nesto, obrisi Ham_Spawn jer kad dodje spawn, funkcija je prazna pa ce malo bagati.
    Mozda ga optimizujem i posaljem ti, ali mrzi me dodavati putanju modela u string, ima ih previse, ono models/...

    edit2: jesi kad radio oko cod modova?
    Last edited by Metro; 27-06-2016 at 12:42.

  15. #15
    Senior Member Array
    Join Date
    Jul 2014
    Location
    /etc/passwd
    Age
    18
    Karma
    7

    Default

    Moze li meni neko reci da li je ovo bolji/efikasniji nacin za precacheovanje knife modela?
    Code:
    new const file_names[][] = {
            "machete",      
            "back",
            "pocket",
            "butcher",   
            "wooden",
            "dragon",
            "ninja",
            "black",
            "hitman",       
            "daedric",
    	"ice",
    	"katana",
    	"rusty",
    	"crowbar",
    	"celurit",
    	"kabar",
    	"karambit",
    	"domega",
    	"mmachete",
    	"plunger",
    	"rambo",
    	"toporiaka",
    	"candy",
    	"elite",
    	"traker",
    	"bayonet",
            "kunai"
    };
    
    precache_model("models/v_knife.mdl");
            precache_model("models/p_knife.mdl");
            static dir[34];
           
            for(new i = 0; i < sizeof file_names; i++)
            {
                    formatex(dir, charsmax(dir), "models/knife-system/v_%s.mdl", file_names[i]);
                    precache_model(dir);
                    formatex(dir, charsmax(dir), "models/knife-system/p_%s.mdl", file_names[i]);
                    precache_model(dir);
            }
    Last edited by b4n_k1; 27-06-2016 at 13:03.

  16. #16
    Banovani spamer Array
    Join Date
    Jun 2016
    Age
    20
    Karma
    0

    Default

    moze i to, ali ovo je jos krace

    Code:
    new const nozevi[][][] =
    {
              {"naziv noza", "potrebno kills", "v model", "p model"},// ovako za svaki noz
              {"naziv noza", "potrebno kills", "v model", "p model"},
              ...
    }
    
    
    
    public plugin_precache()
    {
              for(new i; i<sizeof(nozevi);i++)
              {
                        precache_model(nozevi[i][2]);
                        precache_model(nozevi[i][3]);
              }
    }

  17. #17
    Senior Member Array
    Join Date
    Jul 2014
    Location
    /etc/passwd
    Age
    18
    Karma
    7

    Default

    Quote Originally Posted by Metro View Post
    moze i to, ali ovo je jos krace

    Code:
    new const nozevi[][][] =
    {
              {"naziv noza", "potrebno kills", "v model", "p model"},// ovako za svaki noz
              {"naziv noza", "potrebno kills", "v model", "p model"},
              ...
    }
    
    
    
    public plugin_precache()
    {
              for(new i; i<sizeof(nozevi);i++)
              {
                        precache_model(nozevi[i][2]);
                        precache_model(nozevi[i][3]);
              }
    }
    Ovo mi je trebalo. K+.

  18. #18
    Member Array
    Join Date
    Jun 2016
    Location
    Republika Srpska
    Age
    18
    Karma
    2

    Default

    Quote Originally Posted by Metro View Post
    public plugin precache() si mogao da zamenis sa 2 linije, tj. da se precachuju modeli iz stringa, kad bi to odradio mogao bi preko istog stringa setovati modele, mislim na trodimenzionalni string, bas kao sto je Gamer rekao(u taj string mozes naziv noza, model, potrebno ubistava i nez sta jos se ponavlja za svaki noz).
    Neki djelovi su c/p iz jednog knife moda, ali nmvz.

    Ipak svidja mi se mod, nije bitno sto moze bolje(jeste da ovo trosi malo vise CPU), bitno je da si se trudio, svaka cast

    edit:
    Code:
    if(ubistva_igraca[id] < nozevi[item][1])//registrujes nozevi[][][]
    		     ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
    		else
    		     PostaviNoz(id, item), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis %s.", nozevi[item][0]);
    i jos nesto, obrisi Ham_Spawn jer kad dodje spawn, funkcija je prazna pa ce malo bagati.
    Mozda ga optimizujem i posaljem ti, ali mrzi me dodavati putanju modela u string, ima ih previse, ono models/...

    edit2: jesi kad radio oko cod modova?
    Hvala.
    Nisam nikad radio oko cod modova, ovo mi je prvi plugin koji sam ikada radio.
    Last edited by Pićunak; 30-06-2016 at 14:07.

    АЛАЛ ВЕРА

  19. #19
    Banovani spamer Array
    Join Date
    Jun 2016
    Age
    20
    Karma
    0

    Default

    Nesto mi lici cod modu pa zato pitam, optimizaciju ces vremenom nauciti, a opet svaka cast za ovo

  20. #20
    Member Array
    Join Date
    Jun 2016
    Location
    Republika Srpska
    Age
    18
    Karma
    2

    Default

    Quote Originally Posted by Metro View Post
    Nesto mi lici cod modu pa zato pitam, optimizaciju ces vremenom nauciti, a opet svaka cast za ovo
    Hvala, opet.
    A što se tiče plugina, imam ekstra unikatnu ideju za sledeću verziju ali prije svega se kod mora optimizovati.
    Edit: zaboravio sam gore u postu napisati da prikazuje vama hud igrača kojeg posmatrate dok ste u spectate modu ili mrtvi.
    Last edited by Pićunak; 30-06-2016 at 14:07.

    АЛАЛ ВЕРА

  21. #21
    Senior Member Array
    Join Date
    Mar 2014
    Location
    Бања Лука
    Karma
    7

    Default

    Quote Originally Posted by Metro View Post
    public plugin precache() si mogao da zamenis sa 2 linije, tj. da se precachuju modeli iz stringa, kad bi to odradio mogao bi preko istog stringa setovati modele, mislim na trodimenzionalni string, bas kao sto je Gamer rekao(u taj string mozes naziv noza, model, potrebno ubistava i nez sta jos se ponavlja za svaki noz).
    Neki djelovi su c/p iz jednog knife moda, ali nmvz.

    Ipak svidja mi se mod, nije bitno sto moze bolje(jeste da ovo trosi malo vise CPU), bitno je da si se trudio, svaka cast

    edit:
    Code:
    if(ubistva_igraca[id] < nozevi[item][1])//registrujes nozevi[][][]
    		     ColorChat(id,GREEN,"[Knife Mod] ^1Nemas potreban broj ubistava za ovaj noz.");
    		else
    		     PostaviNoz(id, item), ColorChat(id,GREEN,"[Knife Mod] ^1Promenio si noz, sada koristis %s.", nozevi[item][0]);
    i jos nesto, obrisi Ham_Spawn jer kad dodje spawn, funkcija je prazna pa ce malo bagati.
    Mozda ga optimizujem i posaljem ti, ali mrzi me dodavati putanju modela u string, ima ih previse, ono models/...

    edit2: jesi kad radio oko cod modova?
    Zapravo griješ, ovo toliko i ne utiče na CPU.
    "mrzi me dodavati putanju", putanju staviš u "plugin_precache" a naziv modela samo u stringu računajući da su "p" i "v" modeli istog naziva (što je i slučaj kod 99% skinutih modela). I tu apsolutno nikakve razlike nemaš u perfomansama

  22. #22
    Member Array
    Join Date
    Jun 2016
    Location
    Republika Srpska
    Age
    18
    Karma
    2

    Default

    Glavni post je editovan, na dnu ima mali update.
    Zamolio bi vas da opet pogledate kod i da mi kažete da li je sve u redu sada sa optimizacijom koda.
    Last edited by Pićunak; 30-06-2016 at 14:07.

    АЛАЛ ВЕРА

  23. #23
    Senior Member Array
    Join Date
    Mar 2014
    Location
    Бања Лука
    Karma
    7

    Default

    Code:
    set_task(10.0, "RestartujUbistva");
    Zašto? Izvrši odmah sve, nema potrebe za taskom

    Ali nebitna stvar, svaka ti čast odlično si uradio sve

  24. #24
    Member Array
    Join Date
    Jun 2016
    Location
    Republika Srpska
    Age
    18
    Karma
    2

    Default

    Quote Originally Posted by GaMeR FoReVeR View Post
    Code:
    set_task(10.0, "RestartujUbistva");
    Zašto? Izvrši odmah sve, nema potrebe za taskom

    Ali nebitna stvar, svaka ti čast odlično si uradio sve
    Ma glupo da samo od jednom restartuje sve. Ako stavim da odma izvrši neće se ispisati poruka da će biti restart ubistava i onda će ono ljudi reći "koji ku*ac" kad vide da nemaju noževe više.
    Hvala.
    Last edited by Pićunak; 30-06-2016 at 14:07.

    АЛАЛ ВЕРА

  25. #25
    Banovani spamer Array
    Join Date
    Jun 2016
    Age
    20
    Karma
    0

    Default

    Svaka cast, sada je odlicno.
    Dodaj prefix.
    Last edited by Metro; 28-06-2016 at 01:28.

  26. #26
    Banovani spamer Array
    Join Date
    Jun 2016
    Age
    20
    Karma
    0

    Default

    izvinjavam se za dupli post.

  27. #27
    Moderator Array klipica's Avatar
    Join Date
    Apr 2010
    Location
    lk-net.com
    Karma
    26

    Default

    Code:
    // ...
    {"Machete",     "10",       "models/knife-system/v_machete.mdl",    "models/knife-system/p_machete.mdl"},
    // ...
    Najgore sto mozes da uradis je da obican broj imas kao string i da svaki put kada nesto uporedjujes sa njim pretvaras ga iz stringa u broj. Stavi bez navodnica, i gde god da ga koristis umesto
    Code:
    str_to_num(PodaciNozeva[X][1])
    koristi
    Code:
    PodaciNozeva[X][1][0]
    Zapravo to je niz koji ima samo jedan element - taj broj koji upises.

    Dobra stvar bi bila da napravis enumeraciju radi citljivosti koda.
    Code:
    enum KnifeData
    {
        KnifeData_Name,
        KnifeData_Kills,
        KnifeData_ViewModel,
        KnifeData_PlayerModel
    };
    i da definises tvoj niz sa nozevima kao:
    Code:
    new const PodaciNozeva[][KnifeData][]
    i onda ces moci umesto da pises PodaciNozeva[X][1] da pristupis imenu noza pisati PodaciNozeva[X][KnifeData_Name] sto je mnogo lepse za citanje i organizaciju koda.

    Code:
    public SaveData(id)
    {
        new AuthID[35];
        get_user_authid(id,AuthID,34);
        new vaultkey[64],vaultdata[256];
        format(vaultkey,63,"%s-Knife",AuthID);
        format(vaultdata,255,"%i",ubistva_igraca[id]);
        nvault_set(g_vault,vaultkey,vaultdata);
        return PLUGIN_CONTINUE;
    }
     
    public LoadData(id)
    {
        new AuthID[35];
        get_user_authid(id,AuthID,34);
        new vaultkey[64],vaultdata[256];
        format(vaultkey,63,"%s-Knife",AuthID);
        format(vaultdata,255,"%i",ubistva_igraca[id]);
        nvault_get(g_vault,vaultkey,vaultdata,255);
        replace_all(vaultdata, 255, "#", " ");
        new ubistva[32];
        parse(vaultdata, ubistva, 31);
        ubistva_igraca[id] = str_to_num(ubistva);
        return PLUGIN_CONTINUE;
    }
    Ovo je jedan veliki shit koji je godinama ostao na ovom forumu i ljudi jos uvek koriste ovakav kod. Nema razloga za prefikse ili sufikse kao "-Knife" (to je trebalo dok se koristio stari vault, ovo je nVault i nema razloga za to), i nema razloga za "#" simbolima. Funkcije za cuvanje i ucitavanje podataka mozes skratiti u ovo:
    Code:
    public SaveData(id)
    {
        new AuthID[35];
        new vaultdata[12];
    
        get_user_authid(id, AuthID, charsmax(AuthID));
        format(vaultdata, charsmax(vaultdata), "%i", ubistva_igraca[id]);
        nvault_set(g_vault, AuthID, vaultdata);
    }
    
    public LoadData(id)
    {
        new AuthID[35];
        get_user_authid(id, AuthID, charsmax(AuthID));
        ubistva_igraca[id] = nvault_get(g_vault, AuthID);
    }
    U dokumentaciji pise zasto je to sto sam uradio moguce sa nvault_get().
    Jos bolja opcija je da samo jednom na autorizaciji igraca (client_authorized) sacuvas SteamID i ne uzimas ga svaki put kada cuvas/ucitavas.
    Koristi charsmax() umesto hardkodovanja velicine stringova.
    Code:
    #YoMama {
        width: 200%;
        overflow: visible;
    }

  28. #28
    Member Array
    Join Date
    Jun 2016
    Location
    Republika Srpska
    Age
    18
    Karma
    2

    Default

    @Metro - hvala na ideji, definitivno ću to dodati. Pokušaću odraditi uz pomoć cvarova.
    @klipica - potrudiću se da i te stvari popravim za 1.2, ali prije svega moram naučiti enumeraciju. Ako je slična kao u skriptanju za SA:MP neće biti problema. Hvala.
    Last edited by Pićunak; 30-06-2016 at 14:08.

    АЛАЛ ВЕРА

  29. #29
    Moderator Array klipica's Avatar
    Join Date
    Apr 2010
    Location
    lk-net.com
    Karma
    26

    Default

    Quote Originally Posted by Pićunak View Post
    Ako je slična kao u skriptanju za SA:MP neće biti problema.
    Jezik skoro nema razlike izmedju SA:MP i AMXX. SA:MP koristi PAWN 3.2 a AMXX 3.0, 99% stvari je isto.

    Quote Originally Posted by Pićunak View Post
    Hvala.
    Nema na cemu.
    Code:
    #YoMama {
        width: 200%;
        overflow: visible;
    }

  30. #30
    Member Array
    Join Date
    Jun 2016
    Location
    Republika Srpska
    Age
    18
    Karma
    2

    Default

    Sve što je klipica rekao je urađeno, tako da je izašla 1.3 verzija. Glavni post editovan.
    Last edited by Pićunak; 30-06-2016 at 14:05.

    АЛАЛ ВЕРА

  31. #31
    Senior Member Array
    Join Date
    Aug 2014
    Karma
    4

    Default

    Ne moras ostavljati starije verzije plugina, stavis samo zadnju

    Evo ti chat prefix, samo stavi svoje podatke.

    Code:
    register_message(get_user_msgid("SayText"),"handleSayText");
    
    public handleSayText(msgId, msgDest, msgEnt){
    	new id = get_msg_arg_int(1);
    	
    	if(is_user_connected(id)){
    		new szTmp[256],
    		szTmp2[256];
    		
    		get_msg_arg_string(2, szTmp, charsmax(szTmp));
    		
    		new szPrefix[64] 
    
    		
    		formatex(szPrefix,charsmax( szPrefix ),"^x04[ LEVEL %d]",Level[id])
    		
    					if(!equal(szTmp, "#Cstrike_Chat_All")){
    			add(szTmp2, charsmax(szTmp2), szPrefix);
    			add(szTmp2, charsmax(szTmp2), " ");
    			add(szTmp2, charsmax(szTmp2), szTmp);
    		}
    		else{
    			add(szTmp2, charsmax(szTmp2), szPrefix);
    			add(szTmp2, charsmax(szTmp2), "^x03 %s1^x01 :  %s2");
    		}
    		set_msg_arg_string(2, szTmp2);
    	}
    	return PLUGIN_CONTINUE;
    }

  32. #32
    Senior Member Array
    Join Date
    Jul 2014
    Location
    /etc/passwd
    Age
    18
    Karma
    7

    Default

    Mozda ce neki ovaj moj post smatrati SPAMom ali ja moram cestitati ovog decku. Ali zaista. Lik je bukvalno "newbie" a u temu je uvukao svakog' zivog'.
    Pravi univerzalni knife mod, a pocetnik je. Kapa do poda sinovac, jos jednom bravo! I svidja mi se sto je postavljen kao open-source, a ono sto sto mi se jos vise svidja je to sto nema krsenja autorskih prava (bar za sada), vec na neki nacin svi daju doprinos ovom modu.
    Opet kazem, bas mi je drago zbog ovoga.

  33. #33
    Member Array
    Join Date
    Jun 2016
    Location
    Republika Srpska
    Age
    18
    Karma
    2

    Default

    Quote Originally Posted by Hartmann View Post
    Ne moras ostavljati starije verzije plugina, stavis samo zadnju

    Evo ti chat prefix, samo stavi svoje podatke.

    Code:
    register_message(get_user_msgid("SayText"),"handleSayText");
    
    public handleSayText(msgId, msgDest, msgEnt){
    	new id = get_msg_arg_int(1);
    	
    	if(is_user_connected(id)){
    		new szTmp[256],
    		szTmp2[256];
    		
    		get_msg_arg_string(2, szTmp, charsmax(szTmp));
    		
    		new szPrefix[64] 
    
    		
    		formatex(szPrefix,charsmax( szPrefix ),"^x04[ LEVEL %d]",Level[id])
    		
    					if(!equal(szTmp, "#Cstrike_Chat_All")){
    			add(szTmp2, charsmax(szTmp2), szPrefix);
    			add(szTmp2, charsmax(szTmp2), " ");
    			add(szTmp2, charsmax(szTmp2), szTmp);
    		}
    		else{
    			add(szTmp2, charsmax(szTmp2), szPrefix);
    			add(szTmp2, charsmax(szTmp2), "^x03 %s1^x01 :  %s2");
    		}
    		set_msg_arg_string(2, szTmp2);
    	}
    	return PLUGIN_CONTINUE;
    }
    Neka stoje sve verzije, da vide ljudi gdje sam griješio da se njima ne dešava.
    A što se tiče čet prefiksa koji si poslao, isti problem kao i sa mojim. Neću da mi piše ono * DEAD * i * SPEC *. U svakom slučaju hvala.

    Quote Originally Posted by b4n_k1 View Post
    Mozda ce neki ovaj moj post smatrati SPAMom ali ja moram cestitati ovog decku. Ali zaista. Lik je bukvalno "newbie" a u temu je uvukao svakog' zivog'.
    Pravi univerzalni knife mod, a pocetnik je. Kapa do poda sinovac, jos jednom bravo! I svidja mi se sto je postavljen kao open-source, a ono sto sto mi se jos vise svidja je to sto nema krsenja autorskih prava (bar za sada), vec na neki nacin svi daju doprinos ovom modu.
    Opet kazem, bas mi je drago zbog ovoga.
    Hvala ti brate puno, znači mi do neba.
    Iskreno ni ja nisam očekivao da će iko uskočiti u temu a ljudi su mi pomogli maksimalno, ja sam mislio da će me popljuvati i to je to. Zahvaljujem svima!
    Last edited by Pićunak; 30-06-2016 at 14:05.

    АЛАЛ ВЕРА

  34. #34
    Senior Member Array
    Join Date
    Jul 2014
    Location
    /etc/passwd
    Age
    18
    Karma
    7

    Default

    Quote Originally Posted by Pićunak View Post
    Hvala ti brate puno, znači mi do neba.
    Iskreno ni ja nisam očekivao da će iko uskočiti u temu a ljudi su mi pomogli maksimalno, ja sam mislio da će me popljuvati i to je to. Zahvaljujem svima!
    Mislim da ja imam neki chat prefix koji je kompatibilan tj. nije bagovit.. Saljem ti sutra kod.

  35. #35
    Banovani spamer Array
    Join Date
    Jun 2016
    Age
    20
    Karma
    0

    Default

    Mozda da ubacis admin komandu da se setuju ubistva igraca i to da se loguje(koji admin je dao, koliko i kome)
    Opet super si odradio

  36. #36
    Moderator Array Megastorm's Avatar
    Join Date
    Sep 2011
    Location
    Tokyo, Japan
    Age
    22
    Karma
    32

    Default

    Slaba kopija mog knife moda koji sam radio za Unreal knife...
    Bez uvrede, cenim to sto je sklopljen posteno, ali nije u redu da kopiras ideju...

    Sto se tice truda, drago mi je da jos uvek neko pokusava da napravi nesto i pomogne vlasnicima servera, to ti je veliki plus.

  37. #37
    Member Array
    Join Date
    Jun 2016
    Location
    Republika Srpska
    Age
    18
    Karma
    2

    Default

    Quote Originally Posted by Megastorm View Post
    Slaba kopija mog knife moda koji sam radio za Unreal knife...
    Bez uvrede, cenim to sto je sklopljen posteno, ali nije u redu da kopiras ideju...

    Sto se tice truda, drago mi je da jos uvek neko pokusava da napravi nesto i pomogne vlasnicima servera, to ti je veliki plus.
    Iskreno, nikad nisam ušao ni na jedan knife server osim Skill Arene. Ako je princip isti kao na tom modu jbg. Kopirao nisam zagarantovano.
    Last edited by Pićunak; 30-06-2016 at 14:04.

    АЛАЛ ВЕРА

  38. #38
    Moderator Array Megastorm's Avatar
    Join Date
    Sep 2011
    Location
    Tokyo, Japan
    Age
    22
    Karma
    32

    Default

    Quote Originally Posted by Pićunak View Post
    Iskreno, nikad nisam ušao ni na jedan knife server osim Skill Arene. Ako je princip isti kao na tom modu jbg. Kopirao nisam zagarantovano.
    Cak i da jesi, oprosteno je, jer je malo ljudi koji se zapravo trude da skapiraju sta koja funkcija u kodu radi, vidim da se trudis, tako da sa tim nemam problema

    Samo ces morati mnogo da poradis na optimizaciji, cak verujem da ces kad steknes jos malo znanja skontati i kako da napravis sistem koji nije ogranicen na odredjen broj nozeva(mada, u sustini sve je ograniceno maksimalnim brojem kesiranih modela u igri)(primenjuje se Array/Trie, u zavisnosti od toga sta ti treba).
    Kad odradis takav neki sistem (tice se takodje i citanja podataka iz fajla), onda ces biti bas na pravom putu

  39. #39
    Moderator Array klipica's Avatar
    Join Date
    Apr 2010
    Location
    lk-net.com
    Karma
    26

    Default

    Idemo dalje.

    Code:
    new iPlayer[32], iNum;
    get_players(iPlayer, iNum);
    for(new i; i < iNum; i++)
    {
        ubistva_igraca[iPlayer[i]] = 0;
    }
    Posto svejedno ne proveravas da li su igraci konektovani, i jednostavno zelis da restartujes ceo niz, koristi arrayset():
    Code:
    arrayset(ubistva_igraca, 0, sizeof(ubistva_igraca));
    Verujem i sam da znas sta radi "return" i zasto se koristi, ali mislim da ne shvatas bas PLUGIN_* konstante.
    PLUGIN_CONTINUE, PLUGIN_HANDLED i PLUGIN_HANDLED_MAIN mozes posmatrati kao statusne kodove - na osnovu koji kod das, nesto se desava. Oni ustvari predstavljaju vrednosti 0, 1 i 2, respektivno. To mozes i videti OVDE. Uglavnom, kada AMXX pozove funkciju u tvom pluginu, ti mu vracas statusni kod da mu kazes sta treba da uradi. CONTINUE je automatski returnovan ako ne navedes nista, jer svaka funkcija koja nema eksplicitno definisano sta returnuje, returnuje 0 (PLUGIN_CONTINUE).
    Kod komandi koje registrujes, CONTINUE kaze da je sve u redu i da se nastavi izvrsavanje, HANDLED da AMXX treba stati sa pozivanjem funkcija u drugim pluginima ako su registrovali komandu, i da komanda ne stigne do DLL igre (HL/CS). HANDLED_MAIN kaze da nastavi sa pozivanjem funkcija u drugim plugnima, ali ne i u igri.
    Ovo ti pricam jer sam video da si u LoadData() i SaveData() pre returnovao nepotrebno. To znaci da mozes izbaciti i iz client_death(), PokaziPodatke(), CurWeapon(), PostaviNoz() (ako zelis zaustaviti funkciju od izvrsavanja dalje samo stavi "return;") i RestartUbistva(). Kod komande koje si registrovao kao "say ...", ako vratis PLUGIN_HANDLED ili PLUGIN_HANDLED_MAIN, poruka se nece prikazati u chatu.

    Uglavnom, cilj price je da te 3 vrednosti znace samo u nekim funkcijama, kao callbackovi komandi, menija, evenata, poruka... Izvan toga su nevazne.

    Takodje, "public" je modifikator koji kaze da funkcija ili promenljiva koju definises se vidi izvan tvog plugina. To znaci da funkcije koje ne trebaju da se vide ne trebaju biti public. Kod tebe su to LoadData(), SaveData() i PostaviNoz().
    Kada trebaju biti vidljive? Kada AMXX treba da zna za njihovo postojanje, kao sto su plugin_init(), plugin_precache(), funkcije koje se pozovu kada se task izvrsi i slicno. Svaki put kada modulu/AMXXu dajes do znanja koju funkciju treba pozvati u nekom slucaju, ona mora biti public. Primer:
    Code:
    RegisterHam(Ham_Spawn, "player", "Player_Spawn");
    u ovom slucaju "Player_Spawn" funkcija mora biti javna da bi je modul mogao pronaci i pozvati u tvom pluginu.
    Code:
    #YoMama {
        width: 200%;
        overflow: visible;
    }

  40. #40
    Senior Member Array
    Join Date
    Jul 2014
    Location
    /etc/passwd
    Age
    18
    Karma
    7

    Default

    @Pićunak
    Linija 266

    Code:
    server_cmd("changelevel de_dust2");
    @klipica Bas ti hvala na ovom objasnjenju PLUGIN_* konstanti.
    Last edited by b4n_k1; 28-06-2016 at 14:42.

  41. #41
    Member Array
    Join Date
    Jun 2016
    Location
    Republika Srpska
    Age
    18
    Karma
    2

    Default

    @klipica - da se ponovo uključim.. Uradio sam sve kako si rekao, malo se zezao sa tim, ali za PostaviNoz(), pokazi_podatke i RestartUbistava traže da se koristi return. Ako stavim samo return; kao što si rekao, opet istu grešku izbacuje.

    АЛАЛ ВЕРА

  42. #42
    Moderator Array klipica's Avatar
    Join Date
    Apr 2010
    Location
    lk-net.com
    Karma
    26

    Default

    Postavi kod te 3 funkcije da vidimo sta si uradio.
    Code:
    #YoMama {
        width: 200%;
        overflow: visible;
    }

  43. #43
    Banovani spamer Array
    Join Date
    Jun 2016
    Age
    20
    Karma
    0

    Default

    Ako si stavio na pocetku funkcija neki return npr: return PLUGIN_CONTINUE; a na kraj stavio samo return; logicno da je greska misli eror.
    Last edited by klipica; 30-06-2016 at 14:30. Reason: Zvanicno pismo foruma je latinica

  44. #44
    Member Array
    Join Date
    Jun 2016
    Location
    Republika Srpska
    Age
    18
    Karma
    2

    Default

    Quote Originally Posted by Metro View Post
    Ako si stavio na pocetku funkcija neki return npr: return PLUGIN_CONTINUE; a na kraj stavio samo return; logicno da je greska misli eror.
    Znači zbog toga je, imao sam u te 3 funkcije PLUGIN_HANDLED na početku. Vratio sam na dnu PLUGIN_CONTINUE i sad ne izbacuje grešku.

    АЛАЛ ВЕРА

  45. #45
    Moderator Array klipica's Avatar
    Join Date
    Apr 2010
    Location
    lk-net.com
    Karma
    26

    Default

    Ja ti napisao zid teksta sta znace te tri konstante i zasto se returnuju i ti to opet koristis. Zato sam ti rekao da postavis kod toga sto si uradio.
    Code:
    #YoMama {
        width: 200%;
        overflow: visible;
    }

  46. #46
    Member Array
    Join Date
    Jun 2016
    Location
    Republika Srpska
    Age
    18
    Karma
    2

    Default

    Quote Originally Posted by klipica View Post
    Ja ti napisao zid teksta sta znace te tri konstante i zasto se returnuju i ti to opet koristis. Zato sam ti rekao da postavis kod toga sto si uradio.
    Code:
    PostaviNoz(id , knife)
    {
    	new Clip, Ammo, Weapon = get_user_weapon(id, Clip, Ammo);
    	if(Weapon != CSW_KNIFE)
    		return PLUGIN_HANDLED;
    		
    	trenutni_model_noza[id] = knife;
    	new vModel[56];
    	new pModel[56];
    	format(vModel, 55, PodaciNozeva[knife][ViewModel]);
    	format(pModel, 55, PodaciNozeva[knife][PlayerModel]);
    	entity_set_string(id, EV_SZ_viewmodel, vModel)
    	entity_set_string(id, EV_SZ_weaponmodel, pModel)
    }
    Code:
    public pokazi_podatke(id)
    {
    	id -= HUD
    	set_task(0.2, "pokazi_podatke", id+HUD);
    	osvojeno_nozeva[id] = OsvojenoNozeva(id);
    	if(!is_user_alive(id))
    	{
    		new target = entity_get_int(id, EV_INT_iuser2);
    		if(target == 0)
    			return PLUGIN_CONTINUE;
    			
    		set_hudmessage(0, 127, 255, 0.02, 0.22, 0, 0.0, 0.21, 0.0, 0.0, 2);
    		ShowSyncHudMsg(id, SyncHudObj, "[Trenutni noz: %s]^n[Ubistva : %i]^n[Otkljucano nozeva : %i]", PodaciNozeva[trenutni_model_noza[target]][Naziv], ubistva_igraca[target], osvojeno_nozeva[target]);
    		return PLUGIN_CONTINUE;
    	}
    	else if(cs_get_user_team(id) == CS_TEAM_SPECTATOR) 
    	{
    		new target = entity_get_int(id, EV_INT_iuser2);
    		if(target == 0)
    			return PLUGIN_CONTINUE;
    			
    		set_hudmessage(0, 127, 255, 0.02, 0.22, 0, 0.0, 0.21, 0.0, 0.0, 2);
    		ShowSyncHudMsg(id, SyncHudObj, "[Trenutni noz: %s]^n[Ubistva : %i]^n[Otkljucano nozeva : %i]", PodaciNozeva[trenutni_model_noza[target]][Naziv], ubistva_igraca[target], osvojeno_nozeva[target]);
    		return PLUGIN_CONTINUE;
    	}
    	else
    	{
    		set_hudmessage(0, 127, 255, 0.02, 0.02, 0, 0.0, 0.21, 0.0, 0.0, 2);
    		ShowSyncHudMsg(id, SyncHudObj, "[Trenutni noz: %s]^n[Ubistva : %i]^n[Otkljucano nozeva : %i]", PodaciNozeva[trenutni_model_noza[id]][Naziv], ubistva_igraca[id], osvojeno_nozeva[id]);
    	}
    }
    Code:
    public RestartUbistava(id)
    {
    	new flags = get_user_flags(id);
    	if(flags & ADMIN_RCON)
    	{
    		/*new iPlayer[32], iNum;
    		get_players(iPlayer, iNum);
    		for(new i; i < iNum; i++)
    		{
    			ubistva_igraca[iPlayer[i]] = 0;
    		}*/
    		arrayset(ubistva_igraca, 0, sizeof(ubistva_igraca));
    		nvault_prune(g_vault, 0, get_systime());
    		server_cmd("changelevel de_dust2");
    	}
    	else
    	{
    		return PLUGIN_HANDLED;
    	}
    }
    Code:
    Warning: Function "PostaviNoz" should return a value on line 154
    Warning: Function "pokazi_podatke" should return a value on line 191
    Warning: Function "RestartUbistava" should return a value on line 270

    АЛАЛ ВЕРА

  47. #47
    Banovani spamer Array
    Join Date
    Jun 2016
    Age
    20
    Karma
    0

    Default

    A nisam ja skontao, na kraju svih funcija dodaj return PLUGIN_CONTINUE i radit ce ti bez warninga
    Last edited by klipica; 01-07-2016 at 10:37.

  48. #48
    Moderator Array klipica's Avatar
    Join Date
    Apr 2010
    Location
    lk-net.com
    Karma
    26

    Default

    U sve 3 funkcije na svim mestima umesto "return PLUGIN_*;" stavi "return;", i u RestartUbistava() ceo "else" blok izbrisi.
    Code:
    #YoMama {
        width: 200%;
        overflow: visible;
    }

  49. #49
    Member Array
    Join Date
    Jun 2016
    Location
    Republika Srpska
    Age
    18
    Karma
    2

    Default

    Quote Originally Posted by klipica View Post
    U sve 3 funkcije na svim mestima umesto "return PLUGIN_*;" stavi "return;", i u RestartUbistava() ceo "else" blok izbrisi.
    Hvala brate, najjači si. Popravljeno i ovo, nema više warninga.

    АЛАЛ ВЕРА

  50. #50
    Moderator Array Megastorm's Avatar
    Join Date
    Sep 2011
    Location
    Tokyo, Japan
    Age
    22
    Karma
    32

    Default

    @picunak
    Videcu ako budem imao viska vremena da odradim jedan simple knife mod (identican ovom sto se tice funkcionalnosti), i okacicu ti kod da mozes ti (a i bilo ko drugi) da naucis neke stvari
    Ne obecavam nista, videcemo kako ce biti i kako cu stajati sa slobodnim vremenom.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •