Inscrit le: 21 Avr 2008 Messages: 1607 Sujets: 81 Spécialité en worldedit: Utiliser le travail des autres Médailles: 3 (En savoir plus...)
Posté le: 10/10/09 17:31 Sujet du message: Premier sort en vJass!!
Bonjour, voici mon premier sort en vJass. J'ai lu un tuto de FlamePhoenix sur Hive et j'ai essayé de faire un sort simple, un BlinkStrike. Mis à part le fait qu'il soit très simple (pas d'effet), je demande s'il y a moyen de l'améliorer au niveau du code, de supprimer les leaks etc...
Secret:
Jass:
scope BlinkStrike initializer Init
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
globals
private constant integer Spell_ID = 'A000'
private constant real Damage_per_Lvl = 75.0
endglobals
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
private function Conditions takes nothing returns boolean
return GetSpellAbilityId() == Spell_ID
endfunction
private function Actions takes nothing returns nothing
local unit Caster = GetSpellAbilityUnit()
local unit Target = GetSpellTargetUnit()
local real X = GetUnitX(Target)
local real Y = GetUnitY(Target)
call SetUnitX(Caster, X)
call SetUnitY(Caster, Y)
if IsUnitEnemy(Target, GetTriggerPlayer()) then
call UnitDamageTarget(Caster, Target, I2R(GetUnitAbilityLevel(Caster, Spell_ID))*Damage_per_Lvl, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_UNKNOWN, WEAPON_TYPE_WHOKNOWS)
else
endif
set Caster = null
set Target = null
endfunction
//===========================================================================
private function Init takes nothing returns nothing
local trigger t = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( t, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( t, Condition(function Conditions ))
call TriggerAddAction( t, function Actions )
endfunction
endscope
Autre question, est-ce que vous avez des astuces pour connaître les noms des fonctions? Je galère énormément à ce niveau là.
Question bonus: Quel est l'équivalent en vJass d'un trigger periodique en GUI?
Merchi beaucouplus. _________________
Autre question, est-ce que vous avez des astuces pour connaître les noms des fonctions? Je galère énormément à ce niveau là.
Dans le JassNewGenPack est inclu l'addon TESH. Il apporte non seulement une coloration syntaxique et l'autocomplétion (même si je n'utilise pas du tout cette dernière fonction) mais aussi un bouton "Function List" disponible pour tous les scripts. _________________
Inscrit le: 21 Avr 2008 Messages: 1607 Sujets: 81 Spécialité en worldedit: Utiliser le travail des autres Médailles: 3 (En savoir plus...)
Posté le: 10/10/09 17:54 Sujet du message:
Oui, je connais et utilise function list. Le problème c'est pour savoir ce que font ces functions, même si c'est souvent assez instinctif et pas trop dur. Il n'y a pas de petit texte explicatif comme en gui. Je suppose qu'avec la pratique, je devrais m'en sortir de mieux en mieux. _________________
Brissou de Mourièssou Créateur de sorts, depuis 1936.
Inscrit le: 30 Aoû 2007 Messages: 1511 Sujets: 26 Spécialité en worldedit: Développer des jeux vidéos pour le fun, donc world edit c'est comme faire une addition. Médailles: 2 (En savoir plus...)
Posté le: 10/10/09 18:14 Sujet du message:
Tu as un else qui ne sert à rien. _________________
Brissou de Mourièssou Créateur de sorts, depuis 1936.
Inscrit le: 30 Aoû 2007 Messages: 1511 Sujets: 26 Spécialité en worldedit: Développer des jeux vidéos pour le fun, donc world edit c'est comme faire une addition. Médailles: 2 (En savoir plus...)
Posté le: 10/10/09 20:50 Sujet du message:
Et je te conseille des minuscules pour le début de tes noms de variables, ça respecte la sémantique du jass et surtout ça fait gagner du temps _________________
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