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=2da2f8d5020a6f2e5bc7b05854334505Mé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

Système de sauvegarde [RPG]
Aller à la page 1, 2, 3, 4, 5, 6  Suivante
 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Tutoriels
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 Rommstein60
MODÉRATEUR À LA RETRAITE


Inscrit le: 23 Aoû 2007
Messages: 4766
Sujets: 136
Spécialité en worldedit: Keskesapeutfout'
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 05/07/08 20:58    Sujet du message: Système de sauvegarde [RPG] Citer

'Tite marque de violet =D


Bienvenue à vous dans ce tutorial qui aura pour but de vous apprendre à créer votre propre système de sauvegarde à la RPG.
Suivez-le attentivement et n'hésitez pas à le relire si vous n'avez pas compris quelque chose Wink

I/ Quelques informations

Tout d'abord je vais expliquer ce que c'est que ce système, car je suis certain que certains ne savent même pas de quoi je parle Mr. Green
Un système appelé de "save/load", c'est un système qui vous permettra de garder votre héros à travers les parties.
Lorsque vous devrez quitter une partie, vous aurez simplement à taper -save (dans la plupart des cas) et un code vous sera donné. C'est ce code que vous devrez recopier dans la partie suivante pour récupérer le héros ainsi sauvegardé.

Le code est donné sous forme aléatoire, de telle sorte qu'on n'y comprenne absolument rien, et qu'on n'essaie pas de tricher en rajoutant des niveaux ou des objets à son héros Wink
Le code est une série de lettres/chiffres et parfois symboles, dont chaque caractère a une signification particulière, qui correspond à une des caractéristiques de notre héros sauvegardé.
Ainsi par exemple le premier caractère d'un code peut sauvegarder le type de héros sauvegardé, le deuxième son niveau, etc...

Ce qu'il faut comprendre, c'est que chaque caractère dans le code peut prendre plusieurs valeurs différentes et que c'est cette valeur qui sera spécifique à l'élément que l'on veut sauvegarder.


a) Un exemple

Imaginons que nous voulons sauvegarder un Paladin niveau 5 qui porte l'objet une Griffe d'attaque +6 dans le slot 1 de son inventaire. On veut sauvegarder les caractéristiques données précédemment ainsi que les objets dans les slots 2 et 3.
Voici la façon dont notre code sera organisé :

[Type du héros][Niveau du héros][Objet 1][Objet 2][Objet 3]

Maintenant on va dire que la valeur du type d'unité lorsque le héros est un Paladin sera la lettre P (comme Paladin Cool).
Lorsque l'on tapera -save nous aurons donc une ébauche de code qui ressemblera à ça :

P[Niveau du héros][Objet 1][Objet 2][Objet 3]



Maintenant on va faire pareil qu'avec le type du héros, on va dire que la valeur du niveau du héros lorsque le niveau sera égal à 5 sera de... 5 !
Notre code sera donc comme ceci :

P5[Objet 1][Objet 2][Objet 3]



Au tours des objets ! On va dire que la valeur de l'objet 1 lorsque l'objet est une Griffe d'attaque +6 sera G.

Le code sera donc ainsi :

P5G[Objet 2][Objet 3]




Citation:
"Bah oui mais comment on va faire pour continuer le code vu que le Paladin il a rien dans les slots 2 et 3 ?!?"


Et bien c'est tout bête ! On va donner une valeur lorsque l'objet est égal à "rien" !
Allez c'est parti ! La valeur de l'objet 2 lorsqu'il n'y a pas d'objet sera R Cool
Et puisqu'on veut pas s'embêter on va faire pareil pour l'objet 3, on va lui mettre la valeur R.

Voici donc (enfin Rolling Eyes) notre code final :

P5GRR



Ce code signifie : "J'ai sauvegardé un Paladin de niveau 5 ayant pour objets dans les slots respectifs de 1 à 3 une Griffe d'attaque +6 | Rien | Rien"

Nous nous servirons donc de ce code dans le système de chargement pour recréer le héros tel qu'il était dans la partie précédente Wink



II/ Les déclencheurs

Voici enfin le moment tant attendu ( Twisted Evil ), les déclencheurs nous permettant de réaliser le système décrit précédemment Very Happy
Nous aurons 4 déclencheurs :


  1. Initialisation : C'est dans ce déclencheur que nous allons insérer toutes les valeurs que l'on souhaitera donner à telle et telle caractéristique du héros. En quelques sortes c'est ici que l'on va dire que pour le Paladin la lettre correspondante sera P, que pour le niveau 5 la chiffre correspondant sera le 5, etc...

    Citation:
    "Bah oui mais attends c'est trop simple là, le gars qui sauvegardera il aura qu'à changer le 5 en 9 et hop il sera niveau 9 dans la prochaine partie ! Il est bidon ton code !"


    Mais non ! Ce que j'ai donné ce n'est qu'un exemple ! par exemple pour le Paladin on aurait très bien pu prendre la lettre... Z ! Voire même un symbole comme % ! Libre à vous de choisir le caractère que vous voulez donner à une valeur !
    C'est pareil, pour le niveau 5 on pourrait dire que la valeur soit L, qui n'a aucun rapport !
    Et oui c'est ça le principe du code de sauvegarde, un code complètement incompréhensible qui permet tout de même de sauvegarder son personnage Very Happy

  2. Save : C'est ici que l'on va donner le code de sauvegarde au joueur qui aura tapé -save. Nous allons donc exploiter les données que nous aurons placées dans le déclencheur précédent (bah oui, pas de données, pas de code Mr. Green).

  3. Load : Ici on va récupérer le code qu'aura envoyé un joueur en tapant -load [son code]. Une fois de plus on aura besoin des données du premier déclencheur pour donner un sens au code que nous aura donné le joueur et recréer son personnage (recréer le personnage se passera dans le dernier déclencheur). Bien sûr il ne faut pas oublier que si jamais, pour n'importe quel caractère il n'y a aucune valeur, il faut dire au joueur que son code n'est pas bon, donc que son personnage ne sera pas chargé.
    (malencontreusement)

  4. Load OK : Si toutes les conditions sont respectées dans le déclencheur précédent, c'est ici que l'on créera le héros du joueur et qu'on lui redonnera toutes ses caractéristiques.


