Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Pokaż wątki - Vic7im

Strony: [1] 2
1
Skrypty / Assigning Dialogue to NPCs Problem
« dnia: 2018-03-19, 17:18 »
Hello everyone, I'm having a little bit of an issue with assigning dialogues to NPCs.
I've managed to create a thieving system similar to Gothic 1, based on Returning 2.0's code. I wanted to share it but it doesn't work XD

If your dexterity is lower than the target's, they should turn around and start a conversation with you where you can try to talk your way out or get attacked.

Problem is, I can't get them to talk, at all. The Npcs turn around, look at me for a split second, then go back to their duties, if I talk to them they won't recognize the theft and act normal.

Going logically from point A to point B, this is the code of what happens.

Hero gets caught by focused NPC
Spoiler
var oCNpc _hero; _hero = Hlp_GetNpc(PC_HERO);
var c_npc pNpc; pNpc = MEM_PtrToInst(_hero.focus_vob);
var C_NPC thiefcatcher;     
[...]
if(pNpc.aivar[AIV_PlayerHasPickedMyPocket] == FALSE && !Npc_CanSeeNpc(pNpc,hero)&& hero.attribute[ATR_DEXTERITY] < pNpc.attribute[ATR_DEXTERITY]  && pNpc.npcType != npctype_friend)
{
                thiefcatcher = hlp_getnpc(pNpc);
                hero_caughtstealing = true;
                AI_TurnToNpc(pNpc,_hero);
                //npc_clearaiqueue(pNpc);
                b_resetthieflevel();   
                //b_clearperceptions(pNpc);
                AI_StartState(pNpc,zs_observeplayer,1,"");
};

Into ZS_ObservePlayer loop I put a condition that checks if the one who's looking at the player is the one who caught him (the thiefcatcher)

Spoiler
func int ZS_ObservePlayer_Loop()
{
    if(hero_caughtstealing == TRUE)
    {
        b_assigncatchertalk(self);
    };
[...]
};

Calling B_AssignCatcherTalk() that should assign the "Got you" dialogues I wrote to the NPC that has the same ID of the thiefcatcher
Spoiler

func void b_assigncatchertalk(var C_Npc slf)
{
    if(Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(thiefcatcher))
    {
        b_assigntalkgotyou(slf);       
    };
};

This is B_AssignTalkGotYou()
Spoiler
func void B_AssignTalkGotYou(var C_Npc slf)
{
    dia_assigntalkgotyou.npc = Hlp_GetInstanceID(slf);
};

And then the dialogues:
Spoiler
instance dia_assigntalkgotyou(c_info) {
    nr = 1;
    condition = dia_assigntalkgotyou_condition;
    information = dia_assigntalkgotyou_info;
    permanent = true;
    important = true;
};

[...]
I put as condition the hero_caughtstealing variable.

I made the game print me the name of the thiefcatcher NPC to see if I did something wrong, but it correctly writes down the name of the NPC that caught me.

Problem is, I don't know why it won't talk to me.

Cheers!

2
Hey everyone, I wanted to create an armor similar to the one from the cancelled Gothic sequel



It obviously doesn't work in game and crashes (access violation, will update with logs later).
Steps done:
# Changed appearance of existing armor
# Merged two skulls (skull.3ds) in the scene
# They still are two different entities, named Skull1 and 2 (with the zm_ prefix)
# Connected them to the main body ( zm_Sld_Tm)
# Compiled
# Access Violation error
# Restart game
# Shows armor without skulls, and different texture

I have a couple questions:

#1: How do I join the skulls to the main armor, specifically how do I rig them onto a bone? I fear some of the issues are that the skulls aren't exactly connected to the armature, but I'm a noob with Blender and couldn't find anything helpful on this site.
#2: I have added to the normal guard armor two skulls, which are .3ds files. Does that compromise the compiling in-game? They're two different formats after all.

I'll upload the files shortly, so you can have a look at them yourselves.
EDIT: https://mega.nz/#!FUBHSLiA!uu8V0POqv7llN5VzRcFB-THn_V3-2IeKmy7_cCcRbQM

3
Skrypty / [TICK TOCK] Noob question
« dnia: 2017-02-05, 10:44 »
Is it possible to create tick tock functions that refresh every 0.5 seconds instead of "waiting" for a full second?

In other words, can the tick tock timer be a float instead of an integer?

