Cześć,
Próbuję od kilku godzin dodać możliwość wykucia nowego przedmiotu na kowadle. Zrobiłem wszystko, co jest opisane w tym wątku:
https://themodders.org/index.php?topic=21129.0Niestety bez efektów. Oto, co zrobiłem:
1) W Constants.d zmieniłem MAX_WEAPONS i dodałem nową stałą dla swojego przedmiotu:
const int WEAPON_ArrowHead = 13;
const int MAX_WEAPONS = 14;
2) dodałem instancję nowego przedmiotu do IT_Melee_Weapons.d:
INSTANCE ItMw_Arrowhead (C_Item)
{
name = "Groty";
mainflag = ITEM_KAT_NF;
flags = ITEM_SWD;
material = MAT_METAL;
value = Value_Common1;
damageTotal = Damage_Common1;
damagetype = DAM_EDGE;
range = Range_Common1;
on_equip = Equip_1H_05;
on_unequip = UnEquip_1H_05;
cond_atr[2] = ATR_STRENGTH;
cond_value[2] = Condition_Common1;
visual = "ItMw_030_1h_Common_Sword_01.3DS";
description = name;
TEXT[2] = NAME_Damage; COUNT[2] = damageTotal;
TEXT[3] = NAME_Str_needed; COUNT[3] = cond_value[2];
TEXT[4] = NAME_ADDON_BONUS_1H; COUNT[4] = Waffenbonus_05;
TEXT[5] = NAME_Value; COUNT[5] = value;
};
(na razie tylko na szybko na podstawie byle jakiej innej broni)
3) w SmithWeapons.d dodałem instancję i funkcje dla mojego przedmiotu:
//*********** MOJE - groty do strzal ********************
INSTANCE PC_ItMw_ArrowHead (C_INFO)
{
npc = PC_Hero;
condition = PC_ItMw_ArrowHead_Condition;
information = PC_ItMw_ArrowHead_Info;
permanent = TRUE;
};
FUNC INT PC_ItMw_ArrowHead_Condition()
{
if((PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (PLAYER_TALENT_SMITH[WEAPON_ArrowHead] == TRUE))
&& (Normalwaffen == TRUE)
{
return TRUE;
};
};
FUNC VOID PC_ItMw_ArrowHead_Info ()
{
CreateInvItems (hero, ItMw_ArrowHead, 1);
Print (PRINT_SmithSuccess);
B_ENDPRODUCTIONDIALOG ();
Normalwaffen = FALSE;
};
oraz na końcu w funkcji FUNC VOID SMITHWEAPON_S1 () linijkę:
PC_ItMw_ArrowHead.description = "Groty";
4) w dialogu Harada zmieniłem jedną linijkę, tak żeby mnie uczył mojej broni:
func void B_HaradSmithChoices()
{
............
else
//if (PLAYER_TALENT_SMITH[WEAPON_Common] == FALSE)
{
Info_AddChoice (DIA_Harad_TeachSmith, B_BuildLearnString("Ucz sie grotów strzal " , B_GetLearnCostTalent(other, NPC_TALENT_SMITH, WEAPON_ArrowHead)) ,DIA_Harad_TeachSmith_ArrowHead);
//Info_AddChoice (DIA_Harad_TeachSmith, B_BuildLearnString("Schmieden lernen " , B_GetLearnCostTalent(other, NPC_TALENT_SMITH, WEAPON_Common)) ,DIA_Harad_TeachSmith_Common);
};
};
5) w TeachPlayerTalentSmith.d dodałem warunek, który uczy postać wykuwania mojego przedmiotu
if (waffe == WEAPON_ArrowHead) { PLAYER_TALENT_SMITH[WEAPON_ArrowHead] = TRUE;
B_LogEntry (TOPIC_TalentSmith,"cos tam cos tam."); };
Efekt:
U Harada pojawia się dialog do nauki, po nauczeniu dostaję wpis w dzienniku ("coś tam cos tam"
), niestety na kowadle w ogóle nie ma opcji wykucia grotów strzał. Autor wątku, do którego dałem linka pisał o tym, że ma puste miejsce w monologu kowadła, ale może wykuć przedmiot - u mnie się nie da, nie ma ani opcji do wyboru, ani pustego miesjca.
Pomóżcie, bo już mnie coś trafia. Pół dnia spędziłem nad prostą w sumie rzeczą, a i tak dalej nie działa