Voici les déclencheurs, je n'ai pas de commentaires ou d'explications à vous dire normalement car j'ai mis la dose de commentaires dans les déclencheurs Wink



Initialisation :

Secret:


Gui:
Trigger:
Initialisation
Collapse Evénements
Map initialization
Conditions
Collapse Actions
-------- C'est dans ce déclencheur que nous allons donner TOUTES les valeurs des TOUTES les caractéristiques que l'on veut sauvegarder --------
-------- On commence par donner la caractéristique n°1 : le type d'unité (le héros) --------
Set Save_type_unite[1] = Paladin
Set Save_type_unite[2] = Archimage
Set Save_type_unite[3] = Roi de la montagne
Set Save_type_unite[4] = Mage de sang
Set Entier_max[1] = 4
-------- Ne pas oublier de mettre la valeur d'Entier_max[1] au nombre maximum de héros que l'on peut sauvegarder ! --------
-------- Maintenant on donne les valeurs de la caractéristique n°1 --------
-------- Pour le Paladin la valeur sera A --------
-------- Pour l'Archimage la valeur sera B --------
-------- etc... --------
Set Save_chaine_unite[1] = A
Set Save_chaine_unite[2] = B
Set Save_chaine_unite[3] = C
Set Save_chaine_unite[4] = D
-------- Ici on donne les valeurs de la caractéristique n°2 : le niveau --------
-------- La caractéristique sera directement donnée dans le déploiement de la valeur --------
-------- Pour le niveau 1 (Save_chaine_niveau[1]) on aura la valeur A --------
-------- Pour le niveau 2 (Save_chaine_niveau[2]) on aura la valeur B --------
-------- Pour le niveau 3 (Save_chaine_niveau[3]) on aura la valeur C --------
-------- etc... --------
Set Save_chaine_niveau[1] = A
Set Save_chaine_niveau[2] = B
Set Save_chaine_niveau[3] = C
Set Save_chaine_niveau[4] = D
Set Save_chaine_niveau[5] = E
Set Save_chaine_niveau[6] = F
Set Save_chaine_niveau[7] = G
Set Save_chaine_niveau[8] = H
Set Save_chaine_niveau[9] = I
Set Save_chaine_niveau[10] = J
Set Entier_max[2] = 10
-------- Caractéristique n°3 : les objets --------
Set Save_type_objet[0] = Rien
Set Save_type_objet[1] = Gantelets de force +3
Set Save_type_objet[2] = Chaussons d'agilité +3
Set Save_type_objet[3] = Manteau d'intelligence +3
Set Save_type_objet[4] = Griffes d'attaque +6
Set Save_type_objet[5] = Anneau de protection +2
Set Entier_max[3] = 5
-------- Pareil : ne pas oublier de mettre la valeur maximale d'objets à  sauvegarder --------
-------- Les valeurs de la caractéristique n°3 --------
Set Save_chaine_objets[0] = A
Set Save_chaine_objets[1] = B
Set Save_chaine_objets[2] = C
Set Save_chaine_objets[3] = D
Set Save_chaine_objets[4] = E
Set Save_chaine_objets[5] = F
-------- Alors là  c'est un peu particulier, on va créer 4 variables à  déploiement, chacune ayant comme caractéristique une des compétences du héros --------
-------- On commence par le Paladin --------
-------- Capacité n°1 du Paladin (le héros n°1, voir plus haut) = Feu sacré --------
-------- Capacité n°2 du Paladin (le héros n°1, voir plus haut) = Bouclier divin --------
-------- Capacité n°3 du Paladin (le héros n°1, voir plus haut) = Aura de dévotion --------
-------- Capacité n°4 du Paladin (le héros n°1, voir plus haut) = Résurrection --------
Set Save_capacite_1[1] = Feu sacré
Set Save_capacite_2[1] = Bouclier divin
Set Save_capacite_3[1] = Aura de dévotion
Set Save_capacite_4[1] = Résurrection
-------- Capacité n°1 de l'Archimage (le héros n°2, voir plus haut) = Blizzard --------
-------- Capacité n°2 de l'Archimage (le héros n°2, voir plus haut) = Invoquer Elémentaire d'eau --------
-------- Capacité n°3 de l'Archimage (le héros n°2, voir plus haut) = Aura d'illumination --------
-------- Capacité n°4 de l'Archimage (le héros n°2, voir plus haut) = Téléportation de groupe --------
Set Save_capacite_1[2] = Blizzard
Set Save_capacite_2[2] = Invoquer Elémentaire d'eau
Set Save_capacite_3[2] = Aura d'illumination
Set Save_capacite_4[2] = Téléportation de groupe
-------- Capacité n°1 du Roi de la montagne (le héros n°3, voir plus haut) = Boule de foudre --------
-------- Capacité n°2 du Roi de la montagne (le héros n°3, voir plus haut) = Coup de tonnerre --------
-------- etc... --------
Set Save_capacite_1[3] = Boule de foudre
Set Save_capacite_2[3] = Coup de tonnerre
Set Save_capacite_3[3] = Assommoir
Set Save_capacite_4[3] = Avatar
Set Save_capacite_1[4] = Choc de flammes
Set Save_capacite_2[4] = Bannir
Set Save_capacite_3[4] = Siphon de mana
Set Save_capacite_4[4] = Phénix
-------- Ici on va sauvegarder les niveaux de chaque compétence pour le héros --------
-------- On commence par la compétence n°1 du héros --------
-------- En premier on a le niveau 0 : la compétence n'a pas encore été apprise --------
-------- Pour un compétence de niveau 1 on aura la valeur B --------
-------- etc... --------
Set Save_chaine_sort_1[0] = A
Set Save_chaine_sort_1[1] = B
Set Save_chaine_sort_1[2] = C
Set Save_chaine_sort_1[3] = D
-------- Puis la compétence n°2 --------
Set Save_chaine_sort_2[0] = A
Set Save_chaine_sort_2[1] = B
Set Save_chaine_sort_2[2] = C
Set Save_chaine_sort_2[3] = D
-------- Puis la compétence n°3 --------
Set Save_chaine_sort_3[0] = A
Set Save_chaine_sort_3[1] = B
Set Save_chaine_sort_3[2] = C
Set Save_chaine_sort_3[3] = D
-------- Puis la compétence n°4 --------
Set Save_chaine_sort_4[0] = A
Set Save_chaine_sort_4[1] = B
Set Save_chaine_sort_4[2] = C
Set Save_chaine_sort_4[3] = D
-------- Voilà  j'ai fini avec l'exemple ! --------
-------- Rien ne vous empêche de rajouter des caractéristiques et des valeurs, bien entendu ;-) --------



