Foro especializado en Warcraft III y su editor
 
BuscarEntrar al ChatboxPortal del foroÍndiceSpellsRegistrarseConectarse
Eventos Actuales
No hay eventos actualmente
¡ Bienvenido Invitado !

Editar Perfil

Tus temas
Tus Mensajes ()

Enlaces rápidos








Comparte
 

 [JASS] Resolver un Bug von Doppelwalk

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Ugabunda
Aprendiz


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 14
Reputación Reputación : 0
Monedas de oro : 46
Monedas de Platino : 0 [JASS] Resolver un Bug von Doppelwalk Empty

Inventario :
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10

[JASS] Resolver un Bug von Doppelwalk Empty
Mensaje(#) Tema: [JASS] Resolver un Bug von Doppelwalk [JASS] Resolver un Bug von Doppelwalk Clock10Dom Mayo 24, 2020 8:40 am

Hola todos

No hablo muy bien español , perdonen mis errores por favor. Encontré un mapa de Mallku que tiene el spell "Dopplewalk" de Dota (no puedo mandar el link, pero esta en Epic War "Phantom Lancer Spells")

Hay un bug y no sé cómo resolverlo porque soy muy malo con JASS; por alguna razón, la habilidad Dopplewalk avece crea 2 ilusiones en vez de una . Si bajan el mapa, sugiero que bajen el cooldown y el mana para probarlo (solo necesitan utilisar la habilidad "Doppelwalk", no las otras). El bug normalmente ocurre cuando ya hay varias ilusiones al rededor del héroe y uno utiliza la habilidad “Doppelwalk”.

En el Object Editor le baje “Stats – Number of Charges” de 3 a 1 al ítem “DW_Copia”, pero aún se crean 2 ilusiones. Quizás el JASS-codigo le da el ítem dos veces al héroe, pero no sé.

Alguien puede ayudar en resolver el bug por favor?

Much gracias!
Volver arriba Ir abajo
Ugabunda
Aprendiz


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 14
Reputación Reputación : 0
Monedas de oro : 46
Monedas de Platino : 0 [JASS] Resolver un Bug von Doppelwalk Empty

Inventario :
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10

[JASS] Resolver un Bug von Doppelwalk Empty
Mensaje(#) Tema: Re: [JASS] Resolver un Bug von Doppelwalk [JASS] Resolver un Bug von Doppelwalk Clock10Dom Mayo 24, 2020 8:43 am

Hola todos, queria mandar el codigo de JASS, pero el systema no me deja:

"Los nuevos usuarios no son autorizados enviar vínculos externos o emailes durante 7 días. Por favor, contacta el admin del foro para tener más informaciones.". Busquen por favor el mapa en Epic War, debajo de "Doppelwalk".
Volver arriba Ir abajo
Marcos_M

Marcos_M


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 3474
Reputación Reputación : 644
Monedas de oro : 10850
Monedas de Platino : 0 [JASS] Resolver un Bug von Doppelwalk Empty

Inventario :
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10

[JASS] Resolver un Bug von Doppelwalk Empty
Mensaje(#) Tema: Re: [JASS] Resolver un Bug von Doppelwalk [JASS] Resolver un Bug von Doppelwalk Clock10Dom Mayo 24, 2020 4:38 pm

Lo que pasa no es que haya 2 ilusiones que se creen, sino que el detonador busca cualquier ilusión en mapa y la pone en el lugar del doppelwalk, y no siempre elige el doppelwalk correcto, y este doppelwallk queda parado al lado de tu héroe como si fuera una ilusión que se crea extra. Mi recomendación: Buscar otro hechizo o crear el propio. Ya que no es un tema de "desbuguear" el spell actual, sino cambiarlo totalmente para que sea funcional en caso de que haya más ilusiones en el mapa
Volver arriba Ir abajo
En línea
Ugabunda
Aprendiz


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 14
Reputación Reputación : 0
Monedas de oro : 46
Monedas de Platino : 0 [JASS] Resolver un Bug von Doppelwalk Empty

Inventario :
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10

[JASS] Resolver un Bug von Doppelwalk Empty
Mensaje(#) Tema: Re: [JASS] Resolver un Bug von Doppelwalk [JASS] Resolver un Bug von Doppelwalk Clock10Dom Mayo 24, 2020 6:15 pm

Muchas gracias Marcos. Busque mucho si hay otro “spell pack”, pero el de Mallku es el único que correctamente trata de imitar el spell de dota (= al iniciar el spell Dopplewalk, la nueva ilusión se mueve inmediatamente al héroe con el ángulo correcto). Todos los otros spell packs simplemente crean una ilusión al lado del héroe, lo que no es correcto.

No hay manera de fix el spell con meterle un “”set variable = last created unit” y decir que esa misma unidad se tiene que mover?

BTW: Ahora que lo dices, yo creo que el mismo problema también hay con “Spirit Lance”. Así que la misma solución se podría utilizar con Spirit Lance también.

Si no es mucho problema, podría preguntarte como se tiene que cambiar el código de los dos spells para que funcionen correctamente?
Volver arriba Ir abajo
Marcos_M

Marcos_M


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 3474
Reputación Reputación : 644
Monedas de oro : 10850
Monedas de Platino : 0 [JASS] Resolver un Bug von Doppelwalk Empty

Inventario :
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10

[JASS] Resolver un Bug von Doppelwalk Empty
Mensaje(#) Tema: Re: [JASS] Resolver un Bug von Doppelwalk [JASS] Resolver un Bug von Doppelwalk Clock10Dom Mayo 24, 2020 9:44 pm

[quote=@Ugabunda]No hay manera de fix el spell con meterle un “”set variable = last created unit” y decir que esa misma unidad se tiene que mover?[/quote]

Pues hay que encontrar una forma de detectar la ilusión creada, lo más simple sería usar un sistema de ilusiones como este:
https://www.hiveworkshop.com/threads/system-illusion.276304/
Volver arriba Ir abajo
En línea
Ugabunda
Aprendiz


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 14
Reputación Reputación : 0
Monedas de oro : 46
Monedas de Platino : 0 [JASS] Resolver un Bug von Doppelwalk Empty

Inventario :
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10

[JASS] Resolver un Bug von Doppelwalk Empty
Mensaje(#) Tema: Re: [JASS] Resolver un Bug von Doppelwalk [JASS] Resolver un Bug von Doppelwalk Clock10Lun Mayo 25, 2020 11:37 am

Gracias otra vez. Lamentablemente no se utilizar JASS (lo puedo leer y entender un poco, pero muy rudimental).

Tu sabes cómo cambiar el código o como integrar ese sistema de ilusiones correctamente? No hay problema si no, puedo preguntar en Hiveworkshop para ver si alguien ahí sabe / tiene tiempo. Gracias!
Volver arriba Ir abajo
Marcos_M

Marcos_M


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 3474
Reputación Reputación : 644
Monedas de oro : 10850
Monedas de Platino : 0 [JASS] Resolver un Bug von Doppelwalk Empty

Inventario :
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10

[JASS] Resolver un Bug von Doppelwalk Empty
Mensaje(#) Tema: Re: [JASS] Resolver un Bug von Doppelwalk [JASS] Resolver un Bug von Doppelwalk Clock10Lun Mayo 25, 2020 12:21 pm

https://www.epicwar.com/maps/305773/

Ya lo reHice, hice los siguientes cambios:

- Importado el sistema Illusion junto a sus requerimientos DamageEvent y DamageModify
- Aplicado el sistema Illusion para Spirit Lance y Doppelwalk, evitando que tome una ilusión diferente a la creada por la habilidad
- Spirit Lance usaba loops de 80 veces por segundo y lo reduje a 32(que es lo más recomendable), también se removió funciones inútiles de esta habilidad
- Doppelwalk usaba un temporizador sin razón, removido el temporizador y cambiado el evento de la habilidad
- Juxtapose usaba demasiados ifs y demasiadas líneas repetidas, optimizado usando variables y lógica
Volver arriba Ir abajo
En línea
Ugabunda
Aprendiz


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 14
Reputación Reputación : 0
Monedas de oro : 46
Monedas de Platino : 0 [JASS] Resolver un Bug von Doppelwalk Empty

Inventario :
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10

[JASS] Resolver un Bug von Doppelwalk Empty
Mensaje(#) Tema: Re: [JASS] Resolver un Bug von Doppelwalk [JASS] Resolver un Bug von Doppelwalk Clock10Lun Mayo 25, 2020 2:00 pm

Eres un héroe  Smile

El problema es que algunas funciones que le quitaste en realidad hacen que el skill sea como en DotA.

Doppelwalk:
Lo más interesante de la habilidad es que cuando uno crea la ilusión…
1) …ella se mueve inmediatamente a la posición y el ángulo del caster
2) …recibe un move comand para moverse en la dirección del héroe

--> Ese comportamiento resulta que sea muy difícil para el jugador enemigo de ver que es una ilusión. Esa función era correcta en la versión anterior.

Spirit lance:
La illusion debe crearse al lado del enemigo, no al lado del heroe
Volver arriba Ir abajo
Marcos_M

Marcos_M


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 3474
Reputación Reputación : 644
Monedas de oro : 10850
Monedas de Platino : 0 [JASS] Resolver un Bug von Doppelwalk Empty

Inventario :
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10

[JASS] Resolver un Bug von Doppelwalk Empty
Mensaje(#) Tema: Re: [JASS] Resolver un Bug von Doppelwalk [JASS] Resolver un Bug von Doppelwalk Clock10Lun Mayo 25, 2020 4:12 pm

Pero lo que yo mandé crea la ilusión al lado del enemigo con la spirit lance, y el doppelwalk crea una ilusión que se mueve en la dirección del héroe, y se crea en la posición y con el ángulo del héroe
Volver arriba Ir abajo
En línea
Ugabunda
Aprendiz


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 14
Reputación Reputación : 0
Monedas de oro : 46
Monedas de Platino : 0 [JASS] Resolver un Bug von Doppelwalk Empty

Inventario :
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10

[JASS] Resolver un Bug von Doppelwalk Empty
Mensaje(#) Tema: Re: [JASS] Resolver un Bug von Doppelwalk [JASS] Resolver un Bug von Doppelwalk Clock10Lun Mayo 25, 2020 4:50 pm

Eh, tenemos la misma versión? Mira, lo grabe en video:

(aun no puedo mandar links, pero busca pro favor "Phantom Lancer Spells 25.05" en youtube)


Edit:
Otra cosa, algunas ilusiones no tienen duración. A veces pasa con Doppelwalk, aunque veo que le pusiste:    
private constant real           ILLU_DUR    =   8.00
Pero creo que el problema es con Juxtapose, ahí no veo una línea para definir la duración.
Volver arriba Ir abajo
Marcos_M

Marcos_M


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 3474
Reputación Reputación : 644
Monedas de oro : 10850
Monedas de Platino : 0 [JASS] Resolver un Bug von Doppelwalk Empty

Inventario :
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10

[JASS] Resolver un Bug von Doppelwalk Empty
Mensaje(#) Tema: Re: [JASS] Resolver un Bug von Doppelwalk [JASS] Resolver un Bug von Doppelwalk Clock10Mar Mayo 26, 2020 4:35 pm

Vi el video, y eso es reforged siendo reforged .-.


Juxtapose no tiene la línea de aplicar duración con el sistema, porque para crear la ilusión utiliza la habilidad "Illusion.Juxtapose" y no otra cosa.

Respecto a esos bugs propios del reforged no sabría solucionarlos porque no tengo editor reforged. Quizás sea cuestión de implementar timers para después que se crea la ilusión y moverla recién. (También es muy posible que tu unidad Dummy sea diferente a la mía, fijate que en el mapa que yo te pase, modifiqué a la unidad dumy porque la del map original estaba mal hecha)
Volver arriba Ir abajo
En línea
Ugabunda
Aprendiz


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 14
Reputación Reputación : 0
Monedas de oro : 46
Monedas de Platino : 0 [JASS] Resolver un Bug von Doppelwalk Empty

Inventario :
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10

[JASS] Resolver un Bug von Doppelwalk Empty
Mensaje(#) Tema: Re: [JASS] Resolver un Bug von Doppelwalk [JASS] Resolver un Bug von Doppelwalk Clock10Mar Mayo 26, 2020 6:34 pm

Ah cónchale, no sabía que reforged cambia el comportamiento del código…

Pero de toda forma muchas gracias por la ayuda! Voy a ver si puedo creer la habilidad con GUI
Volver arriba Ir abajo
Marcos_M

Marcos_M


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 3474
Reputación Reputación : 644
Monedas de oro : 10850
Monedas de Platino : 0 [JASS] Resolver un Bug von Doppelwalk Empty

Inventario :
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10

[JASS] Resolver un Bug von Doppelwalk Empty
Mensaje(#) Tema: Re: [JASS] Resolver un Bug von Doppelwalk [JASS] Resolver un Bug von Doppelwalk Clock10Mar Mayo 26, 2020 7:01 pm

@Ugabunda escribió:
Ah cónchale, no sabía que reforged cambia el comportamiento del código…

Pero de toda forma muchas gracias por la ayuda! Voy a ver si puedo creer la habilidad con GUI

Intenta copiar el dummy de mi mapa al tuyo, fijate que en la parte de "Gráfico" o "Art" hay 3 datos cambiados
Volver arriba Ir abajo
En línea
Ugabunda
Aprendiz


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 14
Reputación Reputación : 0
Monedas de oro : 46
Monedas de Platino : 0 [JASS] Resolver un Bug von Doppelwalk Empty

Inventario :
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10

[JASS] Resolver un Bug von Doppelwalk Empty
Mensaje(#) Tema: Re: [JASS] Resolver un Bug von Doppelwalk [JASS] Resolver un Bug von Doppelwalk Clock10Miér Mayo 27, 2020 1:21 pm

Tú lo dices por el video? En el video de YouTube jugué solamente tu mapa del link que mandaste antes (y no cambié nada a los objetos o triggers).

Veo que en tu mapa le cambiaste eso a la unidad dummy:
- Blend Time (seconds) 1.5 --> 0
- Cast Backswing 0.51 --> 0
- Cast Point > 0.50 --> 0

Pero con ese dumy pasa exactamente lo que mandé en el video (??).
Volver arriba Ir abajo
Marcos_M

Marcos_M


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 3474
Reputación Reputación : 644
Monedas de oro : 10850
Monedas de Platino : 0 [JASS] Resolver un Bug von Doppelwalk Empty

Inventario :
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10

[JASS] Resolver un Bug von Doppelwalk Empty
Mensaje(#) Tema: Re: [JASS] Resolver un Bug von Doppelwalk [JASS] Resolver un Bug von Doppelwalk Clock10Jue Mayo 28, 2020 11:21 am

Bien. Eso confirma que Warcraft 1.27b y Warcraft Reforged tienen diferencias con su funcionamiento en triggers y timings instantáneos, tendrías que buscar un sistema Illusion para que ande en Reforged, o quizás crear un sistema que diga "Luego de un timer 0.01 mover unidad u a la posición x e y"

De todas maneras voy a estar preguntando por qué sucede esto

Edit: Aparentemente el evento del sistema dejó de funcionar en versiones actuales porque "xd", aquí hay una posible solución.

[jass]library Illusion /*

Illusion v1.33
by Flux

Allows easy creation of Illusion with any damage factor.

*/ requires DamageEvent, DamageModify/*
http://www.hiveworkshop.com/threads/damagepackage.287101/
Required to manipulate damage given and damage taken by illusions.


*/ optional Table /*
If not found, the system will create a hashtable. You cannot create more than 256 hashtable
per map.


********************************************************************************
*************************************** API ************************************
********************************************************************************

Illusion.create(player, unitSource, x, y)
- Create an Illusion based on , owned by , positioned at (, )

this.duration =
- Add a timer to an illusion.
- Cannot be overwritten once set.

Illusion.get(unit)
- Return the 'Illusion instance' based on parameter.

this.unit
- Refers to the actual illusion unit

this.damageGiven
- Determines damage dealt factor.

this.damageTaken
- Determines damage received factor.


CREDITS:
Bribe - Table
Flux - DamageEvent and DamageModify

*/
//===================================================================
//========================= CONFIGURATION ===========================
//===================================================================
globals
//Rawcode of Illusion Ability based on "Item Illusions"
private constant integer ILLUSION_SPELL = 'A00C'

private constant integer DUMMY_ID = 'dumy'

private constant integer REFRESH_COUNT = 30
//Dummy unit owner
private constant player DUMMY_OWNER = Player(PLAYER_NEUTRAL_PASSIVE)
endglobals
//===================================================================
//======================= END CONFIGURATION =========================
//===================================================================

native UnitAlive takes unit u returns boolean

struct Illusion

readonly unit unit
public real damageTaken
public real damageGiven

static if LIBRARY_Table then
private static Table tb
else
private static hashtable hash = InitHashtable()
endif

private static trigger deathTrg = CreateTrigger()
private static group g = CreateGroup()
private static timer t = CreateTimer()
private static integer count = 0
private static unit dummy
private static unit illu

static method get takes unit u returns thistype
static if LIBRARY_Table then
return thistype.tb[GetHandleId(u)]
else
return LoadInteger(thistype.hash, GetHandleId(u), 0)
endif
endmethod

private static method reAdd takes nothing returns nothing
call TriggerRegisterUnitEvent(thistype.deathTrg, GetEnumUnit(), EVENT_UNIT_DEATH)
endmethod

private static method onDeath takes nothing returns boolean
call thistype(thistype.get(GetTriggerUnit())).destroy()
return false
endmethod

method destroy takes nothing returns nothing
if UnitAlive(this.unit) then
call KillUnit(this.unit)
endif
static if LIBRARY_Table then
call thistype.tb.remove(GetHandleId(this.unit))
else
call RemoveSavedInteger(thistype.hash, GetHandleId(this.unit), 0)
endif
call GroupRemoveUnit(thistype.g, this.unit)
//Death trigger refresh
set thistype.count = thistype.count + 1
if thistype.count >= REFRESH_COUNT then
call DestroyTrigger(thistype.deathTrg)
set thistype.deathTrg = CreateTrigger()
call TriggerAddCondition(thistype.deathTrg, Condition(function thistype.onDeath))
call ForGroup(thistype.g, function thistype.reAdd)
set thistype.count = 0
endif
set this.unit = null
call this.deallocate()
endmethod


private static method onDamage takes nothing returns nothing
//If source is illusion
if IsUnitInGroup(Damage.source, thistype.g) then
set Damage.amount = Damage.amount*thistype.get(Damage.source).damageGiven
endif
//If target is illusion
if IsUnitInGroup(Damage.target, thistype.g) then
set Damage.amount = Damage.amount*thistype.get(Damage.target).damageTaken
endif
endmethod

private static method entered takes nothing returns boolean
if GetSummoningUnit() == thistype.dummy then
set thistype.illu = GetSummonedUnit()
endif
return false
endmethod

method operator duration= takes real time returns nothing
call UnitApplyTimedLife(this.unit, 'BTLF', time)
endmethod

static method create takes player owner, unit source, real x, real y returns thistype
local thistype this
set thistype.illu = null
//Create the Illusion Unit
if source != null and UnitAlive(source) then
call SetUnitX(thistype.dummy, GetUnitX(source))
call SetUnitY(thistype.dummy, GetUnitY(source))
call SetUnitOwner(thistype.dummy, GetOwningPlayer(source), false)
if IssueTargetOrderById(thistype.dummy, 852274, source) then
if thistype.illu != null then
call SetUnitOwner(thistype.illu, owner, true)
if IsUnitType(source, UNIT_TYPE_STRUCTURE) then
call SetUnitPosition(thistype.illu, x, y)
else
call SetUnitX(thistype.illu, x)
call SetUnitY(thistype.illu, y)
endif
else
debug call DisplayTimedTextToPlayer(GetLocalPlayer(), 0, 0, 3600, "[Illusion] No illusion created")
call SetUnitOwner(thistype.dummy, DUMMY_OWNER, false)
return 0
endif
else
debug call DisplayTimedTextToPlayer(GetLocalPlayer(), 0, 0, 3600, "[Illusion] Issued illusion create order failed")
call SetUnitOwner(thistype.dummy, DUMMY_OWNER, false)
return 0
endif
call SetUnitOwner(thistype.dummy, DUMMY_OWNER, false)
else
debug call DisplayTimedTextToPlayer(GetLocalPlayer(), 0, 0, 3600, "[Illusion] Source unit dead or non-existing")
return 0
endif
//Initialize struct
set this = thistype.allocate()
set this.unit = thistype.illu
set this.damageTaken = 1.0
set this.damageGiven = 1.0
call SetUnitAnimation(thistype.illu, "stand")
call GroupAddUnit(thistype.g, this.unit)
call TriggerRegisterUnitEvent(thistype.deathTrg, this.unit, EVENT_UNIT_DEATH)
static if LIBRARY_Table then
set thistype.tb[GetHandleId(this.unit)] = this
else
call SaveInteger(thistype.hash, GetHandleId(this.unit), 0, this)
endif
set thistype.illu = null
return this
endmethod

private static method onInit takes nothing returns nothing
local trigger t = CreateTrigger()
set thistype.dummy = CreateUnit(DUMMY_OWNER, DUMMY_ID, 0, 0, 0)
call TriggerRegisterAnyUnitEventBJ(t,EVENT_PLAYER_UNIT_SUMMON)
call TriggerAddCondition(t, Condition(function thistype.entered))
call TriggerAddCondition(thistype.deathTrg, Condition(function thistype.onDeath))
call UnitAddAbility(thistype.dummy, ILLUSION_SPELL)
static if LIBRARY_Table then
set thistype.tb = Table.create()
endif
call Damage.registerModifier(function thistype.onDamage)
endmethod

endstruct

endlibrary[/jass]

Copia este código y reemplaza todo el texto que hay en el detonador "Illusion" con este. Si funciona, funciona, sino me rindo con este bug que ni siquiera puedo testear en mi pc
Volver arriba Ir abajo
En línea
Ugabunda
Aprendiz


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 14
Reputación Reputación : 0
Monedas de oro : 46
Monedas de Platino : 0 [JASS] Resolver un Bug von Doppelwalk Empty

Inventario :
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10

[JASS] Resolver un Bug von Doppelwalk Empty
Mensaje(#) Tema: Re: [JASS] Resolver un Bug von Doppelwalk [JASS] Resolver un Bug von Doppelwalk Clock10Jue Mayo 28, 2020 1:10 pm

¡FUNCCIONA! Wow, muchísimas gracias! Todos los “bugs” desaparecieron, incluido el que hizo que una ilusión se quedara permanente. Very Happy

Solo para entender: ¿Porque es malo que Blend Time / Cast Backswing / Cast Point sean >0?


Volver arriba Ir abajo
Marcos_M

Marcos_M


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 3474
Reputación Reputación : 644
Monedas de oro : 10850
Monedas de Platino : 0 [JASS] Resolver un Bug von Doppelwalk Empty

Inventario :
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10

[JASS] Resolver un Bug von Doppelwalk Empty
Mensaje(#) Tema: Re: [JASS] Resolver un Bug von Doppelwalk [JASS] Resolver un Bug von Doppelwalk Clock10Jue Mayo 28, 2020 3:52 pm

@Ugabunda escribió:
¡FUNCCIONA! Wow, muchísimas gracias! Todos los “bugs” desaparecieron, incluido el que hizo que una ilusión se quedara permanente. Very Happy

Solo para entender: ¿Porque es malo que Blend Time / Cast Backswing / Cast Point sean >0?



Blend Time creo que no importa

Pero Cast Point es el tiempo que tarda tu unidad en activar un hechizo que comienza a lanzar y Cast Backswing es lo que demora en la animación de casteo antes de que la unidad pueda moverse de nuevo. Poniendo estas en 0 te aseguras que todo sea instantáneo y no haya ningún delay
Volver arriba Ir abajo
En línea
Ugabunda
Aprendiz


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 14
Reputación Reputación : 0
Monedas de oro : 46
Monedas de Platino : 0 [JASS] Resolver un Bug von Doppelwalk Empty

Inventario :
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10
[JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10 [JASS] Resolver un Bug von Doppelwalk Empysl10

[JASS] Resolver un Bug von Doppelwalk Empty
Mensaje(#) Tema: Re: [JASS] Resolver un Bug von Doppelwalk [JASS] Resolver un Bug von Doppelwalk Clock10Vie Mayo 29, 2020 6:30 am

@Marcos_M escribió:
@Ugabunda escribió:
¡FUNCCIONA! Wow, muchísimas gracias! Todos los “bugs” desaparecieron, incluido el que hizo que una ilusión se quedara permanente. Very Happy

Solo para entender: ¿Porque es malo que Blend Time / Cast Backswing / Cast Point sean >0?



Blend Time creo que no importa

Pero Cast Point es el tiempo que tarda tu unidad en activar un hechizo que comienza a lanzar y Cast Backswing es lo que demora en la animación de casteo antes de que la unidad pueda moverse de nuevo. Poniendo estas en 0 te aseguras que todo sea instantáneo y no haya ningún delay

Super - haré eso en el futuro.
Volver arriba Ir abajo
Contenido patrocinado




[JASS] Resolver un Bug von Doppelwalk Empty
Mensaje(#) Tema: Re: [JASS] Resolver un Bug von Doppelwalk [JASS] Resolver un Bug von Doppelwalk Clock10

Volver arriba Ir abajo
 

[JASS] Resolver un Bug von Doppelwalk

Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.

 Temas similares

-
» ¿Es cierto q el q es chismoso pierde el tiempo en problemas de los demás en vez de resolver los suyos ?

Permisos de este foro:No puedes responder a temas en este foro.
Warcraft III - WorldEditor :: Zona de Aprendizaje(Dudas) :: Jass (Detonadores)-