[c++] passive system

Kilowog

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/12/15Posts: 33Gênero: Masculino

Boa tarde, 

 

O passive system nada mais é do sistema que ficou famoso no mundo do "poketibia", onde o monstro não ataca a menos que o ataquem. Este código foi criado para tfs 1.x, porém adaptei para o tfs 0.4, segue:

 

luascript.cpp

 

procure por:

setFieldBool(L, "hostile", mType->isHostile);

 

e abaixo adicione: 

setFieldBool(L, "passive", mType->isPassive);

 

monster.h

 

procure por:

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

e adicione:

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

 

monster.cpp

 

procure por:

bool MonsterselectTarget(Creature* creature)

e embaixo de: 

	if(!isTarget(creature))		return false;

adicione: 

    if (isPassive() && !hasBeenAttacked(creature->getID())) {		return false;	}		

 

monsters.h

 

troque isso: 

bool isSummonable, isIllusionable, isConvinceable, isAttackable, isHostile, isLureable,			isWalkable, canPushItems, canPushCreatures, pushable, hideName, hideHealth;

por isto: 

bool isSummonable, isIllusionable, isConvinceable, isAttackable, isHostile, isPassive, isLureable,			isWalkable, canPushItems, canPushCreatures, pushable, hideName, hideHealth;

 

monsters.cpp

 

troque isso: 

	canPushItems = canPushCreatures = isSummonable = isIllusionable = isConvinceable = isLureable = isWalkable = hideName = hideHealth = false;

por isto: 

	canPushItems = canPushCreatures = isSummonable = isIllusionable = isConvinceable = isLureable = isWalkable = hideName = hideHealth = isPassive = false;

 

procure por:

					if(readXMLString(tmpNode, "hostile", strValue))						mType->isHostile = booleanString(strValue);

e adicione: 

					if(readXMLString(tmpNode, "passive", strValue))						mType->isPassive = booleanString(strValue);

 

Pronto, agora é só compilar a source e ser feliz.

Ah, antes que eu esqueça. No xml do monstro desejado tem que adicionar: 

<flag passive="1" />

 

Por último, porém não menos importante. Segue o link do código fonte em tfs 1.x: https://gist.github.com/ranisalt/a238128104b7af3a17f1

Que é do também brasileiro Ranieri Althoff , então créditos para ele.

kttallan

Lord Sorte
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 06/03/13Posts: 1574Gênero: MasculinoChar no Tibia: Lord Sorte

Parabéns obrigado pela contribuição. 

Rep+

                                                                Scripter em Treinamento

 

Codigos

 

Simples Pet Sistema < New

 

Assim que possivel mais codigos, com criatividade.

Deadpool

!!!
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 25/10/11Posts: 2175Gênero: MasculinoChar no Tibia: Sociopata

Muito bom, como funciona? (existem alguns no forum, porém, não funciona como todos gostariam, haha).

Muito Bom ^^

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

 

 

 

 

DICA

Utilize botão @UP, no início de seu tópico, para atualizar o destaque de seu tópico em "Tópicos Recentes" na index, fará com que mais pessoas o vejam.

Administrador

xTibia 2017
avatar
Administrador
Administrador

INFOS

Grupo: AdministradorRegistrado: 09/07/05Posts: 5780Gênero: Outro

Uma adaptação necessária, visto que há muitos servidores poketibia 0.4. Reputado.

DICA

Utilize botão @UP, no início de seu tópico, para atualizar o destaque de seu tópico em "Tópicos Recentes" na index, fará com que mais pessoas o vejam.

 

 

boxxer321

Yamborghini
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 03/11/11Posts: 714Gênero: MasculinoChar no Tibia: esqueci 20+

funciona em 0.3.6?

Kilowog

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/12/15Posts: 33Gênero: Masculino
21 minutos atrás, Deadpool disse:

Muito bom, como funciona? (existem alguns no forum, porém, não funciona como todos gostariam, haha).

Muito Bom ^^

 

O monstro com a tag passive=0 vai ficar andando sem atacar ninguem, só vai atacar quando o player ou um sumon do player (pokemon) bater nele. Caso este player que atacou fuja ele não irá atacar os outros players, apenas o player que o atacou.

Kilowog

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/12/15Posts: 33Gênero: Masculino
35 minutos atrás, boxxer321 disse:

funciona em 0.3.6?

Tem que adaptar amigo, mas acho que pouca coisa. Visto que é bastante parecido com 0.4, talvez funcione. Teste e poste o resultado.

Josegvb

avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 23/09/12Posts: 1041Gênero: Masculino

nao existem varias funçoes nas sources do 3.0.6 :/ nemhuma dessas estao la 

if(readXMLString(tmpNode, "hostile", strValue))						mType->isHostile = booleanString(strValue);
	canPushItems = canPushCreatures = isSummonable = isIllusionable = isConvinceable = isLureable = isWalkable = hideName = hideHealth = false;
bool isSummonable, isIllusionable, isConvinceable, isAttackable, isHostile, isLureable,			isWalkable, canPushItems, canPushCreatures, pushable, hideName, hideHealth;

 

StyloMaldoso

a good son makes the house...;p
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 25/01/12Posts: 1593

Seria bom adapta pra 0.3.6, a maioria de servidores poketibia é nessa versão, aí todo mundo sairia de vez do pda porque era uns dos sistemas mais "raro" do pda, abraços! 

Project Pokémon Mysterion OpenSoures 2016.

Em breve, mais informações!

 

23vfcht.png

Kilowog

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/12/15Posts: 33Gênero: Masculino
4 minutos atrás, Josegvb disse:

nao existem varias funçoes nas sources do 3.0.6 :/ nemhuma dessas estao la 

if(readXMLString(tmpNode, "hostile", strValue))						mType->isHostile = booleanString(strValue);
	canPushItems = canPushCreatures = isSummonable = isIllusionable = isConvinceable = isLureable = isWalkable = hideName = hideHealth = false;
bool isSummonable, isIllusionable, isConvinceable, isAttackable, isHostile, isLureable,			isWalkable, canPushItems, canPushCreatures, pushable, hideName, hideHealth;

 

Tem facil a base para download?

Josegvb

avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 23/09/12Posts: 1041Gênero: Masculino
32 minutes ago, Kilowog said:

Tem facil a base para download?

 

sim amigo, se vc nao ouviu ainda ta bem atrassado haha nessa semana veio 1 novo servidor no xtibia q ta movimentando muito a comunidade

é esse la 

 

 

se tiver como adatar vai ajudar mts ^^ somos mts quems estamos querendo ajudar nesse novo servidor 

Kilowog

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/12/15Posts: 33Gênero: Masculino

Ah, baixei ele, mas não cheguei a ver a source. É que tou em um projeto e é 0.4 =): Quando Chegar em casa eu olho direitinho e posto se conseguir.

Josegvb

avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 23/09/12Posts: 1041Gênero: Masculino
37 minutes ago, Kilowog said:

Ah, baixei ele, mas não cheguei a ver a source. É que tou em um projeto e é 0.4 =): Quando Chegar em casa eu olho direitinho e posto se conseguir.

 

obrigado estarei acompanhando os topicos qlqr coisa avisa 

Kilowog

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/12/15Posts: 33Gênero: Masculino

Eu não testei, mas olhei o fonte do DarkXPoke e tudo que postei aqui, tem lá. As vezes o buscador do devcpp que é meio bugado, em vez de procurar pelo texto todo, busquem por parte dele. Uma dica procurem pela palavra "hostile".

Josegvb

avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 23/09/12Posts: 1041Gênero: Masculino
34 minutes ago, Kilowog said:

Eu não testei, mas olhei o fonte do DarkXPoke e tudo que postei aqui, tem lá. As vezes o buscador do devcpp que é meio bugado, em vez de procurar pelo texto todo, busquem por parte dele. Uma dica, sempre buscam a palavra "hostile".

 

 

la tem

		bool isHostile() const {             std::string value;             if(getStorage(504, value) && value == "-1")				 value = "0";                         return value == "0" ? false : true;        }

retirei e coloquei 

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

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

 

mas o problema começa aqui

 

2 hours ago, Kilowog said:

monsters.h

 

troque isso: 

bool isSummonable, isIllusionable, isConvinceable, isAttackable, isHostile, isLureable,			isWalkable, canPushItems, canPushCreatures, pushable, hideName, hideHealth;

por isto: 

bool isSummonable, isIllusionable, isConvinceable, isAttackable, isHostile, isPassive, isLureable,			isWalkable, canPushItems, canPushCreatures, pushable, hideName, hideHealth;

 

monsters.cpp

 

troque isso: 

	canPushItems = canPushCreatures = isSummonable = isIllusionable = isConvinceable = isLureable = isWalkable = hideName = hideHealth = false;

por isto: 

	canPushItems = canPushCreatures = isSummonable = isIllusionable = isConvinceable = isLureable = isWalkable = hideName = hideHealth = isPassive = false;

 

procure por:

					if(readXMLString(tmpNode, "hostile", strValue))						mType->isHostile = booleanString(strValue);

e adicione: 

					if(readXMLString(tmpNode, "passive", strValue))						mType->isPassive = booleanString(strValue);

 

nao existe nemhum desses la pelo menos na versao 2 da source q é a que estou usando

tem 1 tag la q diz

    if((isHostile() || isSummon()) && setAttackedCreature(creature) && !isSummon())

mas nao veio parescido algum com o bool isSummonable, isIllusionable, isConvinceable, isAttackable, isHostile, isLureable,

            isWalkable, canPushItems, canPushCreatures, pushable, hideName, hideHealth;

 

=/