Save :

Secret:


Gui:
Trigger:
Save
Collapse Evénements
Joueur - Joueur 1 (Rouge) types a chat message containing -save as Résultat équivalent
Conditions
Collapse Actions
-------- Allez on commence ! --------
-------- Si le héros n'est pas sélectionné par le joueur --------
Set Groupe_unite_selection = (Units currently selected by (Triggering player))
Collapse Groupe unité - Pick every unit in Groupe_unite_selection and do (Actions)
Collapse Boucle - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
((Picked unit) is Un héros) Egal à  TRUE
(Owner of (Picked unit)) Egal à  (Triggering player)
Alors - Actions
Collapse Sinon - Actions
Groupe unité - Remove (Picked unit) from Groupe_unite_selection
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Number of units in Groupe_unite_selection) Egal à  0
Collapse Alors - Actions
-------- On abandonne tout et on lui met un message d'erreur --------
Partie - Display to (Player group((Triggering player))) for 5.00 seconds the text: Veuillez selectionn...
Skip remaining actions
Sinon - Actions
-------- Si il y a plusieurs héros sélectionnés ça marche pas >.< --------
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Number of units in Groupe_unite_selection) Supérieur à  1
Collapse Alors - Actions
-------- On abandonne tout et on lui met un message d'erreur --------
Partie - Display to (Player group((Triggering player))) for 5.00 seconds the text: Un seul héros à  l...
Skip remaining actions
Sinon - Actions
-------- Bon si on arrive jusqu'ici c'est que tout va bien :p --------
-------- On définit l'unité à  sauvegarder comme le héros selectionné par le joueur --------
Set Unite_save = (Random unit from (Units currently selected by (Triggering player)))
-------- On donne le nombre maximal de caractère que prendre la sauvegarde (ce sera utile plus bas) --------
Set Entier_max_caractere = 12
-------- Ca c'est l'ID du héros qu'on va sauvegarder, ça nous sera utile plus tard --------
-------- Là  on le met à  0 --------
Set Entier_id_hero = 0
-------- Tous les caractères sont remis à  "zéro" --------
Collapse For each (Integer A) from 1 to Entier_max_caractere, do (Actions)
Collapse Boucle - Actions
Set Chaine_code_save[(Integer A)] = <Chaîne vide>
-------- On commence par le type de héros --------
-------- C'est à  partir d'ici que tout ce qu'on a inséré dans le premier déclencheur va commencer à  nous servir --------
-------- On fait une boucle qui va de 1 jusqu'au maximum de type de héros --------
Collapse For each (Integer A) from 1 to Entier_max[1], do (Actions)
Collapse Boucle - Actions
-------- et si le type de héros sélectionné est égal au type de héro du numéro de la boucle --------
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Unit-type of Unite_save) Egal à  Save_type_unite[(Integer A)]
Collapse Alors - Actions
-------- on définit le premier caractère comme la valeur du numéro de la boucle (soit le numéro du héros) --------
Set Chaine_code_save[1] = Save_chaine_unite[(Integer A)]
Set Entier_id_hero = (Integer A)
Sinon - Actions
-------- Pfiou ça fait un peu beaucoup pour un début :p --------
-------- Si vous comprenez pas tout n'hésitez pas à  relire plusieurs fois ^^ --------
-------- Là  on va sauvegarder le niveau du héros --------
-------- On dit que le deuxième caractère sera égal à  la valeur de Save_chaine_niveau[niveau du héros] --------
-------- Reportez-vous au déclencheur d'initialisation pour mieux comprendre --------
Set Chaine_code_save[2] = Save_chaine_niveau[(Hero level of Unite_save)]
-------- Là  ça se complique... --------
-------- "Quoi y'a encore plus compliqué que ce qu'il y a eu avant ?!?" --------
-------- Euhhh... ^_^''' --------
-------- Bon alors on va faire une boucle pour avoir chacun des 6 objets dans l'inventaire du héros --------
-------- Donc de 1 à  6... --------
Collapse For each (Integer A) from 1 to 6, do (Actions)
Collapse Boucle - Actions
-------- ...si l'objet dans le slot du numéro de la boucle est égal à  "rien"... --------
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Item carried by Unite_save in slot (Integer A)) Egal à  Pas d'objet
Collapse Alors - Actions
-------- ...on définit le caractère comme la valeur de lorsqu'il n'y a pas d'objet --------
Set Chaine_code_save[(2 + (Integer A))] = Save_chaine_objets[0]
Collapse Sinon - Actions
-------- ...sinon... --------
-------- ...on vérifie le type de l'objet sauvegardé en allant de 1 au nombre maximum d'objets --------
Collapse For each (Integer B) from 1 to Entier_max[3], do (Actions)
Collapse Boucle - Actions
-------- Si le type d'objet dans le slot du numéro de la boucle A est égal à  l'objet du numéro de la boucle B... --------
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Item-type of (Item carried by Unite_save in slot (Integer A))) Egal à  Save_type_objet[(Integer B)]
Collapse Alors - Actions
-------- ...on définit le caractère comme la valeur de l'objet qu'il porte dans ce slot --------
Set Chaine_code_save[(2 + (Integer A))] = Save_chaine_objets[(Integer B)]
Sinon - Actions
-------- Si jamais vous aviez (malencontreusement) oublié de rajouter un objet récemment crée dans la liste on va dire que cet objet est égal à  "rien" --------
-------- (vaut mieux ça qu'un gros bug dans le code ^^' ) --------
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
Chaine_code_save[(2 + (Integer A))] Egal à  <Chaîne vide>
Collapse Alors - Actions
Set Chaine_code_save[(2 + (Integer A))] = Save_chaine_objets[0]
Sinon - Actions
-------- Ici on enregistre les niveaux des 4 compétences du héros --------
-------- Le caractère n°9 sera égal au niveau du sort n°1 du héros correspondant à  l'ID précédemment enregistré --------
-------- Le caractère n°10 sera égal au niveau du sort n°2 du héros correspondant à  l'ID précédemment enregistré --------
-------- etc... --------
Set Chaine_code_save[9] = Save_chaine_sort_1[(Level of Save_capacite_1[Entier_id_hero] for Unite_save)]
Set Chaine_code_save[10] = Save_chaine_sort_2[(Level of Save_capacite_2[Entier_id_hero] for Unite_save)]
Set Chaine_code_save[11] = Save_chaine_sort_3[(Level of Save_capacite_3[Entier_id_hero] for Unite_save)]
Set Chaine_code_save[12] = Save_chaine_sort_4[(Level of Save_capacite_4[Entier_id_hero] for Unite_save)]
-------- Voilà  on a tout enregistré ! --------
-------- Maintenant il faut organiser notre code --------
-------- Pour que ce soit plus clair on va lui donner la forme : --------
-------- X X X X - X X X X - X X --------
-------- On remet le code de sauvegarde à  "rien" --------
Set Chaine_code_save_final = <Chaîne vide>
-------- On fait une boucle assez complexe dont je vais pas essayer de vous donner les détails sous peine d'un terrible mal de crâne ;p --------
Collapse For each (Integer A) from 1 to ((Entier_max_caractere / 5) + 1), do (Actions)
Collapse Boucle - Actions
-------- Puis une autre boucle allant de 1 à  5... --------
Collapse For each (Integer B) from 1 to 5, do (Actions)
Collapse Boucle - Actions
-------- ...et si le caractère est différent de rien (en gros si y'a quelque chose dedans ^^)... --------
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
Chaine_code_save[((((Integer A) - 1) x 5) + (Integer B))] Différent de <Chaîne vide>
Collapse Alors - Actions
-------- ...on dit que le code final est égal à  : --------
-------- Code final + caractère numéro de la boucle B --------
-------- (en gros on rajoute le caractère) --------
Set Chaine_code_save_final = (Chaine_code_save_final + Chaine_code_save[((((Integer A) - 1) x 5) + (Integer B))])
Sinon - Actions
-------- Puis, si on est pas à  la fin du code... --------
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Integer A) Différent de ((Entier_max_caractere / 5) + 1)
Collapse Alors - Actions
-------- ...on rajoute un   -   pour organiser le code --------
Set Chaine_code_save_final = (Chaine_code_save_final + -)
Sinon - Actions
-------- Et ENFIN on annonce le code au joueur, qui n'aura rien vu de ce grand déclo super compliqué que notre ordinateur aura déchiffré en quelques centièmes de seconde --------
-------- C'est rageant hein? T_T --------
-------- x_x --------
-------- Bon on se reprend faut continuer le tuto ! ;o --------
Partie - Display to (Player group((Triggering player))) for 120.00 seconds the text: Chaine_code_save_final



Load :

Secret:


Gui:
Trigger:
Load
Collapse Evénements
Joueur - Joueur 1 (Rouge) types a chat message containing -load as Une sous-chaîne
Collapse Conditions
(Substring((Entered chat string), 1, 5)) Egal à  -load
Collapse Actions
-------- ENFIN ! Le load ! --------
-------- On commence par enregistrer le joueur qui charge son héros --------
Set Load_joueur = (Triggering player)
-------- Là  on dit que la variable permettant d'annuler le chargement n'est pas activée --------
Set Booleen_annuler_load = FALSE
-------- Mais si on ne trouve pas de   -   aux places correspondantes... --------
Collapse For each (Integer A) from 1 to (Entier_max_caractere / 5), do (Actions)
Collapse Boucle - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Substring((Entered chat string), (6 + (6 x (Integer A))), (6 + (6 x (Integer A))))) Différent de -
Collapse Alors - Actions
-------- ...on dit que la variable va annuler le chargement --------
Set Booleen_annuler_load = TRUE
Sinon - Actions
-------- Si la variable est activée... --------
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
Booleen_annuler_load Egal à  TRUE
Collapse Alors - Actions
-------- ...on annonce un message d'erreur et on annule les actions suivantes --------
Partie - Display to (Player group((Triggering player))) for 10.00 seconds the text: Code incorrect.
Partie - Display to (Player group((Triggering player))) for 10.00 seconds the text: 1
Skip remaining actions
Sinon - Actions
-------- Là  on dit que la variable permettant d'annuler le chargement EST ACTIVEE --------
Set Booleen_annuler_load = TRUE
-------- Et si on trouve dans la boucle un caractère égal à  la valeur du type d'unité du numéro de la boucle... --------
Collapse For each (Integer A) from 1 to Entier_max[1], do (Actions)
Collapse Boucle - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Substring((Entered chat string), 7, 7)) Egal à  Save_chaine_unite[(Integer A)]
Collapse Alors - Actions
-------- ...on dit que le type d'unité est égal à  la valeur du numéro de la boucle, --------
Set Load_type_unite = Save_type_unite[(Integer A)]
-------- on dit que l'ID est le numéro de la boucle, --------
Set Entier_id_hero = (Integer A)
-------- puis on annule la variable x) --------
Set Booleen_annuler_load = FALSE
Sinon - Actions
-------- Si jamais dans la boucle on a pas trouvé de valeur, ça veut dire que le joueur a fait une erreur dans son code --------
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
Booleen_annuler_load Egal à  TRUE
Collapse Alors - Actions
-------- On annonce un message d'erreur et on annule les actions suivantes --------
Partie - Display to (Player group((Triggering player))) for 10.00 seconds the text: Code incorrect.
Partie - Display to (Player group((Triggering player))) for 10.00 seconds the text: 2
Skip remaining actions
Sinon - Actions
-------- Pareil --------
Set Booleen_annuler_load = TRUE
Collapse For each (Integer A) from 1 to Entier_max[2], do (Actions)
Collapse Boucle - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Substring((Entered chat string), 8, 8)) Egal à  Save_chaine_niveau[(Integer A)]
Collapse Alors - Actions
Set Load_entier_niveau = (Integer A)
Set Booleen_annuler_load = FALSE
Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
Booleen_annuler_load Egal à  TRUE
Collapse Alors - Actions
Partie - Display to (Player group((Triggering player))) for 10.00 seconds the text: Code incorrect.
Partie - Display to (Player group((Triggering player))) for 10.00 seconds the text: 3
Skip remaining actions
Sinon - Actions
-------- Là  c'est pour les objets, je vous laisse faire un peu fonctionner votre matière grise pour comprendre ce codage xD --------
Set Booleen_annuler_load = TRUE
Collapse For each (Integer A) from 1 to 3, do (Actions)
Collapse Boucle - Actions
Collapse For each (Integer B) from 0 to Entier_max[3], do (Actions)
Collapse Boucle - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Substring((Entered chat string), (8 + (Integer A)), (8 + (Integer A)))) Egal à  Save_chaine_objets[(Integer B)]
Collapse Alors - Actions
Set Load_type_objet[(Integer A)] = Save_type_objet[(Integer B)]
Set Booleen_annuler_load = FALSE
Sinon - Actions
Collapse For each (Integer A) from 4 to 6, do (Actions)
Collapse Boucle - Actions
Collapse For each (Integer B) from 0 to Entier_max[3], do (Actions)
Collapse Boucle - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Substring((Entered chat string), (9 + (Integer A)), (9 + (Integer A)))) Egal à  Save_chaine_objets[(Integer B)]
Collapse Alors - Actions
Set Load_type_objet[(Integer A)] = Save_type_objet[(Integer B)]
Set Booleen_annuler_load = FALSE
Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
Booleen_annuler_load Egal à  TRUE
Collapse Alors - Actions
Partie - Display to (Player group((Triggering player))) for 10.00 seconds the text: Code incorrect.
Partie - Display to (Player group((Triggering player))) for 10.00 seconds the text: 4
Skip remaining actions
Sinon - Actions
-------- Ici c'est les niveaux des sorts, on commence la boucle à  0 pour si le sort n'est pas appris --------
-------- On commence par le sort n°1 --------
Set Booleen_annuler_load = TRUE
Collapse For each (Integer A) from 0 to 3, do (Actions)
Collapse Boucle - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Substring((Entered chat string), 16, 16)) Egal à  Save_chaine_sort_1[(Integer A)]
Collapse Alors - Actions
Set Load_entier_capacite[1] = (Integer A)
Set Booleen_annuler_load = FALSE
Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
Booleen_annuler_load Egal à  TRUE
Collapse Alors - Actions
Partie - Display to (Player group((Triggering player))) for 10.00 seconds the text: Code incorrect.
Partie - Display to (Player group((Triggering player))) for 10.00 seconds the text: 5
Skip remaining actions
Sinon - Actions
-------- Puis le sort n°2 --------
Set Booleen_annuler_load = TRUE
Collapse For each (Integer A) from 0 to 3, do (Actions)
Collapse Boucle - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Substring((Entered chat string), 17, 17)) Egal à  Save_chaine_sort_2[(Integer A)]
Collapse Alors - Actions
Set Load_entier_capacite[2] = (Integer A)
Set Booleen_annuler_load = FALSE
Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
Booleen_annuler_load Egal à  TRUE
Collapse Alors - Actions
Partie - Display to (Player group((Triggering player))) for 10.00 seconds the text: Code incorrect.
Partie - Display to (Player group((Triggering player))) for 10.00 seconds the text: 6
Skip remaining actions
Sinon - Actions
-------- Le 3 --------
Set Booleen_annuler_load = TRUE
Collapse For each (Integer A) from 0 to 3, do (Actions)
Collapse Boucle - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Substring((Entered chat string), 19, 19)) Egal à  Save_chaine_sort_3[(Integer A)]
Collapse Alors - Actions
Set Load_entier_capacite[3] = (Integer A)
Set Booleen_annuler_load = FALSE
Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
Booleen_annuler_load Egal à  TRUE
Collapse Alors - Actions
Partie - Display to (Player group((Triggering player))) for 10.00 seconds the text: Code incorrect.
Partie - Display to (Player group((Triggering player))) for 10.00 seconds the text: 7
Skip remaining actions
Sinon - Actions
-------- Et enfin, le numéro complémentaire, le numéro 4 (je vous souhaite à  tous bonne chance pour remporter ce loto !) --------
-------- Bon d'accord je sors -_-'   => [-]   (oui c'est une porte) --------
-------- >_<' --------
Set Booleen_annuler_load = TRUE
Collapse For each (Integer A) from 0 to 3, do (Actions)
Collapse Boucle - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Substring((Entered chat string), 20, 20)) Egal à  Save_chaine_sort_4[(Integer A)]
Collapse Alors - Actions
Set Load_entier_capacite[4] = (Integer A)
Set Booleen_annuler_load = FALSE
Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
Booleen_annuler_load Egal à  TRUE
Collapse Alors - Actions
Partie - Display to (Player group((Triggering player))) for 10.00 seconds the text: Code incorrect.
Partie - Display to (Player group((Triggering player))) for 10.00 seconds the text: 8
Skip remaining actions
Sinon - Actions
-------- Si on est arrivé jusque là  c'est que y'a pas eu d'erreur donc le gars ets un PGM il a pas fait de fautes en recopiant son code, on peut créer son personnage pour le récompenser --------
Déclencheur - Run Load OK <gen> (ignoring conditions)



Load OK :

Secret:


Gui:
Trigger:
Load OK
Evénements
Conditions
Collapse Actions
-------- On crée un type d'unité chargé pour le joueur qui a chargé --------
Unité - Create 1 Load_type_unite for Load_joueur at (Center of (Playable map area)) facing Orientation bâtiment par défaut degrees
-------- On lui met son niveau au niveau chargé --------
Héros - Set (Last created unit) Hero-level to Load_entier_niveau, Montrer level-up graphics
Caméra - Pan camera for Load_joueur to (Position of (Last created unit)) over 0.00 seconds
-------- On fait une boucle allant de 1 à  6 pour recréer les objets chargés --------
Collapse For each (Integer A) from 1 to 6, do (Actions)
Collapse Boucle - Actions
Héros - Create Load_type_objet[(Integer A)] and give it to (Last created unit)
Unité - Order (Last created unit) to move (Last created item) to inventory slot (Integer A)
-------- On prend tous les objets égaux à  "rien" dans l'inventaire du héros t on les enlève --------
Collapse For each (Integer A) from 1 to 6, do (Actions)
Collapse Boucle - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Item-type of (Item carried by (Last created unit) in slot (Integer A))) Egal à  Rien
Collapse Alors - Actions
Objet - Remove (Item carried by (Last created unit) in slot (Integer A))
Sinon - Actions
-------- Pour les compétences, si leur niveaux est supérieur à  0 ça veut dire qu'il faut apprendre la compétence au nouvel héros --------
-------- Mais vu que le GUI suxx² faut le faire en JASS (de quoi encourager pleins de monde à  se mettre au JASS ^^' ) --------
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
Load_entier_capacite[1] Supérieur à  0
Collapse Alors - Actions
Custom script:   call SelectHeroSkill( GetLastCreatedUnit(), udg_Save_capacite_1[udg_Entier_id_hero] )
Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
Load_entier_capacite[2] Supérieur à  0
Collapse Alors - Actions
Custom script:   call SelectHeroSkill( GetLastCreatedUnit(), udg_Save_capacite_2[udg_Entier_id_hero] )
Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
Load_entier_capacite[3] Supérieur à  0
Collapse Alors - Actions
Custom script:   call SelectHeroSkill( GetLastCreatedUnit(), udg_Save_capacite_3[udg_Entier_id_hero] )
Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
Load_entier_capacite[4] Supérieur à  0
Collapse Alors - Actions
Custom script:   call SelectHeroSkill( GetLastCreatedUnit(), udg_Save_capacite_4[udg_Entier_id_hero] )
Sinon - Actions
-------- Maintenant que les compétences sont apprises on règle leurs niveaux --------
Unité - Set level of Save_capacite_1[Entier_id_hero] for (Last created unit) to Load_entier_capacite[1]
Unité - Set level of Save_capacite_2[Entier_id_hero] for (Last created unit) to Load_entier_capacite[2]
Unité - Set level of Save_capacite_3[Entier_id_hero] for (Last created unit) to Load_entier_capacite[3]
Unité - Set level of Save_capacite_4[Entier_id_hero] for (Last created unit) to Load_entier_capacite[4]
-------- Et c'est la fin et je vous dit aurevoir pour de nouvelles aventures ! --------






Bien entendu, vu que je suis fort intelligent et que je prévois tout Cool
Et bien je... Hey arrêtez de me huer !

*sort de la scène en se protégeant la tête pour éviter les tomates qui volent*

Ouais c'est bon je peux revenir là...?

Bon je disais DONC que comme je suis.. Hum que comme j'y ai pensé, je vous ai fait une 'tite Map exemple.

Télécharger Save/Load - GUI - Rommstein60

Voilà sur ce, bonne chance pour vos Maps, si vous compter utiliser ce sytème, ou du moins apprendre avec Wink
_________________


Dernière édition par Rommstein60 le 06/07/08 13:10; édité 2 fois
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Deatrathias
Membre actif


Inscrit le: 24 Mai 2008
Messages: 108
Sujets: 3
Spécialité en worldedit: Un peu de tout mais surtout beaucoup de rien.


MessagePosté le: 05/07/08 21:19    Sujet du message: Citer

Si c'est ok pour demain, pourquoi poster aujourd'hui ?
_________________
ಠ_ಠ
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Rommstein60
MODÉRATEUR À LA RETRAITE


Inscrit le: 23 Aoû 2007
Messages: 4766
Sujets: 136
Spécialité en worldedit: Keskesapeutfout'
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 05/07/08 21:37    Sujet du message: Citer

Pour prévenir que je vais poster un tuto sur ça.
En fait c'est plutôt pour Bizz' que je poste ça aujourd'hui ;p

_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Ryuthedragon
Membre a fort taux de post


Inscrit le: 21 Aoû 2007
Messages: 885
Sujets: 102

Médailles: 1 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 05/07/08 23:47    Sujet du message: Citer

On dirait moi avec mes screenshots Smile mais je poses une question avant que tu posts je me suis toujours demander s'il était possible de faire en sorte qu'un système de sauvegarde puisse être utiliser pour d'autres maps par exemple je fais une map RPG Niveau 1-50 ou une suite de map ou on pourrait load notre héros si je veux faire une autre map 50-70 et que j'ai les même héros et les même triggers penses-tu que je puisses load un code de la map 1-50 et le mettre dans la map 50-70 ?
_________________
Avec une elfe ? Tu veux rire ou quoi ? Le problème avec les elfes c'est qu'elles n'ont que la peau sur les os ! Prend toi donc une gentille naine de 120kilos ! Avec une barbe pour te cramponer ! ~Citation d'Elwood, le nain du film de D&D~
Faut pas confondre lien des bourses et lien de la bourse. ~Citation de Badorin de WaoW~
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: 05/07/08 23:59    Sujet du message: Citer

Ryuthedragon a écrit:
On dirait moi avec mes screenshots Smile mais je poses une question avant que tu posts je me suis toujours demander s'il était possible de faire en sorte qu'un système de sauvegarde puisse être utiliser pour d'autres maps par exemple je fais une map RPG Niveau 1-50 ou une suite de map ou on pourrait load notre héros si je veux faire une autre map 50-70 et que j'ai les même héros et les même triggers penses-tu que je puisses load un code de la map 1-50 et le mettre dans la map 50-70 ?


Si j'ai bien compris la question, oui. A condition que toutes tes données objets soient exactement les mêmes dans les 2 cartes, sinon ça risque d'être sévèrement pas beau comme résultat.
_________________
- 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
 Rommstein60
MODÉRATEUR À LA RETRAITE


Inscrit le: 23 Aoû 2007
Messages: 4766
Sujets: 136
Spécialité en worldedit: Keskesapeutfout'
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 06/07/08 08:02    Sujet du message: Citer

Ryuthedragon a écrit:
mais je poses une question avant que tu posts je me suis toujours demander s'il était possible de faire en sorte qu'un système de sauvegarde puisse être utiliser pour d'autres maps par exemple je fais une map RPG Niveau 1-50 ou une suite de map ou on pourrait load notre héros si je veux faire une autre map 50-70 et que j'ai les même héros et les même triggers penses-tu que je puisses load un code de la map 1-50 et le mettre dans la map 50-70 ?

Oui bien sûr.
Et +1 pour Master Wink

Enfin ce que tu veux dire c'est que jore sur le Map 1 tu pourras pas aller sur la Map 2 tant que ton héros sera pas level 50 c'est ça?

_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Rommstein60
MODÉRATEUR À LA RETRAITE


Inscrit le: 23 Aoû 2007
Messages: 4766
Sujets: 136
Spécialité en worldedit: Keskesapeutfout'
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 06/07/08 12:46    Sujet du message: Citer

Up Exclamation

A passer en officiel Twisted Evil

_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 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: 06/07/08 13:25    Sujet du message: Citer

Faudrait inclure une colorisation du string généré.
Comme dans le save and load de Vexorian.
Par ex il est très difficile de distinguer un l d'un 1 ou d'un I

Donc avoir une couleur pour les lettres majuscules, une pour les lettres minuscules, une autre pour les chiffres et éventuellement une dernière pour les autres caractères.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Rommstein60
MODÉRATEUR À LA RETRAITE


Inscrit le: 23 Aoû 2007
Messages: 4766
Sujets: 136
Spécialité en worldedit: Keskesapeutfout'
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 06/07/08 13:41    Sujet du message: Citer

Oups mince j'avais pensé à le mettre, d'autant plus que je l'ai mis dans AL Wink
Mais bon en même temps ceux qui sont capables de faire ce système seront capable de colorer le texte Wink

PS : Vexorian a fait un système de save/load? Je peux avoir un lien stp Smile

_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 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: 06/07/08 13:45    Sujet du message: Citer

Citation:
PS : Vexorian a fait un système de save/load? Je peux avoir un lien stp.

Sans vouloir t'offenser c'est du jass et pour l'utiliser correctement, c'est à dire ajouter ses propres fonctions faut déjà comprendre un minimum le système.
Il est facile à trouver y'a que 2 systèmes de save and load dans la rubrique systems sur wc3campaigns.net.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Magus
Membre a fort taux de post


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


MessagePosté le: 06/07/08 13:50    Sujet du message: Citer

Je me permet d'ajouter quelque chose.

Un code, c'est beau, c'est bien (c'est Bosh ?) mais même si tu fais des efforts pour que le code ne ressemble a rien (par exemple, mettre Z pour représenter le Paladin), le joueur pourra très bien essayer des codes bidons (ou presque bidon, en changeant juste une lettre) et il comprendra très vite a quoi correspond tel caractère dans ton code et en s'acharnant un peu il construira un héros de ses propres mains.

Une solution pour empêcher ça consiste a ajouter une "clé" a ton code. Par exemple, la clé peut être simplement l'addition de tous les chiffres dans le code, puis tu rajoutes cette clé a la fin du code. C'est un exemple bien sur, pour que ça fonctionne bien il faut que la clé soit beaucoup plus compliqué. Mais avec ça, les joueurs ne pourront pas créer eux même de code tant qu'ils n'auront pas compris le fonctionnement de la clé (ou même des clés, tu peux en mettre plusieurs).
_________________
- 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
 Rommstein60
MODÉRATEUR À LA RETRAITE


Inscrit le: 23 Aoû 2007
Messages: 4766
Sujets: 136
Spécialité en worldedit: Keskesapeutfout'
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 06/07/08 14:01    Sujet du message: Citer

Ouah OMG ce système de clé je n'y avais jamais pensé O_O
Bah sinon afin de ne pas utiliser ce système y'a une solution toute simple qui consiste à mettre un nombre donné de load autorisé (genre 3) pendant une partie ou bien faire attendre un peu de temps (genre 1-2 minute(s)) entre chaque load.
Après si ton RPG est bien gros, il mettra pas mal de temps à charger, et tu peux également mettre un système empêchant de jouer solo, donc le gars se découragera vite Wink
Sinon je suis tombé amoureux de ton idée j'y avais jamais pensé Very Happy

@TB : je comprends le Jass, même plus qu'un minimum --'
Y'a que le vJass que je comprend pas car j'ai jamais essayé de comprendre et je n'ai jamais essayé d'apprendre comment ça marche.

Je te rappelle que je me suis mis au PHP et ça ressemble énormément au Jass (surtout les fonctions) Wink

_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Magus
Membre a fort taux de post


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


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

Ce n'est pas moi qui y ai pensé non plus hein Very Happy C'est un principe qu'on m'a appris en cryptologie, pendant mes études Surprised

EDIT : Le vjass, par rapport au jass, n'a rien de bien différent. Simplement quelques trucs en plus qui sont souvent monstrueusement utile ! Comme les structures et les librairies.
_________________
- 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.


Dernière édition par Magus le 06/07/08 14:05; édité 1 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: 06/07/08 14:04    Sujet du message: Citer

Citation:
@TB : je comprends le Jass, même plus qu'un minimum --'
Y'a que le vJass que je comprend pas car j'ai jamais essayé de comprendre et je n'ai jamais essayé d'apprendre comment ça marche.

Je te rappelle que je me suis mis au PHP et ça ressemble énormément au Jass (surtout les fonctions) Wink

Amen, alors essaye de l'utiliser pour nous pondre un système de save and load complet.
Ca sera utile à plus d'un.

C'est sûr le vJass ca reste du jass quand c'est compilé et on n'est pas obligé de toute maitriser ses aspects, loin de là, pour en trouver une utilité.
Par contre je trouves qu'il est indispensable de s'intéresser au script généré pour savoir ce que l'on fait.
_________________


Dernière édition par Troll-Brain le 06/07/08 14:09; édité 1 fois
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Rommstein60
MODÉRATEUR À LA RETRAITE


Inscrit le: 23 Aoû 2007
Messages: 4766
Sujets: 136
Spécialité en worldedit: Keskesapeutfout'
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 06/07/08 14:08    Sujet du message: Citer

Tout d'abord ceux qui utilisent le Jass sont entièrement capables de créer leur propre système de save/load, et franchement je vois pas l'utilise puisque Vexorian en a fait un -_-'
Dans ce tuto je veux apprendre les base, le "comment ça marche".

@Master : ok Wink

_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Tutoriels Toutes les heures sont au format GMT + 1 Heure
Aller à la page 1, 2, 3, 4, 5, 6  Suivante
Page 1 sur 6

 
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