Dawno nie zajmowałem się moddingiem, ostanio coś mnie naszło i z tej właśnie okazji odświeżę ten oto tu temat
Podsumujmy zebrane dotychczas informacje:
Moim celem jest utworzenie miecza, który po uderzeniu w cel zamraża go, oraz zadaje obrażenia. Stworzyłem więc skrypt na podstawie tutka:
http://themodders.org/index.php?/topic/100-magiczna-bron/I po kilkudziesięciu poprawkach kierowanych Waszymi radami wyszło mi ot coś takiego:
INSTANCE beliar (C_Item)
{
name = "Szpon Beliara";
mainflag = ITEM_KAT_NF;
flags = ITEM_SWD;
material = MAT_METAL;
value = 0;
damageTotal = 150;
damagetype = DAM_EDGE;
range = 100;
cond_atr[2] = ATR_STRENGTH;
cond_value[2] = 75;
visual = "ItMw_BeliarWeapon_1H.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] = "Szpon Beliara jest teraz bronią jednoręczną...";
};
FUNC VOID weaponreaction()
{
var c_item weapon; weapon = Npc_GetReadiedWeapon (other);
if(Hlp_IsItem(weapon,beliar))
{
Wld_PlayEffect("spellFX_IceCube",other,self,0,0,0,FALSE);
AI_StartState (self, ZS_MagicFreeze, 0, "");
};
};
func void B_Orc_AssessCombatDamage()
{
weaponreaction();
};
func int CmpNpc(var c_npc p1,var c_npc p2)
{
var int old1;
var int old2;
var int result;
old1=p1.aivar[0];
old2=p2.aivar[0];
p1.aivar[0]=0;
p2.aivar[0]=1;
result=p1.aivar[0];
p1.aivar[0]=old1;
p2.aivar[0]=old2;
return result;
};
func void Sbd_is_damaged()
{
//ERRATA if (self==other&&hero==victim)
if(Npc_IsPlayer(victim)&&CmpNpc(self,other))
{
weaponreaction();
};
};
Ponadto dodałem wpis:
weaponreaction();
W tych plikach:
ZS_Reacttodamage
B_CombatReacttodamage
B_MM_ReactToDamage
B_MM_ReactToCombatDamage
B_Orc_AssessDamage
Otrzymałem również info, że należy utworzyć plik B_AssessDamage.d, którego w G1 nie ma i w którym należy dodać coś w rodzaju czegoś tam, co wyzwoli funkcje:
B_Orc_AssessCombatDamage() oraz Sbd_is_damaged()
Od razu mówię: Nie wiem, jak to zrobić i jak ma wyglądać treść tego skryptu. To pierwsza sprawa, w której potrzebuję pomocy, ale podsumuję to później...
No i to by było w sumie na tyle, jeśli chodzi o posumowanie. Teraz opiszę problemy jakie wynikły z utworzenia mojego tu oto skryptu miecza zamrażającego:
1. Po uderzeniu miecz zamraża, owszem, zamraża, jednak gdy postać się odmrozi z miecza wylatuje lodowy pocisk, który to powoduje ponowne zamrożenie bez mojej ingerencji oraz zabiera hp. W skrócie, mogę gościa trafić raz, iść sobie zjeść obiadek, kolację (co tam mi na myśl wpadnie), a po powrocie postać leży zabita i mogę kosić dalej.
2. Problem, nie problem. Jak już wyżej wspomniałem muszę lub też nie muszę utworzyć pliku B_AssessDamage.d. Jak ma on wyglądać?
Dziękuję za uwagę, oraz proszę o pomoc, w sprawie tych dwóch problemów wyżej.
Pozdrawiam, Buras