miecz magiczny 2886 12

O temacie

Autor turkurun

Zaczęty 15.12.2009 roku

Wyświetleń 2886

Odpowiedzi 12

turkurun

turkurun

Użytkownicy
posty12
  • Użytkownicy
Mam problem ze skryptem na miecz magiczny, robię tak jak jest według tutoriala, ale podczas gry miecz zachowuje się jakby był zwykłym mieczem, proszę o pomoc.
 


turkurun

turkurun

Użytkownicy
posty12
  • Użytkownicy
wyzwalał efekt
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

miecz magiczny
#3 2009-12-15, 21:39(Ostatnia zmiana: 2009-12-15, 21:41)
Domyślam się że korzystałeś z tego: http://themodders.org/index.php?showtopic=100 tutka. Czy wypęłniłeś ten fragment instrukcji?:

Cytuj
Reakcjami zajmiemy się na końcu teraz podam na początku jakich funkcji należy użyć, aby to wywołać:

weaponreaction(other,self);
ZS_Reacttodamage
B_CombatReacttodamage
B_MM_ReactToDamage
B_MM_ReactToCombatDamage
B_Orc_AssessDamage
Jest on napisany trochę niejasno, oznacza że w podanych funkcjach trzeba dodać wywołanie do funkcji efektu. Większość problemów z jakimi się ostatnio zetknąłem polegała na tym że użytkownicy tylko kopiowali funkcję a nigdzie nie umieszczali wywołań do niej.

turkurun

turkurun

Użytkownicy
posty12
  • Użytkownicy
http://themodders.org/index.php?showtopic=5900
korzystałem z tego tutka

tak dla ułatwienia podam jakie skrypty gdzie dodałem
zrobiłem taki skrypt broni
w IT_Melee_Weapons
Cytuj
INSTANCE ItMw_runa (C_Item)
{
name = "Potężny miecz zniszczenia";

mainflag = ITEM_KAT_NF;
flags = ITEM_SWD;
material = MAT_METAL;

value = 99999;

damageTotal = 1;
damagetype = DAM_EDGE;
range = 120;

cond_atr[2] = ATR_STRENGTH;
cond_value[2] = Condition_MiscSword;
visual = "ItMw_020_1h_sword_old_01.3DS";

description = name;
TEXT[2] = NAME_Damage; COUNT[2] = damageTotal;
TEXT[3] = NAME_Str_needed; COUNT[3] = cond_value[2];
TEXT[4] = NAME_OneHanded;
TEXT[5] = NAME_Value; COUNT[5] = value;
};

takie coś wstawiłem do b_assessdamage
Cytuj
func void B_U (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 (1);
procent_trafienia = 100;
obrazenia = 200;

if (Npc_HasItems(hero, ItMw_runa) == TRUE && Hlp_IsItem(ready, ItMw_runa) == TRUE)
&& (randomdmg <= procent_trafienia)
{
if (slf.flags != NPC_FLAG_IMMORTAL)
{
Wld_PlayEffect("spellFX_Firestorm_SPREAD", slf, slf, 1, 1, 1, FALSE );
B_MagicHurtNpc (slf, slf, obrazenia);

Wld_PlayEffect("spellFX_FireRain", slf, slf, 1, 1, 1, FALSE );
B_MagicHurtNpc (slf, slf, obrazenia);

Wld_PlayEffect("spellFX_Beliarweapon", slf, slf, 1, 1, 1, FALSE );
B_MagicHurtNpc (slf, slf, obrazenia);

Wld_PlayEffect("spellFX_FireRain_RAIN", slf, slf, 1, 1, 1, FALSE );
B_MagicHurtNpc (slf, slf, obrazenia);
};
Wld_PlayEffect("spellFX_Zap_COLLIDE", hero, hero, 1, 1, 1, FALSE );

Wld_PlayEffect("spellFX_Sleep_ORIGIN", hero, hero, 1, 1, 1, FALSE );
};

if (Npc_HasItems(hero, ItMw_runa) == TRUE && Hlp_IsItem(ready, ItMw_runa) == TRUE)
&& (randomdmg <= procent_trafienia)
{
Wld_PlayEffect("spellFX_Zap_COLLIDE", hero, hero, 1, 1, 1, FALSE );

Wld_PlayEffect("spellFX_Sleep_ORIGIN", hero, hero, 1, 1, 1, FALSE );
};
};
};

a te skrypt wstawiłem do B_MM_AssessDamage.D
Cytuj
B_U(other, self);

może mi ktoś poda jaki błąd zrobiłem??
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Przecież o tych dwóch plikach b_assessdamage i B_MM_AssessDamage w ogóle nie było mowy, odwołania do swojej funkcji miałeś dodać w funkcjachZS_Reacttodamage
B_CombatReacttodamage
B_MM_ReactToDamage
B_MM_ReactToCombatDamage
B_Orc_AssessDamage
I nie wystarczy skopiować swojej funkcji do każdej, z nich, bo to spowoduje nałożenie się identyfikatorów, samą funkcję zapisz w odrębnym pliku który będzie w kolejce reparsowania przed tamtymi. Zaś w nich dodaj tylko wywołanie: B_U(other, self);

turkurun

turkurun

Użytkownicy
posty12
  • Użytkownicy
a mogę prosić żeby ktoś powiedział gdzie są pliki
Cytuj
B_CombatReacttodamage
B_MM_ReactToDamage
B_MM_ReactToCombatDamage
B_Orc_AssessDamage
bo szukam chyba po raz 3 i znaleźć nie mogę
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

miecz magiczny
#7 2009-12-16, 14:41(Ostatnia zmiana: 2009-12-16, 14:43)
a mogę prosić żeby ktoś powiedział gdzie są pliki

bo szukam chyba po raz 3 i znaleźć nie mogę
_Work\Data\Scripts\Content\AI\ZS_Human\ZS_ReactToDamage.d
_Work\Data\Scripts\Content\AI\B_Human\B_CombatReacttodamage.d
_Work\Data\Scripts\Content\AI\Orc\B_Orc_AssessDamage.d
_Work\Data\Scripts\Content\AI\ZS_Monster\ZS_MM_Master.d
W tym ostatnim pliku jest druga i trzecia wymieniona przez ciebie funkcja.

turkurun

turkurun

Użytkownicy
posty12
  • Użytkownicy
u mnie nie ma B_CombatReacttodamage.d ani ZS_MM_Master.d ani folderu orc
 


turkurun

turkurun

Użytkownicy
posty12
  • Użytkownicy
tyle że g2mdk mam zainstalowany
 


turkurun

turkurun

Użytkownicy
posty12
  • Użytkownicy

turkurun

miecz magiczny
#12 2009-12-16, 15:44(Ostatnia zmiana: 2009-12-16, 16:18)
dobra jakoś mi się udało temat można zamknąć

OK, zamykam
Avallach
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry