hlmod.hu

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



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: nincs regisztrált felhasználó 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  [ 5 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: [TUT]Npc készítés máshogy
HozzászólásElküldve: 2012.10.31. 18:12 
Offline
Tud valamit
Avatar

Csatlakozott: 2011.12.23. 16:16
Hozzászólások: 100
Megköszönt másnak: 4 alkalommal
[kozep]Miért kell egy harmadik is?[/kozep]
1) Mert a másik 2 más parancsokat használ.
2) Mert ezeket a parancsokat használják a legtöbben. (Dr.Npc, Lézer mod, stb)
3) Mert ha már dolgoztam vele mért ne osszam meg?


Itt a kód, megjegyzésekkel együtt:
[ablak]
SMA Forráskód: [ Mindet kijelol ]
  1. /* Plugin generated by AMXX-Studio */
  2.  
  3. #include <amxmodx>
  4. #include <fakemeta>
  5. #include <xs>
  6.  
  7. #define PLUGIN "NPC 0.2"
  8. #define VERSION "0.2"
  9. #define AUTHOR "Itep"
  10.  
  11. new const g_npcModel[] = "models/player/gsg9/gsg9.mdl",
  12. g_fegyomdl[] = "models/p_gauss.mdl";
  13.  
  14.  
  15. public plugin_init() {
  16. register_plugin(PLUGIN, VERSION, AUTHOR)
  17. register_clcmd("NPC", "spawn");
  18. }
  19.  
  20. public plugin_precache()
  21. {
  22. precache_model(g_npcModel)
  23. precache_model(g_fegyomdl)
  24. }
  25.  
  26.  
  27. public spawn(id)
  28. {
  29. new g_npc = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target")); //Létrehozzuk az NPC-t
  30. engfunc(EngFunc_SetModel, g_npc, g_npcModel); //Beállítjuk a modelljét
  31. new Float:maxs[3] = {16.0,16.0,36.0}
  32. new Float:mins[3] = {-16.0,-16.0,-36.0}
  33. engfunc(EngFunc_SetSize, g_npc,mins,maxs); //Beállítjuk a "méretét"
  34.  
  35. // Lehelyezzük oda ahova a célkeresztünk néz
  36. new Float:origin[3], Float:TD[3], Float:TE[3], Float:N[3];
  37. pev(id, pev_origin, origin ); //lekérjük a mi pozíciónkat
  38. velocity_by_aim( id, 512, TD ); //azt is hogy hova nézünk (512 távolágon belül)
  39. xs_vec_add( TD, origin, TE );
  40. engfunc( EngFunc_TraceLine, origin, TE, DONT_IGNORE_MONSTERS, id, 0 );
  41. new Float:fF;
  42. get_tr2( 0, TR_flFraction, fF );
  43. if ( fF < 1.0 )
  44. {
  45. get_tr2( 0, TR_vecEndPos, TE );
  46. get_tr2( 0, TR_vecPlaneNormal, N );
  47. }
  48. xs_vec_mul_scalar( N, 36.5, N ); //a 36.5 távolság a faltól (hogy ne rakja bele)
  49. xs_vec_add( TE, N, origin );
  50. engfunc(EngFunc_SetOrigin, g_npc, origin); //itt helyezzük le az NPC-t
  51.  
  52. //Beállítjuk hogy merre nézzen
  53. new Float:angles[3];
  54. pev(id, pev_angles, angles); //lekérjük a mi nézési szögünket
  55. angles[0]=0.0; // hogy ne feküdjön
  56. set_pev(g_npc, pev_angles, angles); //beállítjuk neki ugyan azt mint a milyenk
  57.  
  58. set_pev(g_npc, pev_solid, SOLID_BBOX); // Szilárdságát itt tudjuk állítani
  59. set_pev(g_npc, pev_classname, "npc_elso"); //Megadjuk a nevét
  60.  
  61.  
  62. // Beállítunk neki egy animációt
  63. set_pev(g_npc, pev_animtime, 2.0); // állandó értékű
  64. set_pev(g_npc, pev_framerate, 1.0); // állandó értékű
  65. set_pev(g_npc, pev_sequence, 1); // az animáció sorszáma
  66.  
  67. // Beállítjuk a bone pozíciót
  68. set_pev(g_npc, pev_controller_0, 125);
  69. set_pev(g_npc, pev_controller_1, 125);
  70. set_pev(g_npc, pev_controller_2, 125);
  71. set_pev(g_npc, pev_controller_3, 125);
  72.  
  73. // Beállítjuk a hp-ját
  74. set_pev(g_npc, pev_takedamage, 1.0); // Ha ez 0 akkor halhatatlan
  75. set_pev(g_npc, pev_health, 100.0); // Ez a hp-ja
  76.  
  77. // Adunk neki fegyvert
  78. give_item(g_npc);
  79.  
  80.  
  81. return PLUGIN_CONTINUE;
  82. }
  83.  
  84. public give_item(ent)
  85. {
  86. new g_fegyo = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
  87. set_pev(g_fegyo, pev_classname, "npc_weapon");
  88. set_pev(g_fegyo, pev_solid, SOLID_NOT);
  89. set_pev(g_fegyo, pev_movetype, MOVETYPE_FOLLOW); // beállítjuk hogy kövesse az Npc-t.
  90. set_pev(g_fegyo, pev_aiment, ent);
  91. set_pev(g_fegyo, pev_sequence, 1);
  92. engfunc(EngFunc_SetModel, g_fegyo, g_fegyomdl);
  93. }

 [/ablak]
