forums | blogs | polls | tutorials | downloads | rules | help

Error message

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls in remember_me_form_alter() (line 78 of /var/www/siegetheday.org/sites/all/modules/contrib/remember_me/remember_me.module).

Ancient Gifts Mod Beta 1C




Description:

Current Version: 1C

Authors: HardLess, Mantella

Contact:

Summary:

With the cataclysm that put an end to the second age, many ancient knowledges were lost. Today as the earth shakes under army's march, the foundations of the second age reemerged from there ruins.

This mod provide a new "Soul of Iron" skill table (melee/combat magic) and 32 Dungeon siege 1 spells !





Details:
  • Single Player: Y
  • Multi-Player: Y
  • Difficulty Settings: N
  • New Graphics: Y
  • New Sounds / Music: N
  • New Weapons: Y
  • New Armor: Y
  • New Spells: Y
  • New Misc. Items (Rings, Amulets...): N
  • New Character(s): N
  • Modified GUI: Y
  • Modified Experience: N
  • Modified Custom Map: N
  • Modified Skill Tabs: Y
  • New Enemy Type(s): N
  • Modified Attribute System: Y
  • Modified Loot Drops: N
  • Modified Container: N
  • Modified Spells: Y
  • Modified Items Modifiers: Y
  • Next Improvements:
  • Powers for the current Tab
  • Skill Tab
  • Armors and Weapons
  • Spells
  • Other features
  • Know Issues:
  • Fist of stone level indicator hidden
  • Skill incrementing indicator not implemented
  • Skill points bonus display not implemented























  • Installation:
    Place Ancient_Gifts_Beta_1c.ds2res into the Dungeon Siege 2 Broken World Resources folder.

    Uninstall:
    Remove Ancient_Gifts_Beta_1c.ds2res from the Dungeon Siege 2 Broken World Resources directory.


    Links:

    You can find the english readme here.
    You can find the french readme here.
    Ancient Gifts Beta 1c: Download it

    Ancient Gifts Beta 1c for Aranna Legacy: Download it.

    Ancient Gifts Beta 1c for Adepts: Work in progress.

    Special thanks to KillerGremal, DarkElf, Bare-Elf, Dulac and Iryan.



    HardLess and Mantella

    __________________________

    I will give it a look just as soon as I finish the current test run I am doing on Aranna

    Looks great. Good work.

    Does this replace one of the existing skill trees? It looks like it but then as its an early version you'll probably plan to change that.

    I agree that DS2 was lacking in multiclass skills, even with Broken World as melee-combat and nature-ranged was completely ignored.

    Do you plan on having class specific armor and weapons?

    HardLess's picture

    Thank you for your interest.

    iryan wrote:
    Does this replace one of the existing skill trees? It looks like it but then as its an early version you'll probably plan to change that.

    Our mod doesn't replace base skill trees, it just add new descriptions. Each skills will increase your spell only if you have a shadow spell on you. It doesn't have any consequences for your existing characters if they don't use "Shadow" spells.

    iryan wrote:
    Do you plan on having class specific armor and weapons?

    We would like to but we don't really know how. This is why we recommend DS1 Lengendary Pack. Because there are weapons like "scepters" which suit the "Shadow" well. This class need intelligence to increase his abilities.

    See you.

    HardLess wrote:

    We would like to but we don't really know how. This is why we recommend DS1 Lengendary Pack. Because there are weapons like "scepters" which suit the "Shadow" well. This class need intelligence to increase his abilities.

    See you.


    I know what you mean as there's been a few complaints about the Fist of Stone class as some of its skills, like tremor, rely on intelligence which none of the gear specific to the class really provides.

    An idea for introducing new models for the mod is maybe look at what's included in DS2BW Adepts. A lot of interesting third party weapons from DS Revived and theresnothinlft are included in it that can be reused if due credit is given to the original authors. Since Adepts isn't very compatible with other mods, it would give these weapons a wider audience in DS2 which they and their authors deserve.

    Setting them up to be class specific is quite easy, you can look at how the Blood Assassin and Fist of Stone class specific weapons are set up for a guide.

    Armors are more limited since DS1 armor textures need to be converted for use in DS2 and about 22 variations made due to the way armors work in DS2. Making new armors from scratch for DS2 is very tedious for this very reason, which is why there's very few available. Your best bet would be just to retexture existing armors or add motifs, etc, to them to make them different from the regular versions. You can even use the armors from the Legendary Mod if you want to. A program like XnView MP can edit dds files directly or convert them to other formats for editing.

    The possibilities are endless, it just depends on what your aims are and how much time you want to spend on it.

    HardLess's picture

    Firstly, thank you for giving us this idea and as well your permission to use some features of your mods.

    We will take a look at all the possibilities open to us now thanks to you.

    We want to add some new classes in our mod, but in order to do so I would need some help of the modding community.
    Because, I'm really new to skrit but we have some ideas that could be interesting but I haven't the skill to create it myself.

    So if some of the community want to help, we'll be very pleased about it.

    One of the thing at the moment, I'm trying to create is giving the ability thought a spell to use incantations without standing on a incantation shrine.

    So, if someone have an idea or a clue to create it, it would be very nice.

    See you.

    Thank you again.

            [spell_single]
    	{
    	}
    	[spell_status_effect]
    	{
    		description	= "rapid attack";
    	}
    

    why are those needed? doesn't alter_generic already do the description?

                             
                            [*]
    			{
    				alteration = alter_generic;
    				description = "rapid attack";
    				duration = 0;
    			}
    

    or something like that...

    ---One of the thing at the moment, I'm trying to create is giving the ability thought a spell to use incantations without standing on a incantation shrine--- there is mod called amulet of the dead http://www.siegetheday.org/?q=node/907 that does the talk to ghost incantation, perhaps that can be used as a guide to your spell creation.

    HardLess's picture

    Darkelf wrote:
            [spell_single]
    	{
    	}
    	[spell_status_effect]
    	{
    		description	= "rapid attack";
    	}
    

    why are those needed? doesn't alter_generic already do the description?

                             
                            [*]
    			{
    				alteration = alter_generic;
    				description = "rapid attack";
    				duration = 0;
    			}
    

    or something like that...

    You must be right about that, but this is pretty much a copy of the original template of the rapid attack.

    I'll take a look at this mod,

    Thank you.

    HardLess's picture

    I must misunderstand something.

    I really don't see how this code is supposed to give the caster the ability to speak with the dead...

      [t:template,n:deadamulet]
      {
    	doc = "dead amulet";
    	specializes = amulet;
    
    	[common]
    	{
    		base_screen_name = "Amulet";
    		screen_name = "Amulet of the Dead";
    		allow_modifiers = false;	
    		is_pcontent_allowed = false;
    		rarity = unique;
    		can_sell = false;
    		is_pet_consumable = false;
    	}
    	[gui]
    	{
    		inventory_icon = b_gui_ig_i_it_amulet_028;
     	 	item_level = 25;
    		equip_requirements = uber:25;
    		use_class = IST_ALL;
    	}
    	[magic]
    	{
    		[enchantments]
    		{
    			[incantation_dead_speak]
    			{
    				alteration		= alter_intelligence;
    				description 		= "Speak with Dead";
    				party_active 		= true;
    				value			= 0;
    				duration		= #infinite;
    				is_permanent		= true;
    				is_single_instance	= false;
    				custom_effect		= "Speak with Dead";
    				custom_effect_skrit	= world\global\enchantments\actor_enchant.skrit?enchanted_ffx=ffx_incantation_util;
    			}
    			[*]
    			{
    				alteration		= alter_death_resistance;
    				value			= 0.8;
    				description		= "+80% Death Resistance";
    				duration		= #infinite;
    				is_permanent		= true;
    				is_single_instance	= false;
    			}
    		}
    	}
      }
    

    EDIT: Oh sorry, I figured it myself Smile

    HardLess's picture

    Hi,

    My bad, I have just noticed that my mod also overwrite another important file of the Arrana Legacy, the skill manager...

    yes probably should use your own naming for templates and skrits, (like HardLess_skill_manager.skrit but then you would have to overwrite heroes_ds2.gas as well since that calls that skrit, not sure if it possible to make skill's compatible with other mods though your doing a good job keep working at it, you will be a pro in a month

    remember it's all in the enchantments! like the amulet of the dead #infinite is forever, so if u want it to turn off will need a numerical duration like 480 etc.

    HardLess's picture

    Hi,

    I really thank you, for all the time your are spending to help me. All this help is really encouraging, I thank you a lot.

    I'm trying my best in this mod but there are some things that I don't know or understand to make what I want.
    Especially to do this "Incantation Spell", but I think that I didn't nicely explain what is on my mind.
    What this spell is suppose to do is, when you cast it the caster is able to recite a chant.
    But with this spell I don't really know where to start.
    I don't find anything about a boolean that turn on or off the ability to recite a chant.
    I try to do some things like modify the button "Recite Chant" in the UI to overpass the condition "is on a shrine".

    This is the code of the button.

    		OnReciteChant$
    		{
    			if( !StringTool.SameNoCase( m_sByType$, "chant" ) )
    			{
    				report.errorf("ERROR - Trying to recite a chant, but we're not on the (%s) subtab!\n", m_sByType$ );
    				return;
    			}
    
    
    			// I'm trying to add another condition here like "HasGenericState("State")"
    
    
    			if(!UIGameConsole.GetActiveIncantationShrine()) 
    			{
    				string msg$ = contentdb.GetTemplateString( "gs_not_at_incantation_shrine:global_string:screen_text", "" );
    				if( !StringTool.IsEmpty( msg$ ) )
    				{
    					UIGame.DisplayMsgF( Report.Translate( msg$ ) );
    				}
    			}
    
    			if(!StringTool.IsEmpty(m_sChantString$))
    			{
    				UIGameConsole.ReceiveConsoleText( m_sChantString$ );
    			}
    
    			UIGame.ToggleJournal();
    		}
    

    But in order to add this condition I need to get the owner of the Journal.

    I don't know if I'm going on the right way to do it, but this is the only thing a find to bypass easily the condition.

    If anyone has an idea about how to get the owner of the Journal or another way to do this I'll thanks him a lot :).

    See you.

    looks like ffx_incantation_activate ffx_incantation_deactivate could be used if u can figure out the spell code

    also there is other ways to bypass being on shrine, just in incantation_shrine.skrit, just gotta know what to delete hehe

    HardLess's picture

    I did it at last Smile !

    It works fine but every chant you recite will overwrite the previous one :).

    Thank you Darkelf.

    This will help for the next class to come...

    See you.

    HardLess's picture

    I'm trying to modify some rules of the game but I need to do something wrong.

    My idea is to avoid the owner of a generic state to be able to use life steal.

    This is a piece of the spell template:

    ...
    [spell_multiclass]
    	{
    		set = true;
    		state_name = "special_state";
    		
    	}
    ...
    

    The piece of my spell_multiclass skrit:

    property bool	_server_only$		= false;
    
    property float	state_duration$		= 480   doc = "Duration of the State";
    property bool	set$				= false doc = "Apply or not ??";
    property string state_name$			= ""	doc = "Name of the state to use when storing the aura data.";
    
    owner = GoSkritComponent;
    
    Go caster$;
    
    startup state StartUp${	
    	event OnGoHandleMessage$( eWorldEvent e$, WorldMessage msg$ ){
    		if ( e$ == WE_REQ_CAST ){
    			if(set$){
    				caster$ = msg$.GetSendFrom();
    				caster$.Actor.SAddGenericState(state_name$,"donnu",0,caster$.Goid,caster$.Goid,caster$.Magic.GetMagicLevel(caster$));
    			}
    		}
    	}
    }
    

    This seems to work the problem is in the rule skrit.

    This is the piece I'm trying to modify.

    		if ( !hAttacker$.Actor.HasGenericState("special_state") ) // This is the problem 
    		{
    			if ( ( isMeleeWeapon$ || isRangedWeapon$ || isSpell$ ) )
    			{
    				if( (hAttacker$.GetAttack().GetLifeStealAmount() > 0) || (hAttacker$.GetAttack().GetLifeBonusAmount() > 0) )
    				{
    						float NewLife$ = hAttacker$.GetAspect().GetCurrentLife() + hAttacker$.GetAttack().GetLifeBonusAmount() + (hAttacker$.GetAttack().GetLifeStealAmount() / 100.0) * amount$;
    						report.reportf("COMBAT","COMBAT: Life bonus = %.2f\n", NewLife$ - hAttacker$.GetAspect().GetCurrentLife());
    
    					if ( NewLife$ > hAttacker$.GetAspect().GetMaxLife() )
    					{
    						NewLife$ = hAttacker$.GetAspect().GetMaxLife();
    					}
    
    					hAttacker$.GetAspect().SSetCurrentLife( NewLife$ );
    				}
    				if( (hAttacker$.GetAttack().GetManaStealAmount() > 0) || (hAttacker$.GetAttack().GetManaBonusAmount() > 0) )
    				{
    					float NewMana$ = hAttacker$.GetAspect().GetCurrentMana() + hAttacker$.GetAttack().GetManaBonusAmount() + (hAttacker$.GetAttack().GetManaStealAmount() / 100.0) * amount$;
    					report.reportf("COMBAT","COMBAT: Mana bonus = %.2f\n", NewMana$ - hAttacker$.GetAspect().GetCurrentMana());
    
    					if ( NewMana$ > hAttacker$.GetAspect().GetMaxMana() )
    					{
    						NewMana$ = hAttacker$.GetAspect().GetMaxMana();
    					}
    
    					hAttacker$.GetAspect().SSetCurrentMana( NewMana$ );
    				}
    			}
    		}
    

    I don't understand why this isn't working.

    Thank you in advance.

    considering ds2 monsters don't use mana I not sure if GetManaStealAmount will ever be > 0 as they have 0 in the first place.

    the real question is what are you trying to do with the life steal? more information is needed.

    HardLess's picture

    What I want to do is, when I cast the spell the caster get the "special_state" on him then if he has this state, lifesteal and manasteal won't work on him.

    Edit: He can't use lifesteal and manasteal

    Edit2: Does anybody have an idea ?

    HardLess wrote:
    What I want to do is, when I cast the spell the caster get the "special_state" on him then if he has this state, lifesteal and manasteal won't work on him.
    . . .
    If you really want to deactivate mana/life stealing then try once to do this as buff resp. curse.
    For magical [enchantments] you may set multiply_value = true (see components.gas) in order to multiply existing bonus values on the actor with the value set in the currently treated enchantment block. So a value (now: multiplier) of zero would disable a bonus type temporarily.
    Unfortunately not all bonus types respect multiply_value, but it's worth trying I think.

     
    If you want to do it with skrit...
    Mana/life stealing is handled in rules.skrit, you had to expand the corresponding code part (if a specific state is set, just multiply the usual bonus changes with zero).
    Altough, honestly I don't like to suggest to change rules.skrit - we could end at the point where we have 1000 mods and each of with rules.skrit and a few lines of modified code... :o

    I wouldn't generally exclude that there is possibility too for a separate spell component that counter-works rules.skrit, but this could turn out to be quite tricky. However if you want to go on in this direction perhaps Xaa's Skrit Tutorial may help.

    HardLess's picture

    Hi,

    I'm still working on the mod, and I'm trying to improve it.

    But I have some questions which I can't find the answers in Xaa's tutorial or the Skrit and Template Cross Reference.

    Here are my questions:

    _ How can I execute a skrit when a game start ?

    _ Where can I find a reference of all skrit functions ? (I'm using SiegeTool and the "Skrit and Template Cross Reference" but there are some functions that I can't find )... Like the function to Set a new armor value to the Actor...

    _ Is it possible to really Cast a Spell on a Actor through skrit like with the template name of the spell ? EDIT : Or at least get the Goid of a spell without having it in the inventory, just with the template name.

    Thanks in advance

    HardLess wrote:
    Hi,

    I'm still working on the mod, and I'm trying to improve it.

    But I have some questions which I can't find the answers in Xaa's tutorial or the Skrit and Template Cross Reference.

    Here are my questions:

    _ How can I execute a skrit when a game start ?

    _ Where can I find a reference of all skrit functions ? (I'm using SiegeTool and the "Skrit and Template Cross Reference" but there are some functions that I can't find )... Like the function to Set a new armor value to the Actor...

    _ Is it possible to really Cast a Spell on a Actor through skrit like with the template name of the spell ? EDIT : Or at least get the Goid of a spell without having it in the inventory, just with the template name.

    Thanks in advance

    I don't think you would want to execute a skrit at game start. You would want something to trigger it. You could use a trigger where the character starts off to execute a skrit, but this is only good for certain things such as moods. It can be a waste of resources having a skrit always running. Of course it depends on what you're doing if this is a good idea or not.

    You can generate a fubi that will give you the functions with DS2mod. I cannot recall the switch offhand.

    You would have to apply it using flick. It depends on the spell. Things that alter your character (exp, health, str, etc.) are done without casting by using incantation shrines (which is just a trigger that sends a world message to trigger the flick if you get down to it), mana/health shrines (same as incantation shrines), pet auras, and probably some I'm forgetting. You can set up a generic trigger to send a world message to activate a flick to apply to your character in any way that trigger can be set off (just walking in the boundary box, pushing a button, etc.). Alternatively you could activate a buff type spell using an npc. You would have to create a talk flick that uses the skrit. This would be cool to have a healer like in Diablo 1 and 2 btw. Hope this helps.

    Edit: I forgot, you can also send a message by dropping an item. I saw this done in Broken World. One of the quests have you drop some metal to attract monsters. When the item is dropped they spawn. I haven't looked at the code yet, but I think it's very interesting. Such a thing might have to be done in the framework of a quest or the map (might have a trigger that activates a flick that checks if the item is on the ground).

    HardLess's picture

    I really need to execute a skrit when the game start, the skrit need to be execute just one time and then I can shut it down.

    I don't know how to use fubi, I'll look at this.

    For the third question, I know that there is a function named "SApplyIncantationEnchantments" which takes for parameter an incantation template name, and I'm trying to find the same thing but for spells.

    I mostly deal with this stuff for map and sfx related things, so I'm coming at it from that perspective. I don't know how a skrit would run without triggers and other things (casting spells etc.) sending world messages. There is a file called flick_functions.gas that will be handy when dealing with flick manager. I'm trying to find the switch to generate the fubi.

    @HardLess: As Dualc mentioned most actions in DS2 are triggered by events.
    So usually a game event starts a skrit/flick component that is carried by a game object, and sender or data part of the event are often taken as target object to treat.

    However rules.skrit has the OnClientEnterWorld$() function, it runs at game start (and is one rare example of skrit code not bound onto a game object).
    Disadvantage of OnClientEnterWorld$() is that you need to change rules.skrit (see my last post), and the function only provides the goid of the hero, so if you need other goids of source or target objects you had to expand the function to produce or to find them.

     

    HardLess wrote:
    . . .
    For the third question, I know that there is a function named "SApplyIncantationEnchantments" which takes for parameter an incantation template name, and I'm trying to find the same thing but for spells.
    Indeed, this function is made for incantations (as in world/global/incantions). If you want to copy the magic from one object to another it usually happens with the ApplyEnchantments function (see spell.skrit).
    The advantage of incantations is that they don't need a (loaded) game object to copy the magic from, disadvantage is that there only can be one incantation at the same time (never experienced something else so far) while 'copied magic' and overlap as long as the sources exist.

    The fubi.log with the majority of skrit functions you can get with: DungeonSiege2Mod.exe dumphelp=true
    http://web.archive.org/web/20070621210914/http://garage.gaspowered.com/?q=DS2TKV1_1

    HardLess's picture

    Thanks again,

    I think the easiest way for anybody to really undestand what I want to do is to show you what I've already done.

    So there are a lot of hardcoded function to make old skills tab works.
    And I need to implement them on my own.
    So my first question was link to applying alteration that I make in my new skill tab on each character of the party but I need to do it when the game start here is the problem.

    My third question was link to some skills, I want to create aura skills, so I need to "cast" a spell on the character without him doing anything.

    So if anybody have some ideas, I'll be really pleased.

    Thank You as usual.

    See you.

    Wow Hardless. I'd die for more skill tabs! I'll try to come up with some ideas. They will be only theoretical, because I'm not that advanced in skrit. Are you quite good at skrit? One idea I have (mentioned a bit earlier) is to have a trigger setup at start points. It can tag along with the mood trigger even. So you could have it send a world message that way, then check to see if it's active or not, if not run the skrit, and if so do nothing. There would be no way the player could miss the trigger that sends the world message this way unless the map didn't support it.

    Edit: I'm thinking the ongoing skrit will need to check for skill lvl and then apply the alteration to the character. It'd have to check for each lvl (1, 2,3...30).

    HardLess's picture

    I'm not good at all, this tab is partially functional, this is just a BIG tweak of the UI just this.

    But it's works fine. There are some bugs but the most of them are easy to fix.

    I'm not an artist so design is not that great(working on it).

    HardLess wrote:
    I'm not good at all, this tab is partially functional, this is just a BIG tweak of the UI just this.

    But it's works fine. There are some bugs but the most of them are easy to fix.

    I'm not an artist so design is not that great(working on it).

    I asked because it's quite ambitious. However, you have a nice start with the gui. I never thought about doing it, because it's hard coded, but it looks very plausible with a skrit workaround to me now.

    HardLess's picture

    There are still a lot to do but it's works fine.

    Just need some help as you've seen because I'm not that good in skrit, but I really want to finish this, the new tab for "Melee Combat Magic", and if all works fine I'll probably create the "Ranged Nature Magic".

    Thanks to anyone who will help me in advance.

    See you.

    @HardLess: Amazing! Smile
    ...unfortunately I never have tied so far to add new skills. :o

    Spontaniouly I would use/combine for such auras the same 'mechanics' as used to make monster angry (it's an angry aura basically). But instead of an anger controller I would create a spell or spell-like item as (partially) used for the aura feature of pets (because anger has a time limit, while pet auras have distance limit).

    Such skills possibly could be handled in the [skill_manager] component of heroes, actually there also could be an additional component like [skill_manager_iron] to handle the new skills in an own file.
    However it could be tricky to get total control over it. This component has to become active when the game stats, but also when actor come from the inn, when dead actors get resurrected (the aura may be gone) or when the amount of assigned skill point changes...
    I had to rethink aout this a little longer.

    HardLess's picture

    KillerGremal wrote:

    Such skills possibly could be handled in the [skill_manager] component of heroes

    KillerGremal wrote:

    This component has to become active when the game stats

    So, I have put all functions to alter the character in the skill_manager, and it's working perfectly.
    When the game start all alteration are applied.

    KillerGremal wrote:

    but also when actor come from the inn, when dead actors get resurrected (the aura may be gone) or when the amount of assigned skill point changes...

    There is a world event (WE_RESURRECTED), perhaps it could work in the skill_manager (need to try it), but the comment next to this world event is "Not used" (It could be its first use Smile )

    The amount of skill point changes are already handled, I call a function from the "Confirm" button in the UI to be sure it's apply.

    Need to work on this aura, seems really hard.

    See you.

    KillerGremal wrote:
    @HardLess: Amazing! Smile
    ...unfortunately I never have tied so far to add new skills. :o

    Spontaniouly I would use/combine for such auras the same 'mechanics' as used to make monster angry (it's an angry aura basically). But instead of an anger controller I would create a spell or spell-like item as (partially) used for the aura feature of pets (because anger has a time limit, while pet auras have distance limit).

    Such skills possibly could be handled in the [skill_manager] component of heroes, actually there also could be an additional component like [skill_manager_iron] to handle the new skills in an own file.
    However it could be tricky to get total control over it. This component has to become active when the game stats, but also when actor come from the inn, when dead actors get resurrected (the aura may be gone) or when the amount of assigned skill point changes...
    I had to rethink aout this a little longer.

    The power Energy Orb stays active when the player is dead. Maybe it works like a summon as a separate entity. That may be helpful. I wonder if you could create a dummy entity that works like a summon or Energy Orb. An alternative solution could be activating the skrit by using the spell that splits the melee and combat damage. That isn't the most desirable solution, but it wouldn't affect gameplay too terribly.

    Edit: Also moods don't go away when players die. Looking into how they work might bring insight.

    Pages