Save for the frost giant, none of that is tied to it. (poor bunny)zeus9860 said:-kill the rabbit near the house to the right of spawn place (it's a good luck charm!);
-ignore the elf, unless you want a huge pain in the @ss or the specific drop from there;
-kill bear;
-kill orcs;
-kill frost giant;
-clean the caves.
Thothie said:Save for the frost giant, none of that is tied to it. (poor bunny)zeus9860 said:-kill the rabbit near the house to the right of spawn place (it's a good luck charm!);
-ignore the elf, unless you want a huge pain in the @ss or the specific drop from there;
-kill bear;
-kill orcs;
-kill frost giant;
-clean the caves.
Doing the dream quest first, however, might actually help, as it'll give enough time for the frost giant to fully spin up his XP, in case repeatedly using setskilllevel is preventing his death from registering properly - but I doubt that's what's going on.
{ check_teleport
//if we're close, try to teleport to last position, if far, try to teleport closer
local AM_CLOSE 0
if ( $get(NPCATK_TARGET,range) < RANGE_CHASE ) local AM_CLOSE 1
local CUR_POS $get(ent_me,origin)
if ( !AM_CLOSE )
{
//pick area randomly around target
local TELE_POINT $get(NPCATK_TARGET,origin)
local RND_ANG $randf(0,359.99)
vectoradd TELE_POINT $relpos($vec(0,RND_ANG,0),$vec(0,MOVERANGE_NORM,0))
vectorset TELE_POINT z $get_ground_height(TELE_POINT)
if ( !GROUND_MODE ) vectoradd TELE_POINT z 16 //correct for ground slopes, if tele to ground
setvard LAST_TELE_POINT $get(ent_me,origin)
}
if ( AM_CLOSE )
{
if ( LAST_TELE_POINT isnot 'LAST_TELE_POINT' )
{
local TELE_POINT LAST_TELE_POINT
}
else
{
local TELE_POINT NPC_HOME_LOC
}
}
//test new position
setorigin ent_me TELE_POINT
local L_POS TELE_POINT
local reg.npcmove.endpos L_POS
vectoradd reg.npcmove.endpos $relpos($vec(0,game.monster.angles.yaw,0),$vec(-16,0,0))
local reg.npcmove.testonly 1
npcmove ent_me NPCATK_TARGET
if ( game.ret.npcmove.dist <= 0 )
{
//position failed, go back to where I was, try again next think
dbg teleport failed AM_CLOSE game.ret.npcmove.dist TELE_POINT
setorigin ent_me CUR_POS
}
else
{
//playsound 0 10 SOUND_TELE
local SPR_POINT TELE_POINT
if ( !AM_CLOSE ) vectoradd SPR_POINT z 32 //presume teleporting to ground, adjust
clientevent new all effects/sfx_sprite_in_fancy SPR_POINT c-tele1.spr 25 2.0 (255,255,255) 512 magic/teleport.wav
clientevent new all effects/sfx_sprite_in_fancy CUR_POS c-tele1.spr 25 2.0 (255,255,255) 512 magic/teleport.wav
setvard NEXT_TELEPORT game.time
local L_FREQ_TELEPORT FREQ_TELEPORT
if ( !AM_CLOSE ) multiply L_FREQ_TELEPORT 0.5 //favors teleporting away
add NEXT_TELEPORT L_FREQ_TELEPORT
if !STAY_ON_GROUND
if ( !AM_CLOSE )
{
//we weren't close before, but should be now, set ground mode
//but premtively set ground mode var to prevent climb down animation
if ( !GROUND_MODE ) playanim break
setvard GROUND_MODE 1
callevent ground_mode
}
else
{
//otherwise, visa versa
if ( GROUND_MODE ) playanim break
setvard GROUND_MODE 0
callevent ceiling_mode
}
}
}