JA

[anti-lure System] Code 7.9 And 7.92

Por Jackson Zani, 27 de fev. de 2007 em Linguagens de Programação

tibia
script
otserv
10
2.9k
27 de fevereiro de 2007 às 17:44

Coments Please!

 

Como vocês leram no tópic, esse code é para Anti-lure, igual tibia rl, quando um monstro chega a certo lugar onde você irá ajustar no config.lua, ele desaparece automaticamente.

 

 

Em Configmanager.cpp Abaixo de:

 

m_confInteger[OTSERV_DB_ENABLED] = getGlobalNumber(L, "otserv_db_enabled", 0);

 

Adicione:

 

#ifdef __BB_ANTI_LURE__ 
  m_confInteger[SQM_LURE] = getGlobalNumber(L, "sqm", 50); 
#endif

 

Em Configmanager.h abaixo de:

 

	#ifdef __TR_ANTI_AFK__
	KICK_TIME,
	#endif

 

Adicione:

 

#ifdef __BB_ANTI_LURE__ 
	SQM_LURE, 
	#endif

 

Agora em Game.cpp abaixo de:

 

if(corpse){ 
			internalAddItem(tile, corpse, INDEX_WHEREEVER, FLAG_NOLIMIT); 
		creature->dropLoot(corpse->getContainer()); 
		startDecay(corpse);	  
	 } 

	 creature->die(); 
	 removeCreature(creature, false); 
  }

 

Adicione:

 

#ifdef __BB_ANTI_LURE__//anti-lure 
	if(Monster* monster = creature->getMonster()) 
	{ 
		if(monster->spawned) 
		{ 
			monster->CheckLured(); 
		} 
	} 
	#endif

 

Agora em Monster.cpp abaixo de:

 

toLowerCaseString(strDescription);

 

Adicione:

 

#ifdef __BB_ANTI_LURE__ 
spawned = false; 
#endif

 

Agora no final de Monster.cpp Adicione:

 

#ifdef __BB_ANTI_LURE__//anti-lure 
bool Monster::CheckLured() 
{ 
 int32_t antiLure; 
 Player* player; 
 antiLure = g_config.getNumber(ConfigManager::SQM_LURE); 
 int32_t deltax = std::abs(masterPos.x - getPosition().x); 
 int32_t deltay = std::abs(masterPos.y - getPosition().y); 
 int32_t deltaz = std::abs(masterPos.z - getPosition().z); 
 if(deltax > antiLure || deltay > antiLure || deltaz > 2) 
 {//modify here the monster max distance from spawn (x, y, z) 
	g_game.removeCreature(this); 
	return true; 
 } 
return false; 
} 
#endif

 

Agora em Monster.h abaixo de:

 

bool canPushItems() const {return mType->canPushItems;}

 

Adicione:

 

#ifdef __BB_ANTI_LURE__//anti-lure 
bool spawned; 
bool CheckLured(); 
#endif

 

Agora vá para Spawn.cpp abaixo de:

 

Monster* monster = Monster::createMonster(mType);
if(!monster){
	return false;
}

 

Adicione:

 

#ifdef __BB_ANTI_LURE__//anti-lure 
	monster->spawned = true; 
	#endif

 

Pronto agora basta configurar, (use alt+p) ou vá em: Project->Project Options(Alt+P)->Parameters ->C++ Compiler

 

Adicione isto:

 

-D__BB_ANTI_LURE__

 

Agora para finalizar em Config.lua adicione isto em qualquer lugar:

 

--SQM spawn from luring a monster 
sqm = 50

 

Pronto, agora dê rebuild all (Ctrl+F11).

 

Créditos: Jackson Zani, betinhobageston

Editado Fevereiro 28 por Jackson Zani

doju_rancidD
01 de março de 2007 às 16:13

Vc poderia colocar mais créditos, pq o code original não foi adicionado ao config.lua. E eu sei que não foi vc q colocou.

 

É ruim as pessoas pegarem os codes dos outros.

:wink:

01 de março de 2007 às 16:25

Qualquer programmer consegue botar um code no config.lua!,

Eu achei meio desnecesario mais se tu fizer questão eu coloco.

 

Abraços!

AjaxA
04 de março de 2007 às 18:20

resolvido ^^....

Editado Março 4 por Ajax

Felipe MoraesF
04 de março de 2007 às 18:22

o.0

mtu massa seu tuto vei...ficou bem show...tudo explicadinho e talz...

so q eu acho melhor ir logo pelo config.lua nakela parte do spawn dos bixos...da menos trabalho...

XPauloX
04 de março de 2007 às 18:25

Parabéns, Jackson Zani sempre trazendo novos codes,

 

Mas eu acho que isso já tem na maioria dos ot.

2 meses depois...
BloodsB
29 de maio de 2007 às 13:53

Nossa mto bom seus codes sempre rulam xD

1 mês depois...
MustorzeM
06 de junho de 2007 às 19:41

muito BOM!

Gostei to fasendo uma verçao de Ot ja pençando no prox update :D!

1 ano depois...
ShenlongS
29 de julho de 2008 às 19:00

excelente code Jackson

parabéns pelo code

1 mês depois...
DeragonD
09 de agosto de 2008 às 12:56

esse codigo eh mto usado em servidores 7.6 até 7.8

8.1+ não tem oO