Thanks!

4
Skrypty / [Script] Diablo2-like potions
« dnia: 2016-12-11, 13:13 »
Hello! This script makes potions work like Diablo2. If you have less than the potion restoration value*3 it restores the normal amount (like, a healing potion heals for 50 hp if you have less than 150 max hp), otherwise it restores a certain % of your total HP in 5 seconds, over time.

func void lowmana()
{
    var int manunterzo; manunterzo = hero.attribute[ATR_MANA_MAX]/3;
    Npc_ChangeAttribute(hero,ATR_MANA,manunterzo/25);
};




func void useitpo_mana_01_advanced()
{
    if(Npc_IsPlayer(self))
    {
        if(hero.attribute[ATR_MANA_MAX] <= 90)
        {
            Npc_ChangeAttribute(self,ATR_MANA,MANA_ESSENZ);
        }
        else if (hero.attribute[ATR_MANA_MAX] > 90 && !FF_ACTIVE(LowMana))
        {
            FF_ApplyOnceExt(LowMana,200,25);
        };
    }
    else if(!Npc_IsPlayer(self))
    {
        Npc_ChangeAttribute(self,ATR_MANA,1500);
    };
};


func void medmana()
{
    var int manunmezzo; manunmezzo = hero.attribute[ATR_MANA_MAX]/2;
    Npc_ChangeAttribute(hero,ATR_MANA,manunmezzo/25);
};






func void useitpo_mana_02_advanced()
{
    if(Npc_IsPlayer(self))
    {
        if(hero.attribute[ATR_MANA_MAX] <= 140)
        {
            Npc_ChangeAttribute(self,ATR_MANA,70);
        }
        else if (hero.attribute[ATR_MANA_MAX] > 140 && !FF_ACTIVE(MedMana))
        {
            FF_ApplyOnceExt(MedMana,200,25);
        };
    }
    else if(!Npc_IsPlayer(self))
    {
        Npc_ChangeAttribute(self,ATR_MANA,1500);
    };
};
func void Higmana()
{
    var int manun; manun = hero.attribute[ATR_MANA_MAX];
    Npc_ChangeAttribute(hero,ATR_MANA,manun/25);
};






func void useitpo_mana_03_advanced()
{
    if(Npc_IsPlayer(self))
    {
        if(!FF_ACTIVE(HigMana))
        {
            FF_ApplyOnceExt(HigMana,200,25);
        };
    }
    else if(!Npc_IsPlayer(self))
    {
        Npc_ChangeAttribute(self,ATR_MANA,1500);
    };
};




instance ITPO_MANA_01(C_ITEM)
{
    name = NAME_TRANK;
    mainflag = ITEM_KAT_POTIONS;
    flags = ITEM_MULTI;
    value = VALUE_MANAESSENZ;
    visual = "ITFO_POTION_MANA_01.3ds";
    material = MAT_GLAS;
    on_state[0] = useitpo_mana_01_advanced;
    scemename = "POTIONFAST";
    wear = WEAR_EFFECT;
    ////effect = "SPELLFX_MANAPOTION";
    description = "Mana Essence";
    text[1] = "Partially restores your mana";
    text[2] = "Duration (seconds):";
    count[2] = 5;
    text[5] = NAME_VALUE;
    count[5] = VALUE_MANAESSENZ;
};




instance ITPO_MANA_02(C_ITEM)
{
    name = NAME_TRANK;
    mainflag = ITEM_KAT_POTIONS;
    flags = ITEM_MULTI;
    value = VALUE_MANAEXTRAKT;
    visual = "ITFO_POTION_MANA_02.3ds";
    material = MAT_GLAS;
    on_state[0] = useitpo_mana_02_advanced;
    scemename = "POTIONFAST";
    wear = WEAR_EFFECT;
    ////effect = "SPELLFX_MANAPOTION";
    description = "Mana Extract";
    text[1] = "Partially restores your mana";
    text[2] = "Duration (seconds):";
    count[2] = 5;
    text[5] = NAME_VALUE;
    count[5] = VALUE_MANAEXTRAKT;
};