Ha hibáztam valahol, jelezzétek.
Ha van rá igény részletesebben, tagoltabban is bemutatom.


*Egy valamit nem értek a fent látható, működőkepés kódban: miért lehet átmenni az emberen, amikor solid_bbox-ra van rakva?

_________________
[mozgo]Counter-Strike Source[/mozgo]
[kozep]Kalapács mod
Fun_VP3 Pálya
Anti Frag Lopó & Sebzés Kiíró & Kezdő Kill Blockoló

Menekülj![/kozep]


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [TUT]Npc készítés máshogy
HozzászólásElküldve: 2012.11.03. 13:51 
Offline
Imperátor
Avatar

Csatlakozott: 2009.04.21. 09:33
Hozzászólások: 3991
Megköszönt másnak: 5 alkalommal
Megköszönték neki: 135 alkalommal
Tök fölösleges, de hagyom. Ha n NPCt akarnék letenni a mapra, akkor nem vacakolnák azzal, hogy oda tegye, ahova nézek.
Blokkolás: Lehet nem info_target classt kéne használni, hanem másmilyet. (pl. func_breakable, vagy más)

_________________
Kód:
I'm back

Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [TUT]Npc készítés máshogy
HozzászólásElküldve: 2012.11.03. 13:55 
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
vagy func_wall


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [TUT]Npc készítés máshogy
HozzászólásElküldve: 2012.11.03. 14:15 
Offline
Tud valamit
Avatar

Csatlakozott: 2011.12.23. 16:16
Hozzászólások: 100
Megköszönt másnak: 4 alkalommal
Metal írta:
Tök fölösleges, de hagyom. Ha n NPCt akarnék letenni a mapra, akkor nem vacakolnák azzal, hogy oda tegye, ahova nézek.
Blokkolás: Lehet nem info_target classt kéne használni, hanem másmilyet. (pl. func_breakable, vagy más)


1) Ha kint lett volna, 1 nappal kevesebbet szaroztam volna (mivel a set_pev-et gyakrabban használják mint az entity_set-et)
2) Ez volt az első amit próbáltam ( func_breakable ). Ugyan az a hatás.

(De azért köszönöm hogy kinthagytad)

_________________
[mozgo]Counter-Strike Source[/mozgo]
[kozep]Kalapács mod
Fun_VP3 Pálya
Anti Frag Lopó & Sebzés Kiíró & Kezdő Kill Blockoló

Menekülj![/kozep]


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [TUT]Npc készítés máshogy
HozzászólásElküldve: 2012.11.03. 14:24 
Offline
Imperátor
Avatar

Csatlakozott: 2009.04.21. 09:33
Hozzászólások: 3991
Megköszönt másnak: 5 alkalommal
Megköszönték neki: 135 alkalommal
Hogy most set_pev-et(fakemeta) vagy entity_set-et (engine)) hazsnálsz, az attól függ, milyen modult alkalmazol, a hatás ugyanaz lesz. Érdemes csak egyet használni.
Ha nem jó, az probléma, valahol elakad, vagy valamelyik parancs felüldefiniálja az értékét. Először csak az entityt pakold le a méretével s modeljével (bone, stb dolgot addig pakold ki belőle). Ha így ok, akkor a további kódban hasal el.

_________________
Kód:
I'm back

Kép

Ők köszönték meg Metal nek ezt a hozzászólást: peti.97 (2012.11.03. 14:28)
  Népszerűség: 2.27%


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  [ 5 hozzászólás ] 


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