Héros
- Adepte astral
- Garde damné
- Pack : Heroes of Lost Ages
Fonctions
- DOT
- TimedBombUnit
Systèmes
- Anti-cheat
- Repop des unités
- Simulation de régénération
Liens
- Forum de Worldedit
- Arena 100
- WC3Campaigns
- Hive Workshop
Utilitaires
- Zamzar
- Imageshack
- Cooltext
- Badongo
- Smiliz
- VGMusic
Le soutien par excellence =) J'espère qu'il ne sera pas trop essentiel pour un RPG.
Compétences
Galinamorphose : Transforme l'ennemi en poulet ! l'effet est annulé si la cible subit trop de dégâts.
Explosion des arcanes : Créé une explosion magique qui inflige des dégâts aux ennemis dans la zone et dissipe tous les effets qui y sont présents.
Marcheur arcanique : Invoque un marcheur arcanique capable de transférer la mana d'une unité à une autre (le script me fait encore mal à la tête au moment où j'écris ces lignes..)
Bouclier de mana [Supérieur] : Confère au marcheur arcanique la possibilité de déployer un bouclier de mana sur la cible alliée du Lien arcanique. Les dégâts subis par celle-ci seront alors encaissés par la mana du marcheur.
Aura d'illumination [Ultime] : La même que dans le jeu de base, mais à 250% =p
Publié par Bantas à 14:30:20 dans Héros | Commentaires (0) | Permaliens
Voici un petit paquet de fonctions pour utiliser facilement la technique des dummycasters :
globals
constant integer DummyCaster = 'h000'
constant integer TimedLifeBuff = 'B003'
endglobals
function CastSpellTarget takes integer spell, integer level, string order, widget target, player caster returns nothing
local unit u = CreateUnit(caster,DummyCaster,GetWidgetX(target),GetWidgetY(target),0)
call UnitAddAbility(u,spell)
call SetUnitAbilityLevel(u,spell,level)
call UnitApplyTimedLife(u,TimedLifeBuff,3)
call IssueTargetOrder(u,order,target)
endfunction
function CastSpellTargetFrom takes integer spell, integer level, string order, widget target, player caster, real fromx, real fromy returns nothing
local unit u = CreateUnit(caster,DummyCaster,fromx,fromy,0)
call UnitAddAbility(u,spell)
call SetUnitAbilityLevel(u,spell,level)
call UnitApplyTimedLife(u,TimedLifeBuff,3)
call IssueTargetOrder(u,order,target)
endfunction
function CastSpellPoint takes integer spell, integer level, string order, real targetx, real targety, player caster returns nothing
local unit u = CreateUnit(caster,DummyCaster,targetx,targety,0)
call UnitAddAbility(u,spell)
call SetUnitAbilityLevel(u,spell,level)
call UnitApplyTimedLife(u,TimedLifeBuff,3)
call IssuePointOrder(u,order,targetx,targety)
endfunction
function CastSpellPointFrom takes integer spell, integer level, string order, real targetx, real targety, player caster, real fromx, real fromy returns nothing
local unit u = CreateUnit(caster,DummyCaster,fromx,fromy,0)
call UnitAddAbility(u,spell)
call SetUnitAbilityLevel(u,spell,level)
call UnitApplyTimedLife(u,TimedLifeBuff,3)
call IssuePointOrder(u,order,targetx,targety)
endfunction
function CastImmediateSpell takes integer spell, integer level, string order, real targetx, real targety, player caster returns nothing
local unit u = CreateUnit(caster,DummyCaster,targetx,targety,0)
call UnitAddAbility(u,spell)
call SetUnitAbilityLevel(u,spell,level)
call UnitApplyTimedLife(u,TimedLifeBuff,3)
call IssueImmediateOrder(u,order)
endfunction
Vous avez là de faire les 3 types de ciblages, et même en le faisant depuis un certain point ! (les fonctions qui finissent par from)
Evidemment il est fortement conseillé de changer les globales ^^
EDIT : Avant qu'on me pose la question, ces fonctions font tout ce qu'il faut (sauf le café)
En fait vous avez juste à appeler la fonction, et là vous aurez l'impression de voir un sort se lancer là où vous le désirez (sauf que ça fait une ligne au lieu de 4)
Publié par Bantas à 10:43:56 dans Warcraft III | Commentaires (0) | Permaliens
Voici une jolie fonction pour relier 2 unités par des éclairs (ça rend assez bien IG ;-) ). Pour vous en servir, vous aurez besoin d'un éditeur compatible vJass (vous avez l'habitude non ?), d'une variable MoveInterval (un réel d'une valeur de 0.03), qui sera le temps entre chaque repositionnement de l'éclair, et des fonctions qui suivent (dans l'ordre) :
function H2I takes handle h returns integer
return h
return 0
endfunction
function H2S takes handle h returns string
return I2S(H2I(h))
return null
endfunction
function GetUnitZ takes unit u returns real
local location l = GetUnitLoc(u)
local real r = GetUnitFlyHeight(u) + GetLocationZ(l)
call RemoveLocation(l)
set l = null
return r
endfunction
Normalement vous avez déjà les 2 premières si vous avez pris d'autres fonctions ;-)
Voici donc la fonction en question :
struct s_AddLightningUnit
lightning l
timer t
unit u1
real z1
unit u2
real z2
real time
real done
endstruct
function AddLightningUnit_cycle takes nothing returns nothing
local timer t = GetExpiredTimer()
local s_AddLightningUnit s = GetStoredInteger(udg_GC,H2S(t),key)
if (s.done >= s.time) or (GetUnitState(s.u1,UNIT_STATE_LIFE) <= 0) or (GetUnitState(s.u2,UNIT_STATE_LIFE) <= 0) then
call DestroyLightning(s.l)
call PauseTimer(t)
call DestroyTimer(t)
call FlushStoredMission(udg_GC,H2S(t))
else
call MoveLightningEx(s.l,true,GetUnitX(s.u1),GetUnitY(s.u1),GetUnitZ(s.u1)+s.z1,GetUnitX(s.u2),GetUnitY(s.u2),GetUnitZ(s.u2)+s.z2)
set s.done = s.done + MoveInterval
endif
set t = null
endfunction
function AddLightningUnit takes string l, real time, unit u1, real z1, unit u2, real z2 returns s_AddLightningUnit // l= Type d'éclair | z= Décalage Z
local s_AddLightningUnit s = s_AddLightningUnit.create()
local timer t = CreateTimer()
set s.t = t
set s.u1 = u1
set s.z1 = z1
set s.u2 = u2
set s.z2 = z2
set s.time = time
set s.done = 0
set s.l = AddLightningEx(l,true,GetUnitX(u1),GetUnitY(u1),GetUnitZ(u1)+z1,GetUnitX(u2),GetUnitY(u2),GetUnitZ(u2)+z2)
call StoreInteger(udg_GC,H2S(t),key,s)
call TimerStart(t,MoveInterval,true,function AddLightningUnit_cycle)
set t = null
return s
endfunction
Comme d'habitude, les lignes importantes :
Ligne à appeler :
function AddLightningUnit takes string l, real time, unit u1, real z1, unit u2, real z2 returns s_AddLightningUnit // l= Type d'éclair | z= Décalage Z
Exemple d'appel :
call AddLightningUnit(lightning,time,caster,zOffset,target,zOffset)
EDIT : Les éclairs ne continueront plus sur les morts, ça faisait buguer le jeu parfois.
Publié par Bantas à 23:11:48 dans Divers | Commentaires (0) | Permaliens
Sisi, il est fini. D'ailleurs j'ai galéré pour faire son ultime (non ce n'est pas ça qui m'a pris plusieurs mois
). Je compte m'attaquer à l'Arcaniste juste après.
Compétences
Fouet électrique : Envoie un éclair sur la cible. Celle-ci prend des dégâts et est attirée vers le lanceur.
Pluie d'éclairs : Présent dans le jeu original.
Parade foudroyante : Donne une chance qu'un éclair frappe un ennemi qui attaque le Foudrelame.
Tonnerre grondant (Supérieur) : Provoque une explosion électrique qui paralyse et fait des dégâts aux ennemis.
Maëlstrom (Ultime) : Le Foudrelame canalise son énergie pour se relier par des éclairs à ses ennemis. Il les fait ensuite tournoyer à grande vitesse, leur faisant perdre leurs enchantements et des points de vie. (une description aussi floue que celle du Châtiment astral, mais le sort est quasi-mieux -je parle par rapport au Châtiment astral une fois transformé sur Arena-100-)
Caractéristiques
Y en a pas ! Du moins elles ne sont pas fixées, puisque j'ai perdu mes tableaux qui permettaient d'avoir une vue d'ensemble de la chose.
Publié par Bantas à 22:56:48 dans Héros | Commentaires (0) | Permaliens
1|
Derniers commentaires