Aktualnie pracujemy nad:
Zadaniami pobocznymi do modyfikacji Bandyta
Obecnie taki miecz runiczny można dostać prawie wszędzie, pokaże wam jak takie coś zrobić, krok po kroku.
Przechodzimy do folderu:
x:\Program Files\JoWood\Gothic II\_Work\data\Scripts\Content\AI\Human\B_Human otwieramy
B_AssessDamage
I robimy taki skrypt
w 7-mej linijce od góry
func void B_runiczny (var C_NPC oth, var C_NPC slf) { if (Hlp_GetInstanceID(oth) == Hlp_GetInstanceID(hero)) { var C_ITEM ready; var int randomdmg; var int procent_trafienia; var int obrazenia; ready = Npc_GetReadiedWeapon(hero); randomdmg = Hlp_Random (80); procent_trafienia = 50; obrazenia = 50; if (Npc_HasItems(hero, ItMw_2H_Special_04) == TRUE && Hlp_IsItem(ready, ItMw_2H_Special_04) == TRUE) && (randomdmg <= procent_trafienia) { if (slf.flags != NPC_FLAG_IMMORTAL) { Wld_PlayEffect("spellFX_Sleep_TARGET", slf, slf, 0, 0, 0, FALSE ); B_MagicHurtNpc (slf, slf, obrazenia); AI_PlayAniBS (self, "T_STAND_2_VICTIM_SLE", BS_LIE ); }; Wld_PlayEffect("spellFX_Sleep_ORIGIN", hero, hero, 0, 0, 0, FALSE ); }; if (Npc_HasItems(hero, ItMw_2H_Special_04) == TRUE && Hlp_IsItem(ready, ItMw_2H_Special_04) == TRUE) && (randomdmg <= procent_trafienia) { Wld_PlayEffect("spellFX_Sleep_ORIGIN", hero, hero, 0, 0, 0, FALSE ); }; }; };
Nstępnie trche niżej zaraz pod
B_BeliarsWeaponSpecialDamage (other, self);
piszemy:
B_runiczny (other, self);
Zrobiliśmy miecz który usypia, ale działa to tylko na ludziach,
aby czar działał na potwory wchodzimy do tego folderu
x:\Program Files\JoWood\Gothic II\_Work\data\Scripts\Content\AI\Monster\B_Monster
i otwieramy
B_MM_AssessDamage.D
i podobnie jak przedtem zaraz pod
B_BeliarsWeaponSpecialDamage (other, self);
wklejamy skrypt naszego miecza
czyli w moim przypadku
B_runiczny (other, self);
Poniżej jest dokładnie wytłumaczone znaczenie każdej z tych linijek:
func void B_runiczny (var C_NPC oth, var C_NPC slf)- co tu dużo mówić, to po prostu nowa funkcja, niezbędna, działa tylko z npc-tami
if (Hlp_GetInstanceID(oth) == Hlp_GetInstanceID(hero))
{
var C_ITEM ready;
var int randomdmg;
var int procent_trafienia;
var int obrazenia;
pisze tam przy jaki npc-ecie (w tym przypadku bezii) będzie działał miecz runiczny
wszystkie linijki z var... coś tam są niżej mają ustawione współczynniki dla miecza
ready = Npc_GetReadiedWeapon(hero);
randomdmg = Hlp_Random (80);
procent_trafienia = 50;
obrazenia = 50;
tutaj są wypisane wartości wszystkie dla tego miecza, czyli kiedy procent trafienia będzie wynosił 50, miecz wyzwoli czar i odejmie celowi 50 punktw życia
if (Npc_HasItems(hero, ItMw_2H_Special_04) == TRUE && Hlp_IsItem(ready, ItMw_2H_Special_04) == TRUE)
&& (randomdmg <= procent_trafienia)
z jakim mieczem ma działać czar, nie będe sie tu rozpisywał, po prostu to jest ważne, tak samo jak niżej
if (slf.flags != NPC_FLAG_IMMORTAL)
na kogo miecz ma działać, ew. tutaj można ddodać wyjątki
Wld_PlayEffect("spellFX_Sleep_TARGET", slf, slf, 0, 0, 0, FALSE );
B_MagicHurtNpc (slf, slf, obrazenia);
efekt który się wyzwala, czyli efekt snu
AI_PlayAniBS (self, "T_STAND_2_VICTIM_SLE", BS_LIE );
animacja, czyli co się stanie z trafionym celem (tutaj uśnie)
Lesterek17-Oczyściłem temat.
Ostatnio edytowany przez Szymek1994s (2010-03-09 21:38:12)
Offline