Wolfy DE alpha 4a
| Submitted by Darkelf on Tue, 2016-12-27 23:52 | |||||
Wolfy DE alpha 4a adding 3 transformation spells - need to create new spell icons for the new spells yet
blogs: |
|||||
User loginGame resourcesProject sitesWho's onlineThere are currently 0 users online. |
|
|||||||||||||||
Comments
Checked all the pack mule sellers in KoE, LoA, LoU, and several other maps. Just the standard pack animal no Wolves. What about instead of having to modify the sellers make the pack wolf a spell along the lines of the Mod SNPC_LoA where the spell adds the the summoned person to your party. As an example here is Ulora's template
[t:template,n:spell_summon_ulora] { category_name = "magic"; doc = "spell summon ulora"; specializes = base_summon_good; [aspect] { gold_value = 200; } [common] { screen_name = "Summon Ulora"; description = "Summons Ulora to join the party."; [template_triggers] { [*] { action* = call_sfx_script( "nature_spell_sparkle" ); condition* = receive_world_message("we_dropped"); } } } [gui] { active_icon = b_gui_ig_i_ic_sp_asnpc; inventory_icon = b_gui_ig_i_ic_sp_asnpc_inv; } [magic] { apply_enchantments = false; cast_range = 10; cast_reload_delay = 1; is_one_shot = true; mana_cost = 0; mana_cost_modifier = (#magic+1)*14-.7; max_level = 3; required_level = 2; requires_line_of_sight = true; speed_bias = 1; target_type_flags = tt_terrain | tt_not_actor; usage_context_flags = uc_passive; [enchantments] { } } [spell_summon_npc] { effect_script = "summon"; end_script = "un_summon"; template_name = ulora; } }Here is the skrit file associated with the mod
////////////////////////////////////////////////////////////////////////////// // // File : spell_summon.skrit // Author(s): Rick Saenz, Eric Tams // // Copyright © 2000 Gas Powered Games, Inc. All rights reserved. //---------------------------------------------------------------------------- // $Revision:: $ $Date:$ //---------------------------------------------------------------------------- // // Summons an actor to guard the caster. // ////////////////////////////////////////////////////////////////////////////// /* summon_npc.dsres v1.0 by Foolius Basically stripped out all the stuff about duration and changing the state of the caster limiting summons, so the spell can be used to assemble a full party of eight (actually unlimited). Took out apply enchantments code - the summoned npc has only the stats in its own template. Took out experience benefactor code. Took out state ControlSummoned$. Took out delete_inv$ (bool true). */ property string effect_script$ = "" doc = "Name of the SiegeFx script that will be providing the visual."; property string end_script$ = "" doc = "Name of the SiegeFx script that will be providing the visual when un_summoning."; property string script_params$ = "" doc = "Parameters to send to SiegeFx script"; property string template_name$ = "" doc = "Template name of actor to summon"; property string state_name$ = "summoned" doc = "Name of effect to use as a generic state and as a screen name."; property bool change_align$ = true doc = "set summon alignment to be that of the caster."; owner = GoSkritComponent; #include "k_inc_spl_utils" int starting_pos$; Goid summoned_goid$; Goid target$; Goid caster$; bool frozen$ = false; float summon_duration$; trigger OnGoPreload$ { if( template_name$ != "") { GoDb.PreloadCloneSource( owner.Go, template_name$ ); } } trigger OnTimer$( 2 ) { SetState CleanUp$; } trigger OnGoHandleMessage$( WE_WORLD_STATE_TRANSITION_DONE ) { if( summoned_goid$.IsValid ) { if( WorldState.CurrentState == WS_SP_NIS ) { Go Summon$ = summoned_goid$.Go; Summon$.Mind.SetMayAttack( false ); Summon$.Mind.SetMayBeAttacked( false ); Summon$.Mind.SDoJob( MakeJobReq( JAT_STOP, JQ_ACTION, QP_CLEAR, AO_COMMAND )); Summon$.Mind.TempGopColl1.clear; Summon$.Mind.GetEngagedMeEnemies( Summon$.Mind.TempGopColl1 ); int j$ = 0; int jend$ = Summon$.Mind.TempGopColl1.Size(); Go Enemy$; while( j$ < jend$ ) { Enemy$ = Summon$.Mind.TempGopColl1.Get( j$ ); if( Enemy$ != NULL ) { Enemy$.Mind.SDoJob( MakeJobReq( JAT_STOP, JQ_ACTION, QP_CLEAR, AO_COMMAND )); Enemy$.Mind.ResetSensors(); } j$ += 1; } } else { summoned_goid$.Go.Mind.SetMayAttack( true ); summoned_goid$.Go.Mind.SetMayBeAttacked( true ); } } } startup state CastBegin$ { event OnGoHandleMessage$( eWorldEvent e$, WorldMessage msg$ ) { if( e$ == WE_REQ_CAST ) { //////////////////// // Normal Go caster$ = msg$.GetSendFrom(); target$ = MakeGoid( msg$.GetData1() ); if( !target$.IsValidMp || !caster$.IsValidMp ) { SetState Abort$; return; } if( caster$.Go.Actor.HasGenericState( owner.Go.Magic.CasterStateName ) ) { SetState Abort$; return; } // Copy the reference to the starting position into SiegeFx persistant storage starting_pos$ = SiegeFx.AddVariable( target$.go.placement.position, owner.goid ); // Start the visual effect SiegeFx.SRunScript( effect_script$, target$, caster$, script_params$, owner.Goid, WE_REQ_CAST ); } else if ( e$ == WE_SPELL_SYNC_MID ) { //////////////////// // Normal Go SetState SummonGo$; } else if ( e$ == WE_REQ_ACTIVATE ) { //////////////////// // Omni Go caster$ = msg$.GetSendFrom(); summoned_goid$ = MakeGoid( msg$.GetData1() ); if( !summoned_goid$.IsValid || !caster$.Isvalid ) { SetState CleanUp$; return; } if( summoned_goid$.go.hasactor ) { summoned_goid$.Go.Aspect.IsInvincible = false; // watch out pet, so if he dies we can control a new pet. caster$.Go.OwningParty.Party.AddMemberNow( summoned_goid$.Go ); GoDb.StartWatching( owner.Goid, summoned_goid$); } else { SetState CleanUp$; } this.CreateTimer( 1, 0 ); } } } state SummonGo$ { //////////////////// // Normal Go event OnEnterState$ { if( Owner.go.Parent != NULL ) { // First create the go GoCloneReq cloneReq$ = MakeGoCloneReq( template_name$ ); cloneReq$.StartingPos = SiegeFx.GetVariable( starting_pos$, owner.goid ); cloneReq$.SnapToTerrain = true; cloneReq$.Fadein = true; summoned_goid$ = GoDb.SCloneGo( cloneReq$ ); if( change_align$ && caster$.IsValid ) { summoned_goid$.Go.actor.ssetalignment( caster$.Go.actor.alignment ); summoned_goid$.Go.SsetPlayer( caster$.Go.PlayerID ); } summoned_goid$.Go.Aspect.IsInvincible = true; // create Omni version of the spell. cloneReq$ = MakeGoCloneReq( Owner.go.Parent.Goid, owner.goid ); cloneReq$.Omni = true; Goid new_spell$ = GoDb.SCloneGo( cloneReq$ ); // send Omni version an Activate to get it started. PostWorldMessage( WE_REQ_ACTIVATE, caster$, new_spell$, MakeInt( summoned_goid$ ), 0 ); } // delete normal version of the spell. SetState Finished$; } } state Finished$ { //////////////////// // Normal Go event OnEnterState$ { PostWorldMessage( WE_REQ_DELETE, owner.Goid, owner.Goid, 1 ); } } state FinishedOmni$ { //////////////////// // Omni Go event OnEnterState$ { // Get rid of any temporary storage SiegeFx.ClearVariables( owner.goid ); PostWorldMessage( WE_REQ_DELETE, owner.Goid, owner.Goid, 1 ); } } state Abort$ { //////////////////// // Normal Go event OnEnterState$ { // Refund the players mana Rules.ChangeMana( caster$, owner.go.getmagic.manacost ); // Get rid of any temporary storage SiegeFx.ClearVariables( owner.goid ); PostWorldMessage( WE_REQ_DELETE, owner.Goid, owner.Goid, 1 ); } }If you do not have the mod DE and if it is not on the site, let me know and I can upload the whole thing.
will try that next...gonna run the mod through siege editor to see if there is some error

actually Owen had Flare but it seems Flare didn't turn out purple argh so it working somewhat..so gonna try another fix
may try a variation of that in alpha 6, will need to create some 64x64 sized party icons for the wolves