Drużyna Spolszczenia
Narzędzia, skrypty, problemy techniczne - Wersja do druku

+- Drużyna Spolszczenia (http://druzynaspolszczenia.pl)
+-- Dział: Gothic - modyfikacje (http://druzynaspolszczenia.pl/forumdisplay.php?fid=11)
+--- Dział: Gothic - programy/texture-pack (http://druzynaspolszczenia.pl/forumdisplay.php?fid=26)
+--- Wątek: Narzędzia, skrypty, problemy techniczne (/showthread.php?tid=2894)

Strony: 1 2 3 4 5 6 7 8 9 10 11


RE: Narzędzia, skrypty, problemy techniczne - N1kX - 08.03.2020

Я не использовал Vobbilder, поэтому и не знаю его проблем. Можно попробовать открыть его через Mozilla Firefox.


RE: Narzędzia, skrypty, problemy techniczne - Erwin - 08.03.2020

Firefox odpada, bo go nie lubię. No nic. Podobny problem mam z tym Vob Catalogiem:
http://www.gothic-library.ru/load/programms/vob_catalog/2-1-0-148
Co prawda nie pochwalam wrzucenia tam vobów z Obliviona i Skyrima, ale jak już go używam, to odznaczam te opcję na starcie. 
Jest ładnie zrobiony, można sobie przedmioty obracać i co najważniejsze jest jakoś lepiej pogrupowany, ale stary też daje radę.
Nie znam rosyjskiego, a otwierając Yandexem miałbym, to od razu tłumaczone.


RE: Narzędzia, skrypty, problemy techniczne - N1kX - 08.03.2020

У меня он нормально отображается. Я использую пока что старую версию.
Скачать можно из этой темы
https://worldofplayers.ru/threads/39853/post-966142


RE: Narzędzia, skrypty, problemy techniczne - Erwin - 15.03.2020

N1kX, mógłbyś mi coś znowu podpowiedzieć ?  :)

Mam skrypt blokujący dostępu do skrzyni:

func int COND_SKRZYNIA()

{
if (Npc_HasItems (hero, ITFO_APPLE)>=1) 
{
return TRUE;
};
if (Npc_HasItems (hero, ITFO_APPLE)==0) 
{
AI_Output (hero, hero,"COND_SKRZYNIA_15_00"); //Jakaś magiczna aura blokuje skrzynię...
};
};

i tak jak bohater ma jabłko, to jest dobrze - otwiera kufer normalnie. Jak nie ma, to skrzyni nie może otworzyć, tylko nie wyświetla mi się ten dialog  Smutny
Powinno być tu jeszcze gdzieś return FALSE, czy jeszcze coś innego ?


RE: Narzędzia, skrypty, problemy techniczne - N1kX - 15.03.2020

Чтобы все было правильно.
В svm.d добавь переменную для этого.
class C_SVM
{
*****
var string Dont_Use_Chest;
***
Потом в instance SVM_15(C_SVM) добавляешь
instance SVM_15(C_SVM)
{
***
Dont_Use_Chest = "SVM_15_Dont_Use_Chest "; //Jakaś magiczna aura blokuje skrzynię...
***

Ну и напоследок попробуй изменить скрипт
func int COND_SKRZYNIA()
{
if (Npc_HasItems (hero, ITFO_APPLE)>=1)
{
return TRUE;
}
else
{
B_Say_Overlay(self,self,"$DONT_USE_CHEST");
};
};

ou.bin обязательно пересоздать, чтобы диалог выводился.

Это я сделал аналог диалога Бартока, когда после охоты он говорит про себя про орка, и там выводится окно


RE: Narzędzia, skrypty, problemy techniczne - Erwin - 25.03.2020

(24.03.2020, 10:59:54)N1kX napisał(a): Jeśli chcesz, aby pułapka zadała obrażenia ogniem, można zastosować Ikarus i wykonać następujące czynności, tylko w Spacer2 będzie musiał usunąć obrażenia.
Если охота, чтобы ловушка наносила урон огнем можно применить Ikarus и сделать следующее, только в Spacer2 надо будет убрать урон.

var int one_time_02;
func void CHEST_ZUCHWALI_02_S1()
{
if(one_time_02 == FALSE)
{
Wld_SendTrigger("CHESTDAMAGE");
//Wld_PlayEffect("VOB_BURN",  hero, hero, 0, 0, 0, FALSE );
FireDamageChest();
one_time_02 = true;
};
};
var C_NPC global_fired_npc_self;

func void FireDamageChest()
{
Wld_PlayEffect("VOB_BURN",self,self,0,0,0,FALSE);
if(!FF_Active(FireDamage))
{
global_fired_npc_self = Hlp_GetNpc(self);
FF_ApplyOnceExt(FireDamage, 1000, 3);
};
if(slf.attribute[ATR_HITPOINTS] <= 0)
{
if(FF_Active(FireDamage))
{
FF_Remove(FireDamage);
};
};
};

func void FireDamage()
{
var int realdamage;
realdamage = b_calculatefiredamage(self, 30);
if(realdamage > 0)
{
global_fired_npc_self.attribute[ATR_HITPOINTS] = global_fired_npc_self.attribute[ATR_HITPOINTS] - realdamage;
if((global_fired_npc_self.attribute[ATR_HITPOINTS] <= 0)
{
if (FF_Active(FireDamage))
{
FF_Remove(FireDamage);
};
};
};
};

Po otwarciu kufera Bezimienny otrzyma obrażenia wynoszące 30 (jeśli bohater nie ma ochrony przed ogniem) przez 3 sekundy.
Aby dostosować obrażenia, musisz zmienić tutaj
realdamage = b_calculatefiredamage(self, 30); //dowolna liczba
Czas trwania zmienia się tutaj
FF_ApplyOnceExt(FireDamage, 1000, 3);
//FF_ApplyOnceExt(wywoływana funkcja, długotrwałość w mks, liczba działanie)

Generalnie, jeśli działa - dobrze.

Przeniosę sobię to tutaj, bo chciałbym zgłębić temat i na pewno będę miał jakieś pytania. Na razie nie mogę tego uruchomić.


RE: Narzędzia, skrypty, problemy techniczne - Michał - 03.04.2020

N1kX, wrzuć jeszcze raz tę poprawkę do pliku B_RaiseFightTalent, którą dałeś podczas prac nad Klasztorem. Był tam chyba jeszcze jeden plik więcej do edycji. Dotyczyło to pierścienia magnata i utraty animacji walki po wczytaniu gry.


RE: Narzędzia, skrypty, problemy techniczne - N1kX - 03.04.2020

этот скрипт не надо менять.
Менять только B_AddFightSkill
Я когда собирал скрипты 25 марта включал правильный файл.
https://www.mediafire.com/file/h8cggbaza1swzoh/B_AddFightSkill.zip/file

Оружие и кольца оставьте мне - переделаю сам.


RE: Narzędzia, skrypty, problemy techniczne - Erwin - 15.04.2020

N1kX, wiesz może, co oznacza taki warunek?

if(hero.aivar[4] == false)


RE: Narzędzia, skrypty, problemy techniczne - N1kX - 15.04.2020

Skąd to się wzięło?
Gotyk i tak rozumie, ale dla jasności lepiej jest
if(hero.aivar[AIV_INVINCIBLE] == FALSE)


RE: Narzędzia, skrypty, problemy techniczne - Erwin - 15.04.2020

To gdzieś, kiedyś znalazłem. Pewnie na jakimś forum, bo jak natrafię na coś, co mnie ciekawi, to sobię to kopiuje.

A co to oznacza?


RE: Narzędzia, skrypty, problemy techniczne - N1kX - 15.04.2020

\Content\AI\AI_Intern\AI_Constants.d
const int AIV_INVINCIBLE = 4;

Константа которая работает в состоянии ZS_Talk
Если она TRUE игрок или НПС находятся в состоянии разговора, если FALSE то нет.
if(Hlp_IsValidNpc(other) && !C_NpcIsDown(other))
{
if(other.aivar[AIV_INVINCIBLE] == FALSE)
{
AI_Attack(self);
}
else
{
Npc_ClearAIQueue(self);
};
self.aivar[AIV_LASTTARGET] = Hlp_GetInstanceID(other);
return LOOP_CONTINUE;
}
Тут хорошо видно, если Игрок ни с кем не говорит, монстра атакует, если игрок говорит, монстр ждет окончания или нападает на следующую цель.

Так пишется при кривой декомпиляции, потому что Парсер при компиляции назначает всему уникальные идентификаторы
hero.aivar[4] = hero.aivar[AIV_INVINCIBLE]


RE: Narzędzia, skrypty, problemy techniczne - Erwin - 15.04.2020

Rozumiem. Dzięki.  OK


RE: Narzędzia, skrypty, problemy techniczne - N1kX - 24.04.2020

Я исправил наконец-то скрипт имен сундуков.
Проходя монастырь заметил, что Саркофаг был заменен Сундуком, а так быть не должно.
Мне о таком сообщал ещё Ur-Trall, когда тестировал Предо, там тоже именные сундуки остались без имени, теперь будет все ок.
В IP я тоже обновлю код.
Erwin, посмотри, чтобы в focusname сундуков был правильный MOBNAME_CHEST или MOBNAME_CRATE
И да, если вы делаете специально пустое имя, без названия, должно ли оно быть пустым? А при обыске бы появлялось, что сундук/ящик пуст.


RE: Narzędzia, skrypty, problemy techniczne - Erwin - 24.04.2020

Kiedyś tam zauważyłem, że nawet jak przy skrzyni nie dodam nazwy w mobname, to i tak w grze się wyświetla nazwa i jak sie ją opróżni to też piszę, że jest pusta.
Widziałem, że jest jakaś funkcja w contemcie na Ikarusie, która nazywa wszystkie oCMobContainer Skrzynia czy tam Kufer.