hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.03.28. 13:30



Jelenlévő felhasználók

Jelenleg 227 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 226 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Google [Bot] az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 15 hozzászólás ]  Oldal 1 2 Következő
Szerző Üzenet
 Hozzászólás témája: INC készítése
HozzászólásElküldve: 2012.09.27. 14:51 
Offline
Félisten
Avatar

Csatlakozott: 2010.09.16. 20:57
Hozzászólások: 950
Megköszönt másnak: 9 alkalommal
Megköszönték neki: 101 alkalommal
Sziasztok!
Most azt fogom fogom leírni, hogyan készítsünk inc-et. Ezeket sok mindenre lehet használni. Pl.: Pluginok közötti kommunikáció, stock több pluginban alkalmazása, forward készítése stb.

1. Inc fájl kezdete, fájlnév:
Az inc fájloknak az első négy sorának igy kell kinéznie:
SMA Forráskód: [ Mindet kijelol ]
  1. #if defined _pelda_included
  2. #endinput
  3. #endif
  4. #define _pelda_included

A példa szerint nekem majd ezt kell a plugin elejére írnom:
SMA Forráskód: [ Mindet kijelol ]
  1. #include <pelda>

És a fájl neve ez lesz:
Kód:
pelda.inc

Értelemszerűen ha a "pelda" szót megváltoztathatod.

2. Stock
Az inc fájlba lehet stock-ot írni. Ezzel azt érjük el, hogy ha egy stock-ot több plugin-ba szeretnénk használni, akkor nem kell az összesbe beleírni.
Egy példa: Színes chat + ékezetek
De hogy itt is legyen valami írok még egy példát:
(Ha valakit érdekel bomba csíkot lehet vele csinálni :mrgreen:)
Van például ez a stock-om:
SMA Forráskód: [ Mindet kijelol ]
  1. stock progress_bar(index,pbtime)
  2. {
  3. message_begin(MSG_ONE,108,{0,0,0},index)
  4. write_byte(pbtime)
  5. write_byte(0)
  6. message_end()
  7. }

Ezt szeretném több plugin-ban használni, inc-et csinálok neki.
Kezdés:
SMA Forráskód: [ Mindet kijelol ]
  1. #if defined _progressbar_included
  2. #endinput
  3. #endif
  4. #define _progressbar_included

Stocknál ha másik inc-et használunk azt is fel kell tüntetni:
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>

Es a végére a stock:
SMA Forráskód: [ Mindet kijelol ]
  1. stock progress_bar(index,pbtime)
  2. {
  3. message_begin(MSG_ONE,108,{0,0,0},index)
  4. write_byte(pbtime)
  5. write_byte(0)
  6. message_end()
  7. }

És végül így fog kinézni:
SMA Forráskód: [ Mindet kijelol ]
  1. #if defined _progressbar_included
  2. #endinput
  3. #endif
  4. #define _progressbar_included
  5.  
  6. #include <amxmodx> //stock-hoz szükséges include
  7.  
  8. stock progress_bar(index,pbtime) //a stock
  9. {
  10. message_begin(MSG_ONE,108,{0,0,0},index)
  11. write_byte(pbtime)
  12. write_byte(0)
  13. message_end()
  14. }

Egy inc-be több stock-ot is rakhatunk.

3. Forward
Amit az előbbiben leírtam nem fogom még egyszer leírni! A forward-ot arra lehet használni, amikor "történik valami" a játékban (pl.: Zombi módban megfertőznek, stb.) arra valamilyen funkciót rakni. Sokszor ezt több plugin-ban is használni szeretnénk erre vannak az inc-ek.
Szükségünk lesz egy vezérlő plugin-ra, ebből fogjuk irányítani...
A kezdést nem írom le. Az esemény amit használni fogok, az ha valaki chat-be írja a "teszt" szót.
Példa: forwardtest.inc:
SMA Forráskód: [ Mindet kijelol ]
  1. #if defined _forwardtest_included
  2. #endinput
  3. #endif
  4. #define _forwardtest_included
  5.  
  6. forward test_command(id) //forward amit_szeretnél(pl:játékos ID)

"vezér plugin":
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2.  
  3. new fwd_testcmd //Egy változóra lesz szükségünk a forward-hoz
  4.  
  5. public plugin_init()
  6. {
  7. register_plugin("[INC] Forward teszt","1.0","Nandee") //Plugin neve, verzió, készítő
  8. fwd_testcmd=CreateMultiForward("test_command", ET_IGNORE, FP_CELL) //Funkciók: 1.amit az incbe a "forward" és a "(" közé írtunk
  9. register_clcmd("say teszt","cmd_teszt")
  10. }
  11.  
  12. public cmd_teszt(id)
  13. {
  14. client_print(id,print_chat,"Beirtad a chat-be a teszt szot!") //Chat üzenet
  15. new fwdtestret
  16.   ExecuteForward(fwd_testcmd,fwdtestret,id) //1. a változó amitez elején megadtunk, 2.visszatérés, 3. A játékos ID-je
  17. }

