Developers Question (Desarrolladores Pregunta)

Hola Estimados desarrolladores, tengo una dudita /emoticons/default_biggrin.png me encontre con algo al parecer raro. presento mi problema.

estoy arreglando una quest donde tienes que montar un (vehiculo) para interactuar con 1 npc que con 1 dialogo(gossip) se activa para poder matarlo.

hasta ahi todo completo.

el problema radica en “testear la quest ingame”. por logica:

if (uiAction == GOSSIP_ACTION_INFO_DEF + 1)

{

creature->setFaction(14);

creature->AI()->AttackStart(player);

}

con esto seria suficiente para que “la creatura” al interactuar con ella reaccione a atacarnos a nosotros. pero resulte que “trata” de atacar y vuelve a su faction 35. mi pregunta es ahora el vehiculo hay que forzarlo a atacar con la guid y el espacio del pasajero?, ya que antes con esta orden funcionaba. probe con esto:

guidAttacker = attacker->GetGUID();

agregandolo en void entercombat y nada…

espero sus respuestas y sugerencias.

PD: Actualmente creo que el problema radica con el cambio de QAston de los npc_spell_click por lo que estoy leyendo y revisando el problema, les agradecería prestar sugerencias para esto ya que muchas quest funcionan de este modo cuando tomas un vehiculo y si ahora con la “orden” creature->AI()->AttackStart(player); no lleva creo que el problema seria algo general del sistema.

Saludos

Retriman.

Supongo que eso ira dentro de un bool OnGossipSelect, yo lo veo bien, no se que puede fallar con esos datos proporcionados, sobre lo de QAston…ni idea.

Por probar, prueba ingame la quest 10009, vas al npc_floon (18588), que creo que tiene script similar, a ver si funciona o que, por descartar cosas.

Un saludo.

Gildor, claro que funciona parece que no se entendio la pregunta. es que al estar montado en un vehiculo el gossip no respondera, ya que no encuentra al player. con esa orden. por eso mi pregunta es ahora hay que forzar a encontrar la guid y el slot del pasajero?..

ya que eh intentado con lo que mostre arriba:

[FONT=helvetica]guidAttacker = attacker->GetGUID();[/FONT]

[FONT=helvetica]y tampoco tengo respuestas de la creatura hacia el player en el vehiculo.[/FONT]

saludos.!

Ahora si creo que lo he entendido mejor, creía que decías un jugador en montura, y es en vehículo.

Tal vez cambiando:

[FONT=helvetica]creature->AI()->AttackStart(player);[/FONT]

[/FONT]

[FONT=helvetica]player por vehicle o passenger o algo así?[/FONT]

[FONT=helvetica]o tal vez:[/FONT]

[FONT=helvetica]creature->AI()->AttackStart(me->getVictim());[/FONT][FONT=helvetica][/code][/FONT]

que raro, tal vez sea del template del vehículo? que tiene algún template amistoso y no deja atacarte?

No se, es raro.

Es un problema general con los vehiculos, los NPCs evaden cuando tratan de atacar a un player en un vehiculo, creí que ya estaba arreglado, supongo que no :confused:

exacto lo mismo pensé yo por que dije como es posible que al hacer que la craeatura ataque al player no funcione. por lo que hize mi codigo lo mas simple posible y nada. (conste tampoco funciona tratando de buscar al player por la guid ni el pasajero). por lo que concuerdo contigo que el problema viene de muchas mas atras, y creo que es por lo de QAston. por ahora lo estoy leyendo para poder llegar con el problema.

Saludos y gracias, entonces queda solucionar el problema en general…

creo que esto podria ser…


if (arrived)

	{

		owner.ClearUnitState(UNIT_STATE_EVADE);

		owner.SetWalk(true);

		owner.LoadCreaturesAddon(true);

		owner.AI()->JustReachedHome();

	}

por que llamamos al owner evade con el check?. yo creo que tiene que ir antes del check if (arrived) asi;


void HomeMovementGenerator<Creature>::Finalize(Creature& owner)

{

	owner.ClearUnitState(UNIT_STATE_EVADE);

	if (arrived)

	{	  

		owner.SetWalk(true);

		owner.LoadCreaturesAddon(true);

		owner.AI()->JustReachedHome();

	}

}

espero sugerencias. y gracias /emoticons/default_wink.png!

este cambio es referente a esto :

https://github.com/TrinityCore/TrinityCore/commit/454444a

Agrego que lo que estoy comentando aca ya esta reportado aca:

https://github.com/TrinityCore/TrinityCore/issues/1340

por otro usuario, el problema de los vehiculos.

PD: sigo y sigo leyendo pero no encuentro dar con el problema. saludos =/

Bueno despues de leer y leer, encontre el error general. pero ademas de eso una solucion parche para los script es:

creature->AI()->AttackStart(player->GetVehicleCreatureBase());

con eso te ataca y 0 problemas saludos. y pueden cerrar esto ya que lo arregle gracias a todos /emoticons/default_wink.png!

eso esta bien /emoticons/default_biggrin.png