FOnline Development > General Discussion

[ How to ] Mapper - Script,Vars : Simple var script for kill quests

(1/1)

muhoooool:
Hello all,
As the thread states, my question is; is there a simple script on setting a value of a variable?
Using vars only in dialogues makes quest sort of limited.
Im looking for something like; when a certain critter dies, value changes.
Thanks!

Kilgore:
there are lots of these in SDK.

check any quest script, for example q_dappo_lost_c_robot.fos


--- Code: ---    GameVar@ buster_status = GetLocalVar( LVAR_ncr_buster_lost_c_status, fromCr.Id );
    buster_status = 2;
--- End code ---


--- Quote ---Im looking for something like; when a certain critter dies, value changes.
--- End quote ---

try using critter event triggering it. there are probably lots of examples of using critter events in sdk.

muhoooool:
HERE
is a simple var script!
this script changes value of a var when npc dies.

Add your_script_name.fos to server/script.cfg
Add your_script_name inside mapper to npc > script
add _MuholInit iside mapper to npc > function


--- Code: ---#include "_macros.fos"

void _MuholInit( Critter& npc, bool firstTime )
{

npc.StatBase[ ST_AI_ID ] = 55; // AI OF NPC FROM _ai.fos /server/scripts ( set to vic defensive )
npc.StatBase[ ST_TEAM_ID ] = 0; // TEAM FROM _teams.fos ... set to plyer?
npc.StatBase[ ST_DIALOG_ID  ] = 30000; // DIALOG
npc.ModeBase[ MODE_NO_PVP ] = 0;
npc.SetEvent( CRITTER_EVENT_DEAD, "_MuholDead" ); // if event is CRITTER_EVENT_DEAD ( if critter dies) initites void _MuholDead
}

void _MuholDead( Critter& npc, Critter@ killer )
 {if (killer.IsPlayer())
{
    GameVar@ var = GetLocalVar( LVAR_muhol_quest, killer.Id ); // gets local var(for individual player) ( I think global var is for all players
    var = 1; // Sets the var from above to 1 ( In dialogue now you can demand the var value of 1
}
}

--- End code ---

Navigation

[0] Message Index

Go to full version