Narzędzia, skrypty, problemy techniczne
#46
Я не использовал Vobbilder, поэтому и не знаю его проблем. Можно попробовать открыть его через Mozilla Firefox.
Odpowiedz
#47
Firefox odpada, bo go nie lubię. No nic. Podobny problem mam z tym Vob Catalogiem:
http://www.gothic-library.ru/load/progra.../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.
Odpowiedz
#48
У меня он нормально отображается. Я использую пока что старую версию.
Скачать можно из этой темы
https://worldofplayers.ru/threads/39853/post-966142
Odpowiedz
#49
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 ?
Odpowiedz
#50
Чтобы все было правильно.
В 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 обязательно пересоздать, чтобы диалог выводился.

Это я сделал аналог диалога Бартока, когда после охоты он говорит про себя про орка, и там выводится окно
Odpowiedz
#51
(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ć.
Odpowiedz
#52
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.
Koniec kariery ~ emerytowany Arcymag Ognia
Odpowiedz
#53
этот скрипт не надо менять.
Менять только B_AddFightSkill
Я когда собирал скрипты 25 марта включал правильный файл.
https://www.mediafire.com/file/h8cggbaza...l.zip/file

Оружие и кольца оставьте мне - переделаю сам.
Odpowiedz
#54
N1kX, wiesz może, co oznacza taki warunek?

if(hero.aivar[4] == false)
Odpowiedz
#55
Skąd to się wzięło?
Gotyk i tak rozumie, ale dla jasności lepiej jest
if(hero.aivar[AIV_INVINCIBLE] == FALSE)
Odpowiedz
#56
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?
Odpowiedz
#57
\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]
Odpowiedz
#58
Rozumiem. Dzięki.  OK
Odpowiedz
#59
Я исправил наконец-то скрипт имен сундуков.
Проходя монастырь заметил, что Саркофаг был заменен Сундуком, а так быть не должно.
Мне о таком сообщал ещё Ur-Trall, когда тестировал Предо, там тоже именные сундуки остались без имени, теперь будет все ок.
В IP я тоже обновлю код.
Erwin, посмотри, чтобы в focusname сундуков был правильный MOBNAME_CHEST или MOBNAME_CRATE
И да, если вы делаете специально пустое имя, без названия, должно ли оно быть пустым? А при обыске бы появлялось, что сундук/ящик пуст.
Odpowiedz
#60
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.
Odpowiedz


Skocz do:


Użytkownicy przeglądający ten wątek: 3 gości