Диккен
Участник форума
- Регистрация
- 12 Июн 2004
- Сообщения
- 469
- Благодарности
- 127
- Баллы
- 210
Назначение: Готика 2, "Готика 2 - Ночь Ворона" и любые модификации.
Установка
1. Изменить в Gothic.ini ключ "usePotionKeys=0" на "usePotionKeys=1"
2. Назначить клавишу в "меню - настройки - управление - настройка дополнительных клавиш - лечебное зелье".
3. Изменить .\Story\Dialog_Mobsis\B_OnHotkey.d
4. Скомпилировать Gothic.DAT
Применение
У плиты нажать клавишу для лечебных зелий несколько раз, чтобы поджарить все или только часть сырого мяса.
B_OnHotkey.d (не требует начала новой игры)
B_OnHotkey.d (через диалог с выбором вариантов ответов, требует начала новой игры)
Установка
1. Изменить в Gothic.ini ключ "usePotionKeys=0" на "usePotionKeys=1"
2. Назначить клавишу в "меню - настройки - управление - настройка дополнительных клавиш - лечебное зелье".
3. Изменить .\Story\Dialog_Mobsis\B_OnHotkey.d
4. Скомпилировать Gothic.DAT
Применение
У плиты нажать клавишу для лечебных зелий несколько раз, чтобы поджарить все или только часть сырого мяса.
B_OnHotkey.d (не требует начала новой игры)
Daedalus:
func void player_hotkey_lame_heal()
{
var int rawmeat;
if(Npc_IsInState(hero,ZS_Dead) == FALSE)
{
if(C_BodyStateContains(hero,BS_MOBINTERACT_INTERRUPT))
{
if(Wld_GetMobState(hero,"STOVE") == 1) && Npc_HasItems(hero,ItFoMuttonRaw)
{
rawmeat = Npc_HasItems(hero,ItFoMuttonRaw);
if(rawmeat >= 10)
{
Npc_RemoveInvItems(hero,ItFoMuttonRaw,10);
CreateInvItems(hero,ItFoMutton,10);
Print(ConcatStrings("Сырое мясо ",IntToString(Npc_HasItems(hero,ItFoMuttonRaw))));
Print(ConcatStrings("Жареное мясо ",IntToString(Npc_HasItems(hero,ItFoMutton))));
}
else
{
CreateInvItems(hero,ItFoMutton,rawmeat);
Npc_RemoveInvItems(hero,ItFoMuttonRaw,rawmeat);
Print(ConcatStrings(PRINT_ProdItemsMissing,ItFoMuttonRaw.name));
AI_UseMob(hero,"STOVE",-1);
};
return;
};
};
if(Npc_HasItems(hero,ItPo_Health_03) && ((hero.attribute[ATR_HITPOINTS_MAX] - hero.attribute[ATR_HITPOINTS]) >= (HP_Elixier)))
{
Npc_ChangeAttribute(hero,ATR_HITPOINTS,HP_Elixier);
Npc_RemoveInvItem(hero,ItPo_Health_03);
B_LameSchlork();
}
else if(Npc_HasItems(hero,ItPo_Health_02) && ((hero.attribute[ATR_HITPOINTS_MAX] - hero.attribute[ATR_HITPOINTS]) >= (HP_Extrakt)))
{
Npc_ChangeAttribute(hero,ATR_HITPOINTS,HP_Extrakt);
Npc_RemoveInvItem(hero,ItPo_Health_02);
B_LameSchlork();
}
else if(Npc_HasItems(hero,ItPo_Health_01) && ((hero.attribute[ATR_HITPOINTS_MAX] - hero.attribute[ATR_HITPOINTS]) >= (HP_Essenz)))
{
Npc_ChangeAttribute(hero,ATR_HITPOINTS,HP_Essenz);
Npc_RemoveInvItem(hero,ItPo_Health_01);
B_LameSchlork();
}
else if(hero.attribute[ATR_HITPOINTS_MAX] != hero.attribute[ATR_HITPOINTS])
{
if(Npc_HasItems(hero,ItPo_Health_01))
{
Npc_ChangeAttribute(hero,ATR_HITPOINTS,HP_Essenz);
Npc_RemoveInvItem(hero,ItPo_Health_01);
B_LameSchlork();
}
else if(Npc_HasItems(hero,ItPo_Health_02))
{
Npc_ChangeAttribute(hero,ATR_HITPOINTS,HP_Extrakt);
Npc_RemoveInvItem(hero,ItPo_Health_02);
B_LameSchlork();
}
else if(Npc_HasItems(hero,ItPo_Health_03))
{
Npc_ChangeAttribute(hero,ATR_HITPOINTS,HP_Elixier);
Npc_RemoveInvItem(hero,ItPo_Health_03);
B_LameSchlork();
}
else
{
Print("Нет лечебных зелий!");
};
else
{
Print("Уже максимальное здоровье!");
};
};
};
B_OnHotkey.d (через диалог с выбором вариантов ответов, требует начала новой игры)
Daedalus:
instance PC_STOVE_HEND(C_Info)
{
npc = PC_Hero;
nr = 990;
condition = pc_stove_end_condition;
permanent = TRUE;
};
instance PC_STOVE_END(C_Info)
{
npc = PC_Hero;
nr = 999;
condition = pc_stove_end_condition;
information = pc_stove_end_info;
permanent = TRUE;
description = Dialog_Ende;
};
func int pc_stove_end_condition()
{
if(PLAYER_MOBSI_PRODUCTION == 10)
{
return TRUE;
};
};
func void pc_stove_end_info()
{
b_endproductiondialog();
};
instance PC_ITFOMUTTON(C_Info)
{
npc = PC_Hero;
condition = pc_itfomutton_condition;
information = pc_itfomutton_info;
permanent = TRUE;
description = "Поджарить мясо";
};
func int pc_itfomutton_condition()
{
if(PLAYER_MOBSI_PRODUCTION == 10)
{
return TRUE;
};
};
func void pc_itfomutton_info()
{
var int rawmeat;
rawmeat = Npc_HasItems(hero,ItFoMuttonRaw);
if(rawmeat >= 10)
{
Npc_RemoveInvItems(hero,ItFoMuttonRaw,10);
CreateInvItems(hero,ItFoMutton,10);
Print(ConcatStrings("Сырое мясо ",IntToString(Npc_HasItems(hero,ItFoMuttonRaw))));
Print(ConcatStrings("Жареное мясо ",IntToString(Npc_HasItems(hero,ItFoMutton))));
}
else
{
CreateInvItems(hero,ItFoMutton,rawmeat);
Npc_RemoveInvItems(hero,ItFoMuttonRaw,rawmeat);
Print(ConcatStrings(PRINT_ProdItemsMissing,ItFoMuttonRaw.name));
b_endproductiondialog();
};
};
func void player_hotkey_lame_heal()
{
if(Npc_IsInState(hero,ZS_Dead) == FALSE)
{
if(C_BodyStateContains(hero,BS_MOBINTERACT_INTERRUPT))
{
if(Wld_GetMobState(hero,"STOVE") == 1) && Npc_HasItems(hero,ItFoMuttonRaw)
{
PLAYER_MOBSI_PRODUCTION = 10;
AI_ProcessInfos(hero);
return;
};
};
if(Npc_HasItems(hero,ItPo_Health_03) && ((hero.attribute[ATR_HITPOINTS_MAX] - hero.attribute[ATR_HITPOINTS]) >= HP_Elixier))
{
Npc_ChangeAttribute(hero,ATR_HITPOINTS,HP_Elixier);
Npc_RemoveInvItem(hero,ItPo_Health_03);
B_LameSchlork();
}
else if(Npc_HasItems(hero,ItPo_Health_02) && ((hero.attribute[ATR_HITPOINTS_MAX] - hero.attribute[ATR_HITPOINTS]) >= HP_Extrakt))
{
Npc_ChangeAttribute(hero,ATR_HITPOINTS,HP_Extrakt);
Npc_RemoveInvItem(hero,ItPo_Health_02);
B_LameSchlork();
}
else if(Npc_HasItems(hero,ItPo_Health_01) && ((hero.attribute[ATR_HITPOINTS_MAX] - hero.attribute[ATR_HITPOINTS]) >= HP_Essenz))
{
Npc_ChangeAttribute(hero,ATR_HITPOINTS,HP_Essenz);
Npc_RemoveInvItem(hero,ItPo_Health_01);
B_LameSchlork();
}
else if(hero.attribute[ATR_HITPOINTS_MAX] != hero.attribute[ATR_HITPOINTS])
{
if(Npc_HasItems(hero,ItPo_Health_01))
{
Npc_ChangeAttribute(hero,ATR_HITPOINTS,HP_Essenz);
Npc_RemoveInvItem(hero,ItPo_Health_01);
B_LameSchlork();
}
else if(Npc_HasItems(hero,ItPo_Health_02))
{
Npc_ChangeAttribute(hero,ATR_HITPOINTS,HP_Extrakt);
Npc_RemoveInvItem(hero,ItPo_Health_02);
B_LameSchlork();
}
else if(Npc_HasItems(hero,ItPo_Health_03))
{
Npc_ChangeAttribute(hero,ATR_HITPOINTS,HP_Elixier);
Npc_RemoveInvItem(hero,ItPo_Health_03);
B_LameSchlork();
}
else
{
Print("Нет лечебных зелий!");
};
}
else
{
Print("Максимум жизненной энергии! ");
};
};
};
Последнее редактирование: