L2 Shrine strongly condemns the aggression of the barbaric russian federation. 🇺🇦 Slava Ukraini! 🇺🇦
  • 0

TEZZA RESPAWN CODE/TIME


heroBD

Question

Can we know how exacly tezza CD works ? i know they has been a lot of chatting about tezza in this server (like in most server  , most bugged epic).

I am asking because i know from experience that it has 48+4  , and a tiny chance not to spawn and spawn random in the next 24 hours. the thing is that this chance should be tiny.......
and in the last 4 tezza , it is the second time it happens not to spawn on 48+4.

Also , last time we killed tezza the second parts was "bugged". 1st part = kill columns , 2nd part is kill the fat mobs .normally u kill 4 skeletons on 2nd part and then hundreds of mobs appears.

last time we did it we went on 2nd part and all the mosts were already there + fat guys , without killing skeletons, i see that for first time after so many tezzas......

it doesnt matter so much specifically since server will update in some weeks , but it is just super frustating to have to "camp" an epic in a server that hasnt pvp for this epic and having totally random CDs.

can we know from the code that it has for example 40% chance to respawn in 3rd day ?

P.S: i know that if we kill 1st form of tezza and fail it goes normally on cooldown and counts as dead epic

 

Edited by heroBD
Link to post
Share on other sites

14 answers to this question

Recommended Posts

  • 0

These lines are taken from the npcpos.txt definition file, these definitions are parsed by the server and server then creates npcs using npc makers.

npcmaker_ex_begin    [frintessa_2515_01]    name=[frintessa_maker]    ai=[default_use_db_maker_for_frintessa]    ai_parameters={[maker_name]=[frintessa_teleportcuve]}    maximum_npc=9            
npc_ex_begin    [frintessa]    pos={-105200;-253104;-15264;16834}    total=1    respawn=48hour    respawn_rand=24hour    dbname=[frintessa]    boss_respawn_set=yes    npc_ex_end
npc_ex_begin    [follower_of_frintessa]    pos={-105200;-253104;-15264;16834}    total=1    respawn=48hour    respawn_rand=24hour    dbname=[follower_of_frintessa]    boss_respawn_set=yes    npc_ex_end
npc_ex_begin    [follower_of_frintessa_tr]    pos={-105200;-253104;-15264;16834}    total=1    respawn=48hour    respawn_rand=24hour    dbname=[follower_of_frintessa_tr]    boss_respawn_set=yes    npc_ex_end
npcmaker_ex_end

So basically, it means there is 48hours + 24 hours random. Maker ensures that NPC is loaded from DB + spawns/despawns it.

How the random actually works i can't say, @Emca would have to reverse ASM code that is doing the random spawn calculations.

But what can i say is that you can enter tezza only, when fritessa, follower_of_frintessa and follower_of_frintessa_tr are spawned. This means there is running 48hours + 24hours random spawn for Frintezza npc itself, as well as for Halisha and Halisha transformation.

Here's piece of code from the NPC that can teleport you to Frintezza:

if( IsNullCreature(c1) != 0 || IsNullCreature(c2) != 0 || IsNullCreature(c3) != 0 )
{
	ShowPage(talker, "frintessa_teleporter002.htm");
	return;
}

c1 = Frintezza, c2 = Halisha, c3 = Halisha Transformation. IsNullCreature checks if exists (is spawned). So if any of the mentioned npcs is not spawned, you won't get teleported in.

Link to post
Share on other sites
  • 0

The latter thing you're mentioning - looks like that sometimes Frintezza location is not properly cleared. Finding the wrong piece of code is tough, because whole Frintezza thing is super messy. I did some work where i cleaned the code, but it is not in the core yet. There's a more lot work to do.

Link to post
Share on other sites
  • 0

48+24 is wrong too. I remember some tezza respawned after 44-45 hours. Since im not hero anymore it cant be checked in my history, but i made screen with 2nd spawn.
https://imgur.com/a/Oc02R
I think previous tezza was killed at 18-19 hour 27.07 and next one at 15h 29.07 was already up. (I'm not sure about 1st tezza hour, but im sure it was less than 48h, thats why i made screen. If u want to proof my words i think checking this will be easy when u know day and more or less hour.)

Link to post
Share on other sites
  • 0

As i said, i don't know how the random generator thing is implemented, so can't say why / if it is wrong or not (there might be some exceptions for certain bosses?). I also got one report about a weird spawn (Frintezza spawned before 48 hours limit). Unfortunately i can't reverse the ASM code and look at the implementation, this is something that Emca has to do :), so i believe you that there is something wrong.

Link to post
Share on other sites
  • 0

thnx a lot for the response and the effort. it doesnt even matter to make more effort for this stupid instance... i was just curious if it had some easy chances to decode , but if it is pain in the ass it isnt worth. lets w8 for epilogue and see any changes/bugs there...

still the explanation on how it goes off while semi killed + the bug with the mobs , was enough

Edited by heroBD
Link to post
Share on other sites
  • 0

I'm not sure if there were some changes in the AI for the epilogue (i was "off" for a while because of personal life), but i will do more code cleanup / refactoring for Frintezza, so i hope i will find & fix bug you mentioned.

Link to post
Share on other sites
  • 0
1 hour ago, TzaR said:

if we dont kill last transform of scarlet, he like die and next resp possible in 48+24, but if we got resstart the server frintezza resp asap

True, if 1st transformation is killed, there's 48+24 random. I have to check why there's random asap after server restart - thx for letting me know.

Link to post
Share on other sites
  • 0
int CNpcSpawnDefine::GetRespawnTime()
{
	GUARDED;

 	if (respawnTime <= 0 || randTime < respawnTime) {
  		if (randTime <= 0) {
   			return respawnTime;
  		} else {
   			return rand() % (2 * randTime) + respawnTime - randTime;
  		}
 	} else {
  		CLog::Add(CLog::Red, L"[%s]->[%s] RespawnRandTime[%d] >= RespawnTime[%d] !!!",
   			GetTerritoryInfo()->GetFirstTerritoryName(), GetName(), randTime, respawnTime);
 
		return 15;
	}
}

The most interesting part is 

return rand() % (2 * randTime) + respawnTime - randTime;

which means minimum is respawnTime - randTime and maximum is respawnTime + randTime so it's 24 - 72 hours for Frintezza.

  • Like 1
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.