Posté le: 25/05/12 22:09 Sujet du message: [vJass] Special Effect Utils ( Beta )
Nom de la fonction : Special Effect Utils Créateur : wareditor
Fonctions requises : TimerUtils
Secret:
Jass:
//===========================================================================
// SPECIAL EFFECT`UTILS v 0.2 BETA By wareditor - 28 / 05 / 12
//===========================================================================
//
// AIM :
//
// * Help you in using special effect functions
// * Providing some cool effect
//
// API :
//
// FUNCTIONS :
// * call CreateSpecialEffect( modelName, x, y)
// - Instantly destroy the effect to remove all the leak, however the effect is played.
// But certains effect won't appear, because they need need time, use the Timed version then.
//
// * call CreateSpecialEffectTimed( modelName, x, y, time)
// - Will destroy the effect after the time
//
// * call CreateSpecialEffectOnTargetTimed( modelName, targetWidget, attachPointName, time)
// - Wille destroy the effect after the time
//
// * call ApplyUltraBlood(x,y)
// - Create a large spray of blood
//
// METHODS :
// * call TurningCreatingEffect.create( modelName, targetWidget, radius, speedAngle, defaultAngle, timeout, time)
// - Create a Special Effect ( like with CreateSpecialEffect ) every timeout around the widget during time
//
//
// COMMENTARY :
//
// * Please give credits
//
// REQUIRES :
//
// * TimerUtils(Ex) - Vexorian, Bribe & Magtheridon96 -
// ( ... )
//
//
//===========================================================================
// Enjoy
//===========================================================================
private widget targetWidget
private string modelName
private real radius
private real actualAngle
private real speedAngle
private real time
private real timeout
local timer t = GetExpiredTimer()
local thistype this = GetTimerData(t)
local real x
local real y
set this.actualAngle = this.actualAngle + this.speedAngle
set x = GetWidgetX(targetWidget) + this.radius*Cos(this.actualAngle*bj_DEGTORAD)
set y = GetWidgetY(targetWidget) + this.radius*Sin(this.actualAngle*bj_DEGTORAD)
call DestroyEffect(AddSpecialEffect(this.modelName, x, y))
set this.time = this.time - this.timeout
if this.time <= 0 then
call ReleaseTimer(t)
call this.destroy()
endif
endmethod
static method create takes string modelName, widget targetWidget, real radius, real speedAngle, real defaultAngle, real timeout, real time returns thistype
local thistype this = thistype.allocate()
local real x
local real y
set this.modelName = modelName
set this.targetWidget = targetWidget
set this.radius = radius
set this.speedAngle = speedAngle
set this.actualAngle = defaultAngle
set this.time = time
set this.timeout = timeout
set x = GetWidgetX(targetWidget) + radius*Cos(defaultAngle*bj_DEGTORAD)
set y = GetWidgetY(targetWidget) + radius*Sin(defaultAngle*bj_DEGTORAD)
call DestroyEffect(AddSpecialEffect(modelName, x, y))
call TimerStart(NewTimerEx(this), timeout, true, function thistype.applyTurn )
return this
endmethod
endstruct
//===========================================================================
// STRUCT - TE
//===========================================================================
function CreateSpecialEffect takes string modelName, real x, real y returns nothing
call DestroyEffect40;AddSpecialEffect40;modelName, x, y))
endfunction
function CreateSpecialEffectTimed takes string modelName, real x, real y, real time returns nothing
call TimedEffect.create(AddSpecialEffect(modelName, x, y), time)
endfunction
function CreateSpecialEffectOnTargetTimed takes string modelName, widget targetWidget, string attachPointName, real time returns nothing
call TimedEffect.create(AddSpecialEffectTarget(modelName, targetWidget, attachPointName), time)
endfunction
//===========================================================================
// VARIOUS CUSTOM FUNCTIONS
//===========================================================================
function ApplyUltraBlood takes real x, real y returns nothing
endlibrary
//===========================================================================
// CONTACT ME AT : Wareditor.TFL[AT]gmail.com
//===========================================================================
Utilisation : lisez l'API
Copyright : Comme vous voulez
Remarques : Savez vous comment on sait si un effect s'affiche si on le détruit directement ? _________________
Dernière édition par Wareditor le 28/05/12 17:27; édité 6 fois
Inscrit le: 14 Oct 2009 Messages: 719 Sujets: 40 Spécialité en worldedit: Les bugs Médailles: 1 (En savoir plus...)
Posté le: 25/05/12 22:14 Sujet du message:
Ça me fait penser à la librairie que j'avais posté il y a deux mois .
Mais bon, c'est pas plus mal, parce que celle que j'avais faîte n'était pas super bien codée. Faudra que je m'y remette.
Sinon, bah c'est très utile .
Edit :
Wareditor a écrit:
Savez vous comment on sait si un effect s'affiche si on le détruit directement ?
Bah faut qu'il ait une animation de mort non? _________________
J'ai justement vue ta lib' . Elle se base plus sur les effets sur les unités. La mienne est juste une utils qui permet surtout de créé des effets sans leak.
En fait tu m'a répondu mais sans dire la bonne réponse. Je crois que si l'animation de mort est présente l'effet ne sera pas afficher des qu'on le detruit. Je me trompe ? _________________
Inscrit le: 14 Oct 2009 Messages: 719 Sujets: 40 Spécialité en worldedit: Les bugs Médailles: 1 (En savoir plus...)
Posté le: 25/05/12 22:28 Sujet du message:
Oui, en effet, après un petit test sur wc3 viewer, c'est pas aussi simple que ça... Je m'y connait pas assez dans ce genre de truc, désolé :/. _________________
Inscrit le: 23 Aoû 2007 Messages: 7143 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
Posté le: 26/05/12 14:09 Sujet du message:
Pour ma défense je me suis sabré tout seul par mp
Je lui ai simplement expliqué qu'utiliser une ressource envoyé au cimetière était une très mauvaise idée.
Puis comme tu le sais et l'explique si bien la seule raison de son enterrement est la popularité de TimerUtils, ni plus, ni moins. _________________
Inscrit le: 11 Fév 2011 Messages: 2151 Sujets: 114 Spécialité en worldedit: Chasser le Dragon, puis l'exterminer proprement avec une petite cuillère et une poêle.
Posté le: 26/05/12 14:09 Sujet du message:
De toute façon le Made in France est toujours surpassé par le Made in OtherCountry. _________________
Inscrit le: 14 Avr 2011 Messages: 1846 Sujets: 119 Spécialité en worldedit: fonctions paramétriques, équation de mouvement.
Posté le: 26/05/12 14:43 Sujet du message:
Tirlititi a écrit:
Mouahaha, le savoir-faire artisanal de Troll-Brain vaincu par la multinationale Vexorian.
xD j'ai rit en lisant ça !!
qui a publié sa fonction Timer en premier ? vexorian ou tb ?
y-a-t-il une différence entre les deux ?
(oui chuis hs mais bon j'ai rien à dire sur sa fonction, j'ai pas le niveau de critiquer) _________________
22:27:43<Seiraw> Bah y a deux genre de personnes
22:27:57<Seiraw> les soumis et les soumises
Inscrit le: 23 Aoû 2007 Messages: 7143 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
Posté le: 26/05/12 17:51 Sujet du message:
Y'a rien de révolutionnaire, c'est juste que Vexorian nous a quitté et que toute façon il n'a jamais été prompt à éditer ses ressources vJass.
Et puis bon globalement c'est simplement une stack de timer ...
TimerUtils a été écrit bien avant, et en gros c'est comme la version blue mais en "mieux".
Ma library ne permet par contre pas de changer de versions, il n'y en a qu'une seule.
Flemme de développer plus.
Fin du HS en ce qui me concerne. _________________
Mise a jour : * Optimisation pour les Timed Effect ( j'avais vraiment fait un truc bizarre )
* Ajout d'une method : TurningCreatingEffect. Cette method permet de crée un effet tout les x temps autour d'un widget pédant y temps. Cette effet de ne tourne pas, il se crée plusieurs fois autour du widget, la position de création, elle, tourne. _________________
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum