Worldedit
  Worldedit
Le site sur l'éditeur de warcraft 3 !
 
  FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs   medals.php?sid=dcf185a02608e73429968032d1910fb6Médailles   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 
  FAQFAQ World Editor   UploadUploader une map ou une image    UploadAjouter sa map à l'annuaire   UploadConsulter l'annuaire

[vJass] Recul
Aller à la page 1, 2, 3  Suivante
 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Fonction Jass
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 Rhadamante
Petit flooder


Inscrit le: 28 Aoû 2007
Messages: 1457
Sujets: 24
Spécialité en worldedit: Bêêh hé hé hé !
Médailles: 3 (En savoir plus...)
Créateur de race (Quantité : 1) Grand décorateur (Quantité : 2)

MessagePosté le: 27/04/08 13:46    Sujet du message: [vJass] Recul Citer

Cette fonction nécessite le Jass NewGen Pack.

Nom de la fonction : Recul
Créateur : Bryce de Mouriès modifié par Rhadamante
Fonctions requises : la librairie TimerUtils, à copier dans le code script personnalisé ou un déclencheur vide.

Elle sert à éviter les problèmes liés à la destruction ou à la nullification de timer et surtout permet l'attachement de données. (Une librairie c'est un paquet de fonctions dont on veut être sûr qu'elle seront placées au début du script, avant d'autres fonctions qui y feraient appel)

Code : à copier dans le code script personnalisé

Jass:
library Recul needs TimerUtils

globals
    private constant real TIMEOUT = 0.02
    private constant integer TYPE = 'hpea'
    private unit TEST = null
   
// TIMEOUT = l'intervalle de temps entre chaque déplacement, augmentez-le si ça lag
// TEST = unité qui va nous servir pour déterminer si le prochain déplacement est possible
// TYPE = le type d'unité qui sera utilisée pour déterminer si le prochain déplacement est possible
// plus la valeur de sa Taille Collision est faible, plus c'est joli, là c'est le paysan qui a une taille de 16.0
// le mieux est de mettre une unité personnalisée avec une taille de 8.0
endglobals

//==========================================================================================
// Permet de savoir si le prochain déplacement de l'unité est possible ou pas
private function IsPointPathableForUnit takes real x, real y, unit whichUnit returns boolean
    local real tx = 0
    local real ty = 0
   
    call ShowUnit(whichUnit, false)
    if TEST == null then
        set TEST = CreateUnit(Player(15), TYPE, 0.0, 0.0, 0.0)
    else
        call ShowUnit(TEST, true)
    endif
   
    call SetUnitPosition(TEST, x, y)
    set tx = GetUnitX(TEST)
    set ty = GetUnitY(TEST)
    call ShowUnit(TEST, false)
    call ShowUnit(whichUnit,true)
    return (x == tx and y == ty)
endfunction

//==========================================================================================
// Déclaration d'une struct, une sorte de "super" variable.
// On peut stocker plusieurs variables de plusieurs types dans une struct, puis l'utiliser comme n'importe quel autre type de variable.
struct recul_st
    unit target
    real angle
    integer distance
    integer vit
    integer i
endstruct
// dans un trigger les membres d'une struct (les variables qui y sont stockées) sont désignées par nomdelastruct.nomdelavariable
// par exemple pour la variable  target  stockée dans la struct  st  ce serait  st.target

//==========================================================================================
// fonction appelée à chaque fois que le timer de la fonction Recul expire
private function Action takes nothing returns nothing
    local timer t = GetExpiredTimer() // on récupère le timer de la fonction Recul qui a expiré
    local recul_st st = GetTimerData(t) // on récupère la struct attaché au timer qu'on vient de récupérer (via TimerUtils)
    local real newX = GetUnitX(st.target) + st.vit*Cos(st.angle)
    local real newY = GetUnitY(st.target) + st.vit*Sin(st.angle)
   
    // tant que le nombre de déplacement ne dépasse le nombre fixé et si le pathing du terrain lui permet, on déplace l'unité
    if (st.i < st.distance) and IsPointPathableForUnit(newX, newY, st.target) then
        set st.i = st.i + 1 // on incrémente le compteur du nombre de déplacement
        call SetUnitPosition(st.target, newX, newY) // on déplace l'unité
    else // actions à effectuer dés que la distance de recul a été atteinte
        call SetUnitPathing( st.target, true)
        call ReleaseTimer(t) // correspond à la "libération" du timer, à son recyclage pour une utilisation ultérieure
        call st.destroy() // on détruit la struct
    endif
endfunction

//==========================================================================================
// la fonction que vous appellerez dans vos déclencheurs sous la forme
// call Recul(x, y, target, distance, vit)
// x et y = coordonnée X et Y du point d'origine du recul
// target = la cible visée par le recul
// distance = la distance de recul
// vit = la vitesse de recul (~20 pour un bon effet)
function Recul takes real x, real y, unit target, integer distance, integer vit returns nothing
    local timer t = NewTimer() // création d'un nouveau timer
    local recul_st  st = recul_st.create() // création d'une struct du type recul_st déclarée plus haut

    call SetUnitPathing( target, false)
    set st.target = target // la cible du recul
    set st.angle = Atan2(GetUnitY(target) - y, GetUnitX(target) - x) // l'angle selon lequel elle sera déplacée
    set st.distance = distance/vit // le nombre de fois qu'elle sera déplacée
    set st.vit = vit // la vitesse de ce déplacement
    set st.i = 0 // on initialise le compteur du nombre de déplacement
    call SetTimerData(t, st) // on stocke la struct en l'attachant au timer créé (via TimerUtils)
    call TimerStart (t, TIMEOUT, true, function Action ) // on démarre le timer périodique qui lancera le déplacement autant de fois que prévu
endfunction

endlibrary


Utilisation : Éjecter ou Pousser des unités
Copyright : Tout le monde peut l'ajouter à sa map, pas besoin de crédit pour ça mais si on vous demande qui l'a créée dites pas que c'est vous Smile
Remarques : nécessite le Jass NewGen Pack.
_________________


Dernière édition par Rhadamante le 08/02/09 14:37; édité 6 fois
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Troll-Brain
Ri1kamoua


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...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 27/04/08 14:02    Sujet du message: Citer

old méthode Razz
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Rhadamante
Petit flooder


Inscrit le: 28 Aoû 2007
Messages: 1457
Sujets: 24
Spécialité en worldedit: Bêêh hé hé hé !
Médailles: 3 (En savoir plus...)
Grand décorateur (Quantité : 2) Créateur de race (Quantité : 1)

MessagePosté le: 27/04/08 14:14    Sujet du message: Citer

Il existe une meilleur méthode ? Si oui, je t'en prie ne te gêne pas (comme ça si j'en ai besoin je pourrai en profiter Rolling Eyes ). Je l'ai juste poster parce que je l'ai retrouvé perdu au fin fond d'un vieux dossier...
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Troll-Brain
Ri1kamoua


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...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 27/04/08 14:32    Sujet du message: Citer

Rhadamante a écrit:
Il existe une meilleur méthode ? Si oui, je t'en prie ne te gêne pas (comme ça si j'en ai besoin je pourrai en profiter Rolling Eyes ). Je l'ai juste poster parce que je l'ai retrouvé perdu au fin fond d'un vieux dossier...


ouai mais bon c'est du vJass (la meilleure méthode) et il faut savoir que détruire un timer peut faire bugger, faut les recycler y'a une méthode toute simple pour cela.
Je te conseille de lire la doc du jassnewgenpack.
Faut utiliser une struct et un système d'attachement quelquonque.
Le plus simple est de stocker dans le cache l'index de la struct local ainsi crée (renvoie un entier)
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Darkfeyt
Floodeur prématuré


Inscrit le: 22 Nov 2007
Messages: 677
Sujets: 27
Spécialité en worldedit: Jamais sortir ses projets ?


MessagePosté le: 27/04/08 14:46    Sujet du message: Citer

Troll-Brain a écrit:
il faut savoir que détruire un timer peut faire bugger


Dans des cas particulier ou aléatoire ? Confused

Troll-Brain a écrit:
faut les recycler y'a une méthode toute simple pour cela.


Par recycler tu entend les faire re-fonctionné sauf en changeant le temps ?


Car pratiquement tout les sort de mon rpg marche par timer alors si c'est aléatoire , ont risque de jamais pouvoir le finir l'rpg. Razz
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail MSN Messenger
 Troll-Brain
Ri1kamoua


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...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 27/04/08 15:08    Sujet du message: Citer

http://wc3campaigns.net/showpost.php?p=866375&postcount=1

Mais comme blizzard ne tient pas au courant de ses modifications dans les patchs autres que les modifs de maps, peut être que depuis ce bug a été corrigé

Par recycler je veux dire au lieu de détruire un timer, le mettre en pause.
Quand on a besoin d'un timer, on réutilise un timer en pause (pas besoin de le unpause), si il n'y en a plus/pas de libre on en créé un autre
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Rhadamante
Petit flooder


Inscrit le: 28 Aoû 2007
Messages: 1457
Sujets: 24
Spécialité en worldedit: Bêêh hé hé hé !
Médailles: 3 (En savoir plus...)
Grand décorateur (Quantité : 2) Créateur de race (Quantité : 1)

MessagePosté le: 27/04/08 16:02    Sujet du message: Citer

Troll-Brain a écrit:
Je te conseille de lire la doc du jassnewgenpack.
Faut utiliser une struct et un système d'attachement quelquonque.
Le plus simple est de stocker dans le cache l'index de la struct local ainsi crée (renvoie un entier)


Confused

Moi noob, moi besoin exemple pour comprendre, toi donner exemple, moi donner femme à toi, toi quoi dire ?

ps : désolé j'ai pas assez de café dans le sang...
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Troll-Brain
Ri1kamoua


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...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 27/04/08 17:21    Sujet du message: Citer

Je ne savais pas que le café avait une influence quelquonque sur la formulation de phrases.

Ce que je dis :
Est t'elle consentante ?

Le problème vois tu c'est que je pourrais donner un exemple mais tu ne saurais pas comment ca fonctionne.
voici un exemple :
http://worldedit.free.fr/forum/viewtopic.php?t=592

Mais faut vraiment faire l'effort de lire la doc du pack ( dans le sous dossier jasshelper).

Le must est de reprendre les exemples, d'enregistrer la map et de regarder comment le code a été construit dans le war3map.j avec winmpq par ex.

Dans un premier temps lis seulement ce qui concerne les struct, c'est la chose la plus utile du Vjass
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Rhadamante
Petit flooder


Inscrit le: 28 Aoû 2007
Messages: 1457
Sujets: 24
Spécialité en worldedit: Bêêh hé hé hé !
Médailles: 3 (En savoir plus...)
Créateur de race (Quantité : 1) Grand décorateur (Quantité : 2)

MessagePosté le: 27/04/08 21:29    Sujet du message: Citer

Troll-Brain a écrit:
Je ne savais pas que le café avait une influence quelquonque sur la formulation de phrases.


Non, il a une influence sur mon état de veille, donc mes capacités de réflexion, donc ma capacité à formuler des phrases... mais pourquoi tu dis ça ? Elle avait quelque chose de bizarre ma phrase ? Rolling Eyes

Troll-Brain a écrit:
Ce que je dis :
Est t'elle consentante ?


Je sais pas je lui demanderais dés que je lui aurais enlever son baillon.

Troll-Brain a écrit:
Mais faut vraiment faire l'effort de lire la doc du pack ( dans le sous dossier jasshelper).


Ca y est a lu !

J'ai un truc à proposer, si c'est pas bon, pas taper siouplait !

J'utilise ça :
Jass:
library CSSafety
//===========================================================================
globals
    private timer array T
    private integer N = 0
endglobals
//===========================================================================
function NewTimer takes nothing returns timer
    if (N==0) then
        return CreateTimer()
    endif
 set N=N-1
 return T[N]
endfunction

function ReleaseTimer takes timer t returns nothing
    call PauseTimer(t)
    if (N==8191) then
        debug call BJDebugMsg("Warning: Timer stack is full, destroying timer!!")
        //stack is full, the map already has much more troubles than the chance of bug
        call DestroyTimer(t)
    else
        set T[N]=t
        set N=N+1
    endif   
endfunction
endlibrary

//===========================================================================

function H2I takes handle h returns integer
return h
return 0
endfunction

//===========================================================================

function H2S takes handle h returns string
    return I2S(H2I(h))
endfunction


Et le nouveau code serait quelque chose comme :

Jass:
struct recul_st
    unit target
    real angle
    integer distance
    integer vit
    integer i
endstruct
//===========================================================================
function Recul_Action takes nothing returns nothing
    local timer t = GetExpiredTimer()
    local recul_st st = GetStoredInteger(udg_Spell,H2S(t),"timer")
   
    local unit target = st.target
    local real angle = st.angle
    local integer distance = st.distance
    local integer vit = st.vit
    local integer i = st.i

    if (i < distance) then
        set st.i = st.i + 1
        call SetUnitPosition(target, GetUnitX(target) + vit*Cos(angle), GetUnitY(target) + vit*Sin(angle))
    else
        call SetUnitPathing( target, false)
        call ReleaseTimer(t)
        call FlushStoredMission(udg_Spell,H2S(t))
        call st.destroy()
    endif
endfunction

//===========================================================================

function Recul takes real x, real y, unit target, integer distance, integer vit returns nothing
    local timer t = NewTimer()
    local recul_st  st = recul_st.create()

    call SetUnitPathing( target, true)
    set st.target = target
    set st.angle = Atan2(GetUnitY(target) - y, GetUnitX(target) - x)
    set st.distance = distance/vit
    set st.vit = vit
    set st.i = 0
    call StoreInteger(udg_Spell,H2S(t),"timer",st)
    call TimerStart (t, 0.02, true, function Recul_Action )
endfunction


Je sais pas si c'est n'importe quoi, en tout cas en test j'ai l'impression que ça marche comme avant.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Troll-Brain
Ri1kamoua


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...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 27/04/08 21:44    Sujet du message: Citer

clap clap clap, mes fécilitations tu as trés bien compris.

Juste une petite remarque dans la fonction Recul_Action t'aurais pu te passer de déclarer des locales qui utilisent les membres de ta struct recul_st

Et une autre remarque concernant le code de Bantas cette fois.
au lieu de H2S utilises plutôt directement I2S(H2I()).
tu gagnes ainsi un appel de fonction ce qui n'est pas négligeable dans un si faible périodique.

PS : pour la femme relache là, j'aime pas quand c'est gratuit
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Rhadamante
Petit flooder


Inscrit le: 28 Aoû 2007
Messages: 1457
Sujets: 24
Spécialité en worldedit: Bêêh hé hé hé !
Médailles: 3 (En savoir plus...)
Créateur de race (Quantité : 1) Grand décorateur (Quantité : 2)

MessagePosté le: 28/04/08 00:00    Sujet du message: Citer

Troll-Brain a écrit:
clap clap clap, mes fécilitations tu as trés bien compris.


Merci, ça fait plaisir Embarassed

--->> Mode lèche-bottes activé <<---
Faut dire que j'ai un très bon professeur... Rolling Eyes
--->> Mode lèche-bottes désactivé <<---

Troll-Brain a écrit:
Juste une petite remarque dans la fonction Recul_Action t'aurais pu te passer de déclarer des locales qui utilisent les membres de ta struct recul_st


Tu veux dire que je vire toute cette partie et que je peux les utiliser directement (en remplaçant les target par st.target, etc.) ?
Jass:
    local unit target = st.target
    local real angle = st.angle
    local integer distance = st.distance
    local integer vit = st.vit
    local integer i = st.i


Troll-Brain a écrit:
PS : pour la femme relache là, j'aime pas quand c'est gratuit


Ah mais je la retiens pas prisonnière, c'est juste que le baillon c'est le seul moyen que j'ai trouver pour la faire taire. Very Happy
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Magus
Membre a fort taux de post


Inscrit le: 13 Oct 2007
Messages: 994
Sujets: 25
Spécialité en worldedit: Codeur


MessagePosté le: 28/04/08 08:49    Sujet du message: Citer

C'est très intéressant ces histoires de timer. Mais est-ce qu'il y a des cas ou des bugs arrivent plus souvent que d'autres cas ? Parce que depuis le temps que j'utilise des timers en les détruisant de partout je n'ai jamais eu de problème :s

EDIT : Pour Rhadamante, n'hésite pas a commenter ton code.
_________________
- La théorie c'est quand rien ne fonctionne mais tout le monde sait pourquoi.
- La pratique c'est quand tout fonctionne mais personne ne sait pourquoi.
- Chez moi la théorie et la pratique sont réunies, rien ne fonctionne et personne ne sait pourquoi.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Troll-Brain
Ri1kamoua


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...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 29/04/08 17:09    Sujet du message: Citer

Citation:
Tu veux dire que je vire toute cette partie et que je peux les utiliser directement (en remplaçant les target par st.target, etc.) ?
Jass:
    local unit target = st.target
    local real angle = st.angle
    local integer distance = st.distance
    local integer vit = st.vit
    local integer i = st.i

ouep
Citation:

Ah mais je la retiens pas prisonnière, c'est juste que le baillon c'est le seul moyen que j'ai trouver pour la faire taire. Very Happy

c'est un des nombreux inconvénients d'une femme, ca vide aussi les bourses (tous les sens du terme)
Bon je pense qu'il est temps d'arrêter notre délire, je tombe dans la facilité, la misogénie vulgaire

Citation:
C'est très intéressant ces histoires de timer. Mais est-ce qu'il y a des cas ou des bugs arrivent plus souvent que d'autres cas ? Parce que depuis le temps que j'utilise des timers en les détruisant de partout je n'ai jamais eu de problème :s

jsé pas comme je l'ai dit je me suis contenté de lire

Citation:
EDIT : Pour Rhadamante, n'hésite pas a commenter ton code.

+1 (même si moi même je le fais rarement Razz )
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Rhadamante
Petit flooder


Inscrit le: 28 Aoû 2007
Messages: 1457
Sujets: 24
Spécialité en worldedit: Bêêh hé hé hé !
Médailles: 3 (En savoir plus...)
Grand décorateur (Quantité : 2) Créateur de race (Quantité : 1)

MessagePosté le: 29/04/08 21:22    Sujet du message: Citer

[Master] a écrit:
EDIT : Pour Rhadamante, n'hésite pas a commenter ton code.


Je veux bien commenter, mais franchement je sais pas quoi mettre. Je me dit que ceux qui serait intéressé par une telle fonction, soit utilise le Jass mais l'ont déjà (sous cette forme ou une autre), soit utilise le GUI et ne voudront pas l'utiliser.
Si tu me dis quel genre de commentaires je pourrais mettre, je les rajouterais sans problème.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Magus
Membre a fort taux de post


Inscrit le: 13 Oct 2007
Messages: 994
Sujets: 25
Spécialité en worldedit: Codeur


MessagePosté le: 29/04/08 22:51    Sujet du message: Citer

Jass:

//Structure contenant tous les paramètres d'un recul pour une unité.
struct recul_st
    unit target       //Unité gérée par la structure
    real angle        //Angle du recul
    integer distance   //Distance du recule
    integer vit        //Vitesse du reculle
    integer i         //Bah on n'en sais rien et sans commentaire faut tout se taper pour le savoir. C'est un compteur pour savoir combien de fois la structure a été utilisé, non ?
endstruct

//Actions appellés à intervalle régulier pour chaque structure à l'aide d'un timer périodique.
function Recul_Action takes nothing returns nothing
    local timer t = GetExpiredTimer()
    //On récupère la structure associée
    local recul_st st = GetStoredInteger(udg_Spell,I2S(H2I(t)),"timer")
   
    //Si la distance n'est pas atteinte on continue, sinon le recul s'arrète.
    if (st.i < st.distance) then
        set st.i = st.i + 1
        call SetUnitPosition(st.target, GetUnitX(st.target) + st.vit*Cos(st.angle), GetUnitY(st.target) + st.vit*Sin(st.angle))  //Déplacement de l'unité selon l'angle et la vitesse.
    else
        //Arrêt du recul. On remet l'unité normal, le timer et la structure sont détruite.
        call SetUnitPathing( st.target, false) //A quoi ça sert ?
        call ReleaseTimer(t)
        //La structure est retiré du gamecache.
        call FlushStoredMission(udg_Spell,I2S(H2I(t)))
        call st.destroy()
    endif
endfunction

//Fonction qui poussera une unité dans une direction.
//@x real : Coordonnée de départ sur l'axe X
//@y real : Coordonnée de départ sur l'axe Y
//@target unit : Unité qui sera poussée.
//@distance integer : Distance du trajet.
//@integer vit : Vitesse du déplacement.
function Recul takes real x, real y, unit target, integer distance, integer vit returns nothing
    //Un timer associé à une structure son créés.
    //L'unité sera déplacé petit à petit à chaque fin du timer.
    local timer t = NewTimer()
    local recul_st  st = recul_st.create()

    call SetUnitPathing( target, true) //A quoi ça sert ?
    //Affectations des attributs de la structure
    set st.target = target
    set st.angle = Atan2(GetUnitY(target) - y, GetUnitX(target) - x)
    set st.distance = distance/vit
    set st.vit = vit
    set st.i = 0
    //La structure est ensuite stockée pour pouvoir transiter jusqu'aux actions du timer.
    call StoreInteger(udg_Spell,I2S(H2I(t)),"timer",st)
    call TimerStart (t, 0.02, true, function Recul_Action )
endfunction


Un code doit être compréhensible pour n'importe qui. Imagine un noob voudrait apprendre le vJass et prend comme exemple ta fonction.
C'est aussi utile pour toi-même. Tu viens de coder la fonction c'est normal que tu saches comment elle fonctionne, ce ne sera peut être pas le cas dans plusieurs mois si tu en as besoin.
_________________
- La théorie c'est quand rien ne fonctionne mais tout le monde sait pourquoi.
- La pratique c'est quand tout fonctionne mais personne ne sait pourquoi.
- Chez moi la théorie et la pratique sont réunies, rien ne fonctionne et personne ne sait pourquoi.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Fonction Jass Toutes les heures sont au format GMT + 1 Heure
Aller à la page 1, 2, 3  Suivante
Page 1 sur 3

 
Sauter vers:  
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


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com