instance ITPO_MANA_03(C_ITEM)
{
    name = NAME_TRANK;
    mainflag = ITEM_KAT_POTIONS;
    flags = ITEM_MULTI;
    value = VALUE_MANAELIXIER;
    visual = "ITFO_POTION_MANA_03.3ds";
    material = MAT_GLAS;
    on_state[0] = useitpo_mana_03_advanced;
    scemename = "POTIONFAST";
    wear = WEAR_EFFECT;
    //effect = "SPELLFX_MANAPOTION";
    description = "Mana Elixir";
    text[1] = "Completely restores your mana";
    text[2] = "Duration (seconds):";
    count[2] = 5;
    text[5] = NAME_VALUE;
    count[5] = VALUE_MANAELIXIER;
};




func void lowaccapi()
{
    var int lifeunterzo; lifeunterzo = hero.attribute[ATR_HITPOINTS_MAX]/3;
    Npc_ChangeAttribute(hero,ATR_HITPOINTS,lifeunterzo/25);
};




func void useitpo_health_01_advanced()
{
    if(Npc_IsPlayer(self))
    {
        if(hero.attribute[ATR_HITPOINTS_MAX] <= 150)
        {
            Npc_ChangeAttribute(self,ATR_HITPOINTS,50);
        }
        else if (hero.attribute[ATR_HITPOINTS_MAX] > 150 && !FF_ACTIVE(Lowaccapi))
        {
            FF_ApplyOnceExt(Lowaccapi,200,25);
        };
    }
    else if(!Npc_IsPlayer(self))
    {
        Npc_ChangeAttribute(self,ATR_HITPOINTS,50);
    };
};


func void medaccapi()
{
    var int lifeunmezzo; lifeunmezzo = hero.attribute[ATR_HITPOINTS_MAX]/2;
    Npc_ChangeAttribute(hero,ATR_HITPOINTS,lifeunmezzo/25);
};




func void useitpo_health_02_advanced()
{
    if(Npc_IsPlayer(self))
    {
        if(hero.attribute[ATR_HITPOINTS_MAX] <= 210)
        {
            Npc_ChangeAttribute(self,ATR_HITPOINTS,70);
        }
        else if (hero.attribute[ATR_HITPOINTS_MAX] > 210 && !FF_ACTIVE(medaccapi))
        {
            FF_ApplyOnceExt(medaccapi,200,25);
        };
    }
    else if(!Npc_IsPlayer(self))
    {
        Npc_ChangeAttribute(self,ATR_HITPOINTS,70);
    };
};




func void hiaccapi()
{
    var int gharbl; gharbl = hero.attribute[ATR_HITPOINTS_MAX];
    Npc_ChangeAttribute(hero,ATR_HITPOINTS,gharbl/25);
};




func void useitpo_health_03_advanced()
{
    if(Npc_IsPlayer(self))
    {
        if(hero.attribute[ATR_HITPOINTS_MAX] <= 250)
        {
            Npc_ChangeAttribute(self,ATR_HITPOINTS, 120);
        }
        else if (hero.attribute[ATR_HITPOINTS_MAX] > 250 && !FF_ACTIVE(hiaccapi))
        {
            FF_ApplyOnceExt(hiaccapi,200,25);
        };
    }
    else if(!Npc_IsPlayer(self))
    {
        Npc_ChangeAttribute(self,ATR_HITPOINTS,120);
    };
};




instance ITPO_HEALTH_01(C_ITEM)
{
    name = NAME_TRANK;
    mainflag = ITEM_KAT_POTIONS;
    flags = ITEM_MULTI;
    value = VALUE_HPESSENZ;
    visual = "ITFO_POTION_HEALTH_01.3ds";
    material = MAT_GLAS;
    on_state[0] = useitpo_health_01_advanced;
    scemename = "POTIONFAST";
    wear = WEAR_EFFECT;
    //effect = "SPELLFX_HEALTHPOTION";
    description = "Essence of Healing";
    text[1] = "Partially restores your life";
    text[2] = "Duration (seconds):";
    count[2] = 5;
    text[5] = NAME_VALUE;
    count[5] = VALUE_HPESSENZ;
};






instance ITPO_HEALTH_02(C_ITEM)
{
    name = NAME_TRANK;
    mainflag = ITEM_KAT_POTIONS;
    flags = ITEM_MULTI;
    value = VALUE_HPEXTRAKT;
    visual = "ITFO_POTION_HEALTH_02.3ds";
    material = MAT_GLAS;
    on_state[0] = useitpo_health_02_advanced;
    scemename = "POTIONFAST";
    wear = WEAR_EFFECT;
    //effect = "SPELLFX_HEALTHPOTION";
    description = "Extract of Healing";
    text[1] = "Partially restores your life";
    text[2] = "Duration (seconds):";
    count[2] = 5;
    text[5] = NAME_VALUE;
    count[5] = VALUE_HPEXTRAKT;
};