Forward használata:
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <forwardtest> //inc
  3.  
  4. public plugin_init()
  5. {
  6. register_plugin("[INC] Forward teszt próba","1.0","Nandee") //Plugin neve, verzió, készítő
  7. }
  8.  
  9. public test_command(id)
  10. {
  11. client_print(id,print_chat,"A forward mukodik!") //Visszajelzés a chat-ben
  12. }


4. Native
Ehhez is ugyanúgy "vezér plugin"-ra lesz szükségünk mint a forward-hoz. Ez is sok mindenre használható, én a példámban egy olyan változót fogok készíteni, mint zombi módban a lőszer csomag(aki nem ismeri fizető eszköz). Ehhez már csak példákat írok szerintem ezekből már érteni lehet ;)
forintmod.inc:
SMA Forráskód: [ Mindet kijelol ]
  1. #if defined _forintmod_included
  2. #endinput
  3. #endif
  4. #define _forintmod_included
  5.  
  6. native get_user_forint(id)
  7. native set_user_forint(id,amount)

Vezér plugin:
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2.  
  3. new forint[33] //Egy változó amin a forintot tároljuk
  4.  
  5. public plugin_init()
  6. {
  7. register_plugin("[INC] Forint mod","1.0","Nandee") //Plugin neve, verzió, készítő
  8. }
  9.  
  10. public plugin_natives()
  11. {
  12. register_native("set_user_forint","native_set_user_forint",1)
  13. register_native("get_user_forint","native_get_user_forint",1)
  14. }
  15.  
  16. public native_get_user_forint(index)
  17. {
  18. return forint[index]
  19. }
  20. public native_set_user_forint(index,amount)
  21. {
  22. forint[index]=amount
  23. }

Példa a felhasználásra:
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <forintmod> //inc
  3.  
  4. public plugin_init()
  5. {
  6. register_plugin("[INC] Forint mod teszt","1.0","Nandee") //Plugin neve, verzió, készítő
  7. register_clcmd("say /penz","cmd_penz") //játékos parancs
  8. register_clcmd("say /penzkell","cmd_penzkell") //játékos parancs
  9. }
  10.  
  11. public cmd_penz(id)
  12. {
  13. client_print(id,print_chat,"A penzed:%d",get_user_forint(id))
  14. }
  15.  
  16. public cmd_penzkell(id)
  17. {
  18. client_print(id,print_chat,"Kaptal 300 forintot!")
  19. set_user_forint(id,get_user_forint(id)+300)
  20. }


Vége!
UI:
Szerintem elég konyhanyelven fogalmaztam, aki nem érti az írjon hozzászólást, aki érti és hibát talált vagy valamit jobban írna le az jelezzen nekem.
Aki nem találja a köszönöm gombot annak a hozzászólás jobb alsó sarkában van :)

_________________
Weboldalam: nandee.smmg.hu
Kép


A hozzászólást 1 alkalommal szerkesztették, utoljára Nandee 2012.09.27. 16:28-kor.

Ők köszönték meg Nandee nek ezt a hozzászólást (összesen 7): IrOn (2012.09.27. 15:02) • fear_ezmegmi (2012.09.27. 15:04) • HunGamer (2012.09.27. 15:58) • kiki (2012.09.27. 16:02) • Vinnice (2012.09.27. 20:49) • xXlederXxHUN (2014.09.28. 00:31) • jokypapa (2018.03.09. 15:02)
  Népszerűség: 15.91%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: INC készítése
HozzászólásElküldve: 2012.09.27. 14:54 
Offline
Őskövület
Avatar

Csatlakozott: 2013.01.01. 17:48
Hozzászólások: 2441
Megköszönt másnak: 18 alkalommal
Megköszönték neki: 21 alkalommal
Szép!


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: INC készítése
HozzászólásElküldve: 2012.09.27. 14:57 
Offline
Félisten
Avatar

Csatlakozott: 2010.09.16. 20:57
Hozzászólások: 950
Megköszönt másnak: 9 alkalommal
Megköszönték neki: 101 alkalommal
Bence98007 írta:
Szép!

Köszi :) Több mint 2 óráig írtam 8-)

_________________
Weboldalam: nandee.smmg.hu
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: INC készítése
HozzászólásElküldve: 2012.09.27. 14:58 
Offline
Őskövület
Avatar

