Gothic II: Gold Classic
Telekinesis
 Тази тема е прикачена, така че сигурно е важна
Для разработчиков
Чтобы использовать заклинание телекинеза в вашем моде, добавьте в скрипты инстанции руны и свитка, а также константу расхода маны:
const int SPL_Cost_Telekinesis = 1; //расход маны в секунду //руна instance ItRu_Telekinesis(C_ITEM) { name = NAME_Rune; mainflag = ITEM_KAT_RUNE; flags = 0; value = 1000; //цена visual = "ItRu_Telekinesis.3DS"; material = MAT_STONE; spell = 65; //индекс заклинания - не менять! mag_circle = 1; //круг магии wear = WEAR_EFFECT; effect = "SPELLFX_WEAKGLIMMER"; description = "Телекинез"; text[0] = NAME_Mag_Circle; count[0] = mag_circle; text[1] = "Расход маны (в сек.):"; count[1] = SPL_Cost_Telekinesis; text[5] = NAME_Value; count[5] = value; }; //свиток instance ItSc_Telekinesis(C_ITEM) { name = NAME_Spruchrolle; mainflag = ITEM_KAT_RUNE; flags = ITEM_MULTI; value = 150; //цена visual = "ItSc_Telekinesis.3DS"; material = MAT_LEATHER; spell = 65; //индекс заклинания - не менять! cond_atr[2] = ATR_MANA_MAX; cond_value[2] = SPL_Cost_Telekinesis; wear = WEAR_EFFECT; effect = "SPELLFX_WEAKGLIMMER"; description = "Телекинез"; text[0] = NAME_MageScroll; text[1] = "Расход маны (в сек.):"; count[1] = SPL_Cost_Telekinesis; text[5] = NAME_Value; count[5] = value; };
После этого их можно будет интегрировать в продажу торговцам, добавить в создание на рунном столе, разложить в мире через Spacer, вставлять на точки через Wld_InsertItem и так далее.

Заклинание использует индекс 65, неиспользуемый в оригинальной игре. Пожалуйста, не занимайте его другим заклинанием.

Также код выше можно добавить в текстовый файл с расширением .d и скопировать его в папку system\autorun. Это позволит настроить заклинание под себя, например, изменить требование круга магии для использования руны без вмешательства в скрипты игры.

Для запрета перемещения определенных предметов добавьте их в функцию C_CanMoveItemWithTelekinesis. Пример:
func int C_CanMoveItemWithTelekinesis(var C_Item itm) { if(Hlp_IsItem(itm,ItMi_Nugget)) { return FALSE; }; return TRUE; };
Последно редактиран от D36; 30 ноем. 2024 в 8:09