instance ITPO_HEALTH_03(C_ITEM)
{
    name = NAME_TRANK;
    mainflag = ITEM_KAT_POTIONS;
    flags = ITEM_MULTI;
    value = VALUE_HPELIXIER;
    visual = "ITFO_POTION_HEALTH_03.3ds";
    material = MAT_GLAS;
    on_state[0] = useitpo_health_03_advanced;
    scemename = "POTIONFAST";
    wear = WEAR_EFFECT;
    //effect = "SPELLFX_HEALTHPOTION";
    description = "Elixir of Healing";
    text[1] = "Completely restores your life";
    text[2] = "Duration (seconds):";
    count[2] = 5;
    text[5] = NAME_VALUE;
    count[5] = VALUE_HPELIXIER;
};

Healing/Mana Essences restore 50 points if hp/mana is less than 150, or restore 1/3 of total hp/mana if above said value.
Healing/Mana Extracts restore 70 points if hp/mana is less than 210, or restore 1/2 of total hp/mana if above said value.
Healing/Mana Elixirs restore 120 points if hp/mana is less than 250, or fully restore hp/mana if above said value


Enjoy!

5
MDS i animacje / Problem with Blender
« dnia: 2016-10-19, 21:03 »
Good evening everyone!

I have a question to ask, I've created a new helm and saved it into a .3ds using Kerrax import/export plugin for Blender.

All good, mesh is in the game and everything, except that when I equip it, the helm is flipped backwards (ie: the head points towards the neck and vice versa) and I have no clue how to rotate it!

I've tried rotating the mesh in Blender but regardless of the rotation, it will ALWAYS be backwards. Can anyone help me fixing this? I have the same issue with a weapon, and I'd love to know how to ****ing do this absurdely simple thing XD


6
Skrypty / Weird AI behaviour
« dnia: 2016-09-01, 12:43 »
Hello everyone, I was playtesting my mod this morning and I noticed something REALLY bad. NPCs don't react to damage anymore.
Cavalorn was attacked by goblins, he kills the FIRST one that attacked him, then he simply stops, he doesn't turn on the others.

I have no idea what's causing this, what could it be possibly related to? Which are the scripts that are usually called by Npcs to react to monsters/enemies?

Also, sheep aren't following their routines either, and yet again I have no clue why.

Thank you all for the answers and sorry for writing in english, have a nice day!

7
Skrypty / Scaling HP/MP Potions
« dnia: 2016-04-10, 08:41 »
Hello everyone and good morning.

Since you've all helped me a lot it's time I give something in return.
Presenting you: The scaling potions

The deal is that if you have enough HP they'll heal you for a portion of health instead of a flat amount.

Let's get to it. First

func void HP01()
{
if(hero.attribute[ATR_HITPOINTS_MAX] < 150)
{
Npc_ChangeAttribute(self,ATR_HITPOINTS,50);
}
else if(hero.attribute[ATR_HITPOINTS_MAX] >= 150)
{
var int CURHP;
CURHP = hero.attribute[ATR_HITPOINTS_MAX];
Npc_Changeattribute(self,atr_hitpoints,curhp/4);
};
};

This is the basic code, you can change whatever parameters you like to adapt it to any situation you want (should be pretty much self-explainatory)

Then in the IT_Potions.d file you replace the "func void useitpo_health_01" with this:

func void useitpo_health_01()
{
HP01();
};

You can adapt it to mana potions too, or even rejuvenation potions (combine the two scripts)
I don't want credit ofc, just have fun with it! :)

8
Skrypty / [Script] Convert to INT
« dnia: 2016-03-25, 00:30 »
Hey guys!

Does anyone know how to convert an item name into an ID (integer)? I've seen in some scripts that certain items are called by a numerical sequence (I guess it's their ID), how can I do that?


I'm using this function but I don't know if it returns the ID.
var int ABC;
ABC =  Hlp_GetInstanceID(itat_item);

I've also tried putting an ID=*numericalsequence* within the item instance, but to no avail.


Thanks in advance!

9
Spacer / [Spacer] Same error while saving .zen files
« dnia: 2016-03-10, 15:22 »
Cytuj
======================================= UNHANDLED EXCEPTION OCCURED ======================================================
======================================= CRASH INFOS: =====================================================================
Spacer II - 2.6 (mod), Parser Version: 50
User:  HUEHUEHUEHUE,  CPUType: 586,  Mem: 1024 MB total, 1024 MB free
Camera: Pos(3108.06958/1378.23535/6260.14941), At(0.818398535/0/0.574651122)
Startup Options:  -nomenu -zwindow
=============================================== CALLSTACK : ==============================================================
0023:006FD47D (0x2FD080D0 0x1543A020 0x1543A020 0x00000000) Spacer2.exe, zCMesh::ShareFeatures()+1245 byte(s), P:\dev\g2addon\release\ZenGin\_dieter\zMesh.cpp, line 3651+9 byte(s)
0023:007B2805 (0x2FD080D0 0x008F06F4 0x2FD080D0 0x00000000) Spacer2.exe, zCWorld::Archive()+229 byte(s), P:\dev\g2addon\release\ZenGin\_dieter\zWorld.cpp, line 2862
0023:005D8BF9 (0x2C0CCAA1 0x0000000F 0x0000001F 0x008E2BD0) Spacer2.exe, oCWorld::Archive()+41 byte(s), P:\dev\g2addon\release\Gothic\_ulf\oWorld.cpp, line 344
0023:0077A700 (0x00000001 0x006B0B30 0x1543A020 0x00000001) Spacer2.exe, zCSparseArrayBase::Find()+32 byte(s), P:\dev\g2addon\release\ZenGin\_dieter\zSparseArray.cpp, line 357+1 byte(s)
0023:008C7798 (0x00000000 0x00000000 0x00000000 0x00000000) Spacer2.exe, COleObjectFactory::RevokeAll()+247611 byte(s)


It's the seventh time in a row. All I'm doing is inserting an .mms and deleting 3 vobs. Can anyone ""translate"" what is causing the crash? Thank you!

10
MDS i animacje / Problem with Blender
« dnia: 2016-02-29, 13:58 »
Good afternoon everyone!

I'm having a little problem using Blender. I've modified the elite orc armor to have both shoulderpads instead of one.

The problem is that I don't know how to "connect" the second shoulderpad to the skeleton, so that it follows the right arm movement when playing animations. Right now it follows the LEFT arm, messing everything up.

I've tried looking for tutorials but none gave me an answer to this problem. Any help? Thanks in advance =)
Spoiler


11
Skrypty / [Ikarus] Automatically Locking/Unlocking Doors
« dnia: 2015-12-05, 12:56 »
Hello there, good morning!

I'm trying to make a script where at night all doors automatically close and become locked, then in the morning they unlock and can be opened by NPCs, BUT after they're opened a small timer is set and after that they close again (not locking this time).

I wrote a code for one door and it works except for one thing. The door doesn't change "position" (open/closed), even though its state is changed.

Code:
func void DOORS_Loop()
{
     var int BDoor_ptr; BDoor_ptr = MEM_SearchVobByName("TESTDOOR");
     var oCMobDoor BDoor; BDoor = _^(BDoor_ptr);

if(Wld_IsTime(20,00,8,00))
{
BDoor._oCMobInter_rewind = 0;
BDoor._oCMobLockable_bitfield = true;
BDoor._oCMobInter_state = 0;
BDoor._oCMobInter_state_num = 0;
BDoor._oCMobLockable_pickLockStr = "LRRLLRLLRL";
}
else if(Wld_IsTime(8,01,19,59))
{
BDoor._oCMobLockable_bitfield = false;
BDoor._oCMobInter_state_num = 1;
};
if(Wld_GetMobState (hero, "TESTDOOR") == 1)
{
FF_ApplyOnceExt(CloseDoors,10000,1);
};
};

func void CloseDoors()
{
     var int BDoor_ptr; BDoor_ptr = MEM_SearchVobByName("TESTDOOR");
     var oCMobDoor BDoor; BDoor = _^(BDoor_ptr);
BDoor._oCMobInter_state_num = 0;
BDoor._oCMobInter_state = 0;
};

As I said, it works, the only exception is that if I open a door, it stays open, it doesn't close automatically =(