Csatlakozott: 2013.01.01. 17:48
Hozzászólások: 2441
Megköszönt másnak: 18 alkalommal
Megköszönték neki: 21 alkalommal
Azért mondtam, hogy szép. :)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: INC készítése
HozzászólásElküldve: 2012.09.27. 15:59 
Offline
Félisten

Csatlakozott: 2012.01.07. 21:10
Hozzászólások: 850
Megköszönt másnak: 9 alkalommal
Megköszönték neki: 154 alkalommal
Gratulálok. Tényleg szép lett. Annyit fűznék csak hozzá hogy a ,,vezér pluginba" nem kell a saját incet beírni.

_________________
Megköszönni nem szégyen!
Csak kattints a Kép jelre. --->


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: INC készítése
HozzászólásElküldve: 2012.09.27. 16:04 
Offline
Developer
Avatar

Csatlakozott: 2011.06.01. 21:11
Hozzászólások: 7962
Megköszönt másnak: 295 alkalommal
Megköszönték neki: 535 alkalommal
Nem rosz, szerintem a lényeget tartalmazza és a kezdők is megértik!

Ez kimondottan tetszik:
set_user_forint(id,amount) //Fele angol fele magyar:)

Illetve "native" és "Forward"-hosz nem muszáj API plugin amit pawnban írsz, egyszerűbb és hatékonyabb több dolgot tudsz elérni ha modulnak írod meg!

_________________
http://www.easyrankup.eu


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: INC készítése
HozzászólásElküldve: 2012.09.27. 16:21 
Offline
Félisten
Avatar

Csatlakozott: 2010.09.16. 20:57
Hozzászólások: 950
Megköszönt másnak: 9 alkalommal
Megköszönték neki: 101 alkalommal
HunGamer írta:
Gratulálok. Tényleg szép lett. Annyit fűznék csak hozzá hogy a ,,vezér pluginba" nem kell a saját incet beírni.
Köszi oké kijavítom :)
kiki írta:
Nem rosz, szerintem a lényeget tartalmazza és a kezdők is megértik!
:) :) :) :)
kiki írta:
Ez kimondottan tetszik:
set_user_forint(id,amount) //Fele angol fele magyar:)
Ez jutott eszembe :)
kiki írta:
Illetve "native" és "Forward"-hosz nem muszáj API plugin amit pawnban írsz, egyszerűbb és hatékonyabb több dolgot tudsz elérni ha modulnak írod meg!
Ezt viszont nem teljesen értem :shock: :mrgreen:

_________________
Weboldalam: nandee.smmg.hu
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: INC készítése
HozzászólásElküldve: 2012.09.27. 20:27 
Offline
Jómunkásember
Avatar

Csatlakozott: 2012.09.23. 20:29
Hozzászólások: 325
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 87 alkalommal
Sziasztok!
Megpróbáltam úgy ahogy le van írva csak ezt a hiba üzenetet kaptam.
Kód:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

Error: Symbol already defined: "plugin_init" on line 5
Error: Undefined symbol "get_user_forint" on line 13
Error: Undefined symbol "set_user_forint" on line 19

3 Errors.
Could not locate output file C:\Documents and Settings\Vinnice\Asztal\Pluginjaim\compiled\Untitled.amx (compile failed).


UI: ugyan azt csináltam amit leírtál.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: INC készítése
HozzászólásElküldve: 2012.09.27. 20:34 
Offline
Tiszteletbeli

Csatlakozott: 2010.02.04. 19:12
Hozzászólások: 3528
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 180 alkalommal
Vinnice írta:
Sziasztok!
Megpróbáltam úgy ahogy le van írva csak ezt a hiba üzenetet kaptam.
Kód:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

Error: Symbol already defined: "plugin_init" on line 5
Error: Undefined symbol "get_user_forint" on line 13
Error: Undefined symbol "set_user_forint" on line 19

3 Errors.
Could not locate output file C:\Documents and Settings\Vinnice\Asztal\Pluginjaim\compiled\Untitled.amx (compile failed).


UI: ugyan azt csináltam amit leírtál.

forrást is adhatnál, gondolom a "vezér plugint" és a példát egy pluginba bemásoltad, ezért van plugin_init 2x(amint a hibában olvasható)

_________________
http://www.ebateam.eu/


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: INC készítése
HozzászólásElküldve: 2012.09.27. 20:36 
Offline
Jómunkásember
Avatar

Csatlakozott: 2012.09.23. 20:29
Hozzászólások: 325
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 87 alkalommal
igen úgy csináltam és hogy lehetne ezt megcsinálni?
(hogy ne legyen 2x a plugin_init)
UI: Nem egy pluginba írtam hanem 1 .inc egy .sma


Edit: Már Nem kell Köszönöm Megoldottam :D


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 15 hozzászólás ]  Oldal 1 2 Következő


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 0 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole