• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

TFS 1.X+ [tfs 1.3] bug when monster get telport to spawn

roriscrave

Advanced OT User
Joined
Dec 7, 2011
Messages
1,210
Solutions
35
Reaction score
206
1) Player A and Player B will kill a dark snake (demon, orshaball, etc)
2) Player A use "exeta res" and lure a Dark Snake
3) Player A lure more and more.. (so darkSnake get teleported to spawn position, because anti-lure system (deSpawn))
4) Now player B can kill a dark snake, without being attacked the dark snake doesn't see him anymore.

how to fix?
-> The darksnake being teleported back to the respaw should check for a new "target"
1570689517326.png
 
Solution
hmm if remove
Code:
setIdle(true);
the problem is solved?
Yes, if you remove setIdle(true); it should work as supposed to work because as I already said g_game.internalTeleport(this, masterPos); will call updateIdleStatus(); after teleport so it'll target if there's players to target or go to idle if there isn't anyone to target, I don't know why there's this setIdle(true); because it tells monster to go idle(not think at all) after teleporting which is completely wrong.
Can you reproduce this bug with the TFS 1.3 master? (10.98)

If this issue is confirmed there, then official devs can look into it, else you might need to consult with whoever made that downport your using. (nekiro?).

Yes, it is.
 
In monster.cpp the despawn is coded:
C++:
if (!isInSpawnRange(position)) {
        g_game.internalTeleport(this, masterPos);
        setIdle(true);
    }
which is wrong because there's that "setIdle(true);" which doesn't make any sense for it to be there.
"g_game.internalTeleport(this, masterPos);" should handle idle status automatic if there's no one to target after teleport.
And yes it is in every TFS 1.x distribution(even otx3 which is based on it).
 
In monster.cpp the despawn is coded:
C++:
if (!isInSpawnRange(position)) {
        g_game.internalTeleport(this, masterPos);
        setIdle(true);
    }
which is wrong because there's that "setIdle(true);" which doesn't make any sense for it to be there.
"g_game.internalTeleport(this, masterPos);" should handle idle status automatic if there's no one to target after teleport.
And yes it is in every TFS 1.x distribution(even otx3 which is based on it).
hmm if remove
Code:
setIdle(true);
the problem is solved?
 
Yes, it is.
the issue clearly states that it is does NOT RESIDE in master tfs branch, you guys have this issue because of that "delayed respawn feature" that tibia implemented, and master tfs branch still use the old way so there is no bug on master branch @Znote
 
hmm if remove
Code:
setIdle(true);
the problem is solved?
Yes, if you remove setIdle(true); it should work as supposed to work because as I already said g_game.internalTeleport(this, masterPos); will call updateIdleStatus(); after teleport so it'll target if there's players to target or go to idle if there isn't anyone to target, I don't know why there's this setIdle(true); because it tells monster to go idle(not think at all) after teleporting which is completely wrong.
 
Solution
And how its supposed to work? I mean, how should it work or how it works on cipbia.

monsters should now (re)spawn even if there is a player on the screen, like this:

xYf9Bz9.gif

as of tibia update 10.7 it is no longer possible to block the following creature spawns (source):

Abyssal Calamary300200
Badger235
Bat3010
Bear8023
Behemoth40002500
Blood Beast16001000
Blood Crab290160
Bonebeast515580
Brittle Skeleton5035
Carrion Worm14570
Cave Rat3010
Cobra6530
Control Tower75003000
Crazed Dwarf10550
Crustacea Gigantica16001800
Crypt Shambler330195
Crystal Spider1250900
Crystalcrusher570500
Dark Torturer73504650
Dawn Scorpion6545
Dawnfly9035
Deer250
Demon82006000
Demon Skeleton400240
Destroyer37002500
Devourer19001800
Drillworm15001100
Dwarf Miner12060
Elder Wyrm27002500
Execowtioner35002400
Ghoul10085
Giant Spider1300900
Glooth Anemone24001800
Glooth Battery80003000
Glooth Blob750700
Glooth Golem27002200
Grim Reaper39005500
Hellfire Fighter38003900
Hellhound75006800
Hellspawn35002550
High Voltage Elemental15001500
Juggernaut2000014000
Juvenile Cyclops260130
Larva7044
Lesser Fire Devil175110
Massive Fire Elemental12001400
Meadow Strider10050
Metal Gargoyle21001400
Minotaur10050
Minotaur Amazon26002200
Minotaur Archer10065
Minotaur Bruiser10050
Minotaur Guard185160
Minotaur Hunter14001700
Minotaur Invader18501600
Minotaur Occultist125100
Minotaur Poacher16055
Mooh'Tah Warrior1200900
Moohtant32002600
Mountain Troll3012
Muglex Clan Assassin7548
Muglex Clan Footman5025
Muglex Clan Scavenger6037
Mummy240150
Orc7025
Pirate Ghost275250
Pirate Skeleton19085
Poison Spider2622
Quara Constrictor450250
Quara Hydromancer1100800
Quara Mantassin800400
Quara Pincher18001200
Quara Predator22001600
Rabbit150
Rat205
Renegade Quara Constrictor15001250
Renegade Quara Hydromancer20001800
Renegade Quara Mantassin12001000
Renegade Quara Pincher28002200
Renegade Quara Predator32502700
Rot Elemental850750
Rotworm6540
Rustheap Golem28002300
Scar Tribe Shaman11585
Scar Tribe Warrior12585
Scarab320120
Scorpion4545
Sea Serpent19502300
Seacrest Serpent30002600
Shark1200700
Sheep200
Skeleton5035
Spider2012
Squirrel200
Terramite365160
Troll Marauder7040
Troll-Trained Salamander7023
Vulcongra16001100
Walker30002200
War Golem43002750
Wasp3524
Wiggler1200900
Wolf2518
Woodling8040
Worker Golem14701250
Worm Priestess11001500
Wyrm18251550
Wyvern795515
Young Sea Serpent10501000
 
I mean the lure system

if you lure the monster from its spawn point from X sqm it will vanish (poff), if you lure it from its spawn point but not too far away and it loses the target from you, it will walk back to its original spawn point (no duplicated monster will spawn as it is happening with those distros)
 
Back
Top