12
MDS i animacje / [3dsMax] Animation not working correctly
« dnia: 2015-11-11, 17:21 »
Hi everyone!

I've been trying using 3dsmax to change animations, and so far I've been successful (at least in 3dsmax). The problems begin when I export the animation file as .asc into the game. It creates an access violation and I have no idea why.

This is what I've done:
#1 Loaded 3dsmax
#2 Imported hum_body_naked0.asc with Kerrax plugin (for my 3dsmax, 2009)
#3 Loaded an existing animation (hum_runambient_m01.asc in this case)
#4 Edited (added keyframes and changed the animation)
#5 Save + Export as .asc file (using Kerrax plugin)
#6 Renamed the animation name inside the .asc (it was empty, named it hum_runambient_m01.asc)
#7 Put the file inside G2 anims (_work\data\anims\asc_humans\)
#8 Load game disabilng anims.vdf (forcing the game to use the folders, which have all vanilla animations decompiled)
#9 ofc deleting the compiled version of hum_runambient_m01
#10 starting game, crash.

Idk what the problem is since zSpy doesn't tell me any errors, it just gives me an access violation error.
Here's the animation, if you want to use it for your own modifications you're free to do so (just help me pls!! XD)

https://mega.nz/#!VBIVzIoa!IhWer35D6MvPUEXA4MyIusWs8DawlCFBof8hBVwKzXQ


Peace

Vic7im

13
Spacer / [Spacer] Hi, I won't even start =) (Windows 10)
« dnia: 2015-11-07, 12:19 »
Good afternoon everyone!

I have Win10 and since I've upgraded I have problems with the Spacer (Gothic II). The problem is that it won't start. The process shows in the task bar but there's not window, nothing.

I've installed G2 + the 2.6 exe + the modkits 2.6/2.6a

I have no clue what to do. Does anyone else have the same problem?

Thanks, much appreciated =)

14
Skrypty / [Bars and sh*t] A stupid question
« dnia: 2015-10-29, 09:09 »
Hello and good morning everyone!

I'm messing around with bars and stuff from LeGo/Ikarus, specifically working on "when you're poisoned, then color this bar". It works, really, but the problem is that I can't make the original Gothic II health bar disappear, so they overlap and the original health bar will always stay on top of the modded one.

Does anybody know how to remove the GII healthbar? Many thanks =)

15
MDS i animacje / Failure - Mds not found
« dnia: 2015-07-26, 10:19 »
Hello guys, good morning to you all!

I've been working on an overlay mds that will be used in the fight against the ice dragon, basically the run/jump animations are disabled, and walk animations are replaced with those used when you walk in the water, with some pfxs added here and there.

The problem is that I compile the animations using the Sourcer, I don't get errors (just one warning that I'll write below) but once in-game, when trying to apply the mds (f2 - apply overlaymds humans_iceroot) it says
Failure - Mds not found or something along these lines.

The fact is that I've already done different .mds files and all those are working perfectly, as intended! I've even created brand new ones that actually work, and I don't know what's causing this error =( Could you guys give me a hand, look at the .mds and check if I've done some rookie mistakes?

Model ("HuS")
{
meshAndTree ("Hum_Body_Naked0.ASC" DONT_USE_MESH)

aniEnum
{
aniDisable ("T_STAND_2_JUMP")     
aniDisable ("T_RUNL_2_JUMP")     
aniDisable ("T_RUNR_2_JUMP")     
aniDisable ("T_STAND_2_JUMPUPLOW")
aniDisable ("T_RUNL_2_JUMPUPLOW")
aniDisable ("T_RUNR_2_JUMPUPLOW")
aniDisable ("T_STAND_2_JUMPUPMID")
aniDisable ("T_RUNL_2_JUMPUPMID")
aniDisable ("T_RUNR_2_JUMPUPMID")
aniDisable ("T_t_Run_2_RunL")
aniDisable ("t_RunL_2_Run")
aniDisable ("t_RunR_2_Run")
aniDisable ("t_JumpB")
aniDisable ("t_RunStrafeL")
aniDisable ("t_RunStrafeR")
aniDisable ("T_WalkStrafeL")
aniDisable ("T_WalkStrafeR")
ani        ("S_RUN"                      1              "S_RUN"                 0.1 0.1  MI "HUM_RUNAMBIENT_M01.ASC"                       F  1   50)   
aniAlias   ("S_WALK"                    1               "S_WALK"               0.1 0.1  MI "S_RUN"                                        F)   
ani        ("T_WALK_2_WALKL"            1               "S_WALKL"              0.0 0.0  M. "HUM_ICEROOT_M01.ASC"                        F  1   13) 
{
*eventPFX (2 18 "FROZENPARTICLE" "Bip01 Spine2" ATTACH
}
ani        ("S_WALKL"                   1               "S_WALKL"              0.0 0.0  M. "HUM_ICEROOT_M01.ASC"                        F  14  49   FPS:10)         
{
*eventSFXGrnd (15 "RUN")
*eventPFX (2 18 "FROZENPARTICLE" "Bip01 Spine2" ATTACH
}
ani        ("T_WALKL_2_WALK"            1               "S_WALK"                0.0 0.0  M. "HUM_ICEROOT_M01.ASC"                        F  50  60)
aniBlend   ("T_WALKR_2_WALK"                            "S_WALK"                0.2 0.2)                                                                                 
aniBlend   ("T_WALK_2_WALKBL"                           "S_WALKBL"             0.2 0.2)                                                                                 
aniAlias   ("S_WALKBL"                  1               "S_WALKBL"             0.0 0.0  M. "S_WALKL"                                     R)                           
aniBlend   ("T_WALKBL_2_WALK"                           "S_WALK"                0.2 0.2)                                                                                                                       
}
}

Mind that "HUM_ICEROOT_M01" is basically a renamed "HUM_WATERWALK_M01" (both filename and animation file)

Many many thanks, hope you guys can help =)

16
Skrypty / [PFX] Flycolldet_B and texture marks
« dnia: 2015-06-19, 10:25 »
Good morning everyone!

Has anyone toyed with the parameters above? (FlyCollDet_B // mrktexture_s // mrksize)

I've read the WoG wiki

FlyCollDet_B legt das Kollisionsverhalten der Partikel fest: 0= kein Test auf Kollision, 1= bremsende Reflektion, 2= beschleunigende Reflektion, 3= Geschwindigkeit auf null setzen, 4= Partikel entfernen. Eine aktivierte Kollisionserkennung benötigt relativ viel Rechenzeit.

Basically, if I'm not mistaken, everything except 0 and 4 SHOULD place a texture mark where it collides, right?
0 = no collision
1 = slow down after collision, but "bounce"
2 = accelerate after collision, still bouncing
3 = stop after you collide
4 = delete particles at collision

I've tried using this parameter to create texture marks on collision, but to no avail. Am I doing something wrong? Is there a way to do this?

Thanks

17
Oferty pracy i pomocy / [HELP] Gothic II - Requiem
« dnia: 2015-06-02, 09:57 »
Good morning everyone, and sorry for misusing the forum.

Due to personal problems and real life issues, I've decided to "open" the developement of G2 - Requiem (formerly G2 Enhanced Edition) to anyone whom is interested (and capable of doing so).

http://www.moddb.com/mods/gothic-2-enhanced-edition

I actually require scripters only, the rest is already taken care of. I have the whole thing in mind but I haven't got enough time to work on this modification as much as I would like to.

If anyone is interested, contact me here or on moddb or via PM so we can discuss the details in the near future.

Good day everyone.

18
Skrypty / Problem with Routines (Lares bug all over again)
« dnia: 2015-04-09, 09:55 »
Hello again people!

I don't really know what happened, but NPC's won't start/exchange routines, I've tried with Cavalorn (when you go killing bandits with him), Mika (when he comes to Akil's farm) and Lares (Ornament quest bug). They simply stand there, doing nothing! The rest of the AI is fine because they react to damage and attack hostiles, they won't change routines though.

Also, the game is suddenly in german, even though the dialogue choices are in english (and the speech too)

I recall something must be done with the .vdf (putting the .disabled extension) but then the game gives me an access violation error or tells me that I don't have enough memory for the textures ( ??? )

What can I do?

19
Hey there everyone

I've modified some animations lately and stumbled upon some interesting things. Sometimes, pfx's are called by the game during animations.

The fact is, everytime I try to add something else (new pfx's for example) they don't work. I've also noticed that Vanilla G2 used to have LOTS of particle effects associated with animations, which simply don't work anymore (remember back in G2 classic when you killed a demon it spurted out blue/red flames from his body? Well, I can't make that work in NOTR, even though the pfx IS called in the animation file)

Here's an example:

https://www.youtube.com/watch?v=oxS_-saH8jY
#t=6m50s

Gothic 1, once you kill the zombie that blue stuff comes out of him.

Gothic 2, zombie.mds:
// ---------------------------------------------------------------------------------------------------------------
// DIE
ani ("t_Dead" 1 "s_Dead" 0.1 0.0 M. "Zom_Dead_A01.asc" F 1 109 FPS:15)
{
*eventSFX (1 "ZOM_DIE" EMPTY_SLOT )
    *eventPFX (1 1 "MFX_DESTROYUNDEAD_SOUL_BACK" "BIP01 SPINE2" ATTACH )
    *eventPFX (10 2 "MFX_DESTROYUNDEAD_SOUL_CLOUD" "BIP01 L Hand" ATTACH )
*eventPFX (15 3 "MFX_DESTROYUNDEAD_SOUL_CLOUD" "BIP01 R Hand" ATTACH )
*eventPFX (20 4 "MFX_DESTROYUNDEAD_SOUL_CLOUD" "BIP01 L Foot" ATTACH )
*eventPFX (25 5 "MFX_DESTROYUNDEAD_SOUL_CLOUD" "BIP01 R Foot" ATTACH )
*eventPFX (30 6 "MFX_DESTROYUNDEAD_SOUL_CLOUD" "BIP01 Head" ATTACH )
*eventPFX (35 7 "MFX_DESTROYUNDEAD_SOUL_CLOUD" "BIP01 L UpperArm" ATTACH )
*eventSFX (33 "M_FALL_SMALL" EMPTY_SLOT )
*eventPFX (40 8 "MFX_DESTROYUNDEAD_SOUL_CLOUD" "BIP01 R UpperArm" ATTACH )
*eventPFX (45 9 "MFX_DESTROYUNDEAD_SOUL_CLOUD" "BIP01" ATTACH )
}


ani ("s_Dead" 1 "s_Dead" 0.0 0.0 M. "Zom_Dead_A01.asc" F 110 110)

*same for DeadB

NOTHING HAPPENS.

Am I missing something here? Is that an engine thing or a bug I'm having? I'd love to add different pfx's to make the game well, visually better-looking, but everytime I try to change values or insert pfx's they simply won't work.

I've also noticed that the "compiled" version of the .mds is the .msb file in _compiled. Is that possible that the game looks for the compiled version FIRST then, if not found, looks for the .msb?

And if that's  the case, will the engine look for the .msb in MY modification file OR in the vanilla folders?

Thank you in advance and goodnight

Vic7im \o

20
Skrypty / AI_PlayAni not working??
« dnia: 2015-01-25, 20:02 »
Hello everyone, I'm trying to create "skills" usable for the character when you press a button.

The problem is that no matter how I try, the character won't play the animation I want him to.

Example: Press V --> Do Animation --> Do Stuff
What I have now is: Press V --> Do Stuff

Does anyone know how to "force" animations on the character? I've used both AI_PlayAni and Npc_PlayAni without success.

func void Ultimate(var C_Npc slf)
{
    var oCNpc her; her = Hlp_GetNpc(hero);
var int UltDone;

    if (((MEM_KeyState (KEY_U) == KEY_PRESSED) && (Hlp_Is_oCNpc (her.focus_vob))) && (Npc_HasReadiedMeleeWeapon (hero)))
    {
Ultdone = TRUE;
    var c_npc target; target = MEM_PtrToInst (her.focus_vob);
    NPC_PlayAni(slf,"T_EXCALIBUR_S0_2_S1");
FF_ApplyOnceExt(Damage, 800, 1);
};

func void Damage(var C_Npc slf,var C_Npc oth)
{
   var oCNpc her; her = Hlp_GetNpc (hero);
var c_npc target; target = MEM_PtrToInst (her.focus_vob);
Wld_PlayEffect("spellFX_INCOVATION_White",target,target,0,0,DAM_MAGIC,FALSE);
   Wld_PlayEffect("spellFX_BELIARSRAGE", target, target, 0, 0, DAM_MAGIC, FALSE);
   B_MagicHurtNpc(slf, target, 700);
NPC_PlayAni(her,"T_EXCALIBUR_S1_2_Stand");
UltDone = FALSE;
};

Any help is appreciated!

Strony: [1] 2
Do góry