Éditeur Warcraft III : Posez vos questions !

Statut
Ce sujet est fermé.
On dirait qu'il manque des lettres à ton clavier (surtout les lettres finales des mots). C'est peut être pour ça que tu n'arrives pas à faire certaines choses...
 
  • J’aime
Réactions: Chamyky
On dirait qu'il manque des lettres à ton clavier (surtout les lettres finales des mots). C'est peut être pour ça que tu n'arrives pas à faire certaines choses...

C'est à moi que tu adresses ce message ? :mouais: :mouais:
Parce que si oui, je ne vois pas le problème d'écrire, par exemple, "ou" comme ça : "où". Je crois que ce n'est pas trop grave...:p Et même, si tu vois le petit nombre de fautes sur tout un message, elles ne sont pas faites exprès et ne sont pas grosses comme des maisons :eek: .
Je suis aussi de l'avis des gens qui trouvent que le langage sms ne doit pas être utilisé sur les forums (voir signature), alors je crois que l'on peut me permettre les fautes comme celle dite précédemment...:mad: :mad:
 
Bonsoir a tous j'ai un petit probleme si vous pourrez m'aidé ce serai bien alors en ce moment je suis a fond dans la maitrise des campagnes personnaliser et il me faudrai reussir une petite chose dedans se serai de metre un chaman en cage,je sais metre un objet en cage fin que quand on detruit la cage il y'ai un objet mais la je voudrai mettre un chaman.Le but de mon histoire est que un Héros se rende dans la base d'un de ses amis et il lui demande de sauver le chaman voila lol bon aprés il faudra que je me perde pas dans les cinematiques car je ni comprend rien:rateau:mais pour le moment mon objectif est le chaman voial merci:D
 
Comme tu veux qu'un shaman apparaisse lorsque cette cage (ici : Cage 0000 <gen>) meurt, et que la fonction du "destructible-qui-laisse-tomber-un-objet" ne fonctionne que pour les objets, tu dois utiliser un trigger (déclencheur) comme celui-ci :

createshamangh2.png


Dans celui-ci, quand la Cage 0000 <gen> meurt, un shaman est créé pour le joueur 1 rouge à l'endroit où la Cage 000 <gen> est morte, avec un angle de 0.00 degrés. (tu peux bien sûr changer les valeurs Joueurs 1 Rouge et l'orientation en degré :) )
Ensuite, après 2 secondes, le mode cinématique sera activé, il y aura un Fade out (écran noir en fondu) qui se fera en 1.50 secondes (temps le plus commun). Après, t'as plus qu'à mettre un autre "wait 1.50 seconds" pour attendre que l'écran soit bien noir, puis tu fait changer la caméra de place en faisant une action "Appliquer camera object for Joueur X over 0.00 seconds." pour appliquer une caméra, mettre les unités à leurs places et face à une autre unité, après tu fais un Fade in over 1.5 seconds en faisant dire qqch depuis une unité et faire ta petite cinématique... Et voilà...
Comme d'habitude, je demanderai quand même la confirmation des mégas-mappers genre Chamyky et BioSS... :) :D

PS : J'espère que tu sauras lire et comprendre quand même mon message, avec toutes les fautes d'orthographes impardonnables que je suis supposé et/ou censé faire... :zen: :zen:
 
C'est à moi que tu adresses ce message ? :mouais: :mouais:
Parce que si oui, je ne vois pas le problème d'écrire, par exemple, "ou" comme ça : "où". Je crois que ce n'est pas trop grave...:p Et même, si tu vois le petit nombre de fautes sur tout un message, elles ne sont pas faites exprès et ne sont pas grosses comme des maisons :eek: .
Je suis aussi de l'avis des gens qui trouvent que le langage sms ne doit pas être utilisé sur les forums (voir signature), alors je crois que l'on peut me permettre les fautes comme celle dite précédemment...:mad: :mad:

Décidément ici personne ne se comprend :D !

Ou alors la plupart manque d'yeux... tu n'as pas vu, juste avant le message de reproches justifiés de PER180H, la petite ligne "Message supprimé (Motif : Soigne ton écriture)" ?
 
Ou alors la plupart manque d'yeux

Personnellement j'ai jamais vu Dieu xD

Voilà c'était la ptite blague du jeudi matin "^_^

Sinon pour ce qui est de la réincarnation si médaillon et tout ça, le [Triggering unit] marche car il cible bien l'unité qui déclenche le déclencheur (hu) mais j'aurai plutôt utilisé (par suchi de clarté) un [Hero using object] mais bon, c'est peut-être que j'suis bizarre... :siffle:

Je m'posais une pitite question par contre :)
Est-il possible d'attribuer des mises à jour (comme Epées de fer, etc...) seulement à un groupe d'unités contrôlées par un joueur (à un groupe d'unités qui contient des types d'unités partagés par d'autres groupes d'unités de ce joueur)
Ok c'est peut-être pas très clair :rose:

J'aimerai en fait que toutes les unités d'un type ne bénéficie pas de l'amélioration recherchée par le joueur :zen:

Merchi d'avance !
 
Là, c'est pas un déclo, mais une donnée d'unité que tu dois changer. Tu vas dans l'éditeur d'objet<unités<Arbre des technologies - Amélioration Utilisées [première ligne].
Et là, tu change la valeur.
Exemple :

1°)Tu fais une copie des fantassins.

2°)Tu veux que seulement les fantassins ORIGINAUX du joueur et pas les COPIES ne puissent pas avoir l'amélioration, qui serait ici : "Armure de fer" .

3°)Tu efface la donnée "Armure de fer" dans la première ligne.

Conclusion : Quand un joueur fera mettre à jour les fantassins, seules les fantassins ORIGINAUX l'auront. Les fantassins copiés dont l'amélioration "Armure de Fer" aura été éffacée, eux, ne la receveront pas...

EN IMAGES :

amliorationlk7.png

_________________________________________________________________
fantassincopirc5.png

_________________________________________________________________
puis tu rajoute ce trigger :

triggerameliorationvu4.png


Il fera que quand un batiment commence la recherche (ou mise à jour :confused: ) armure de fer, 5 unités du joueur 1 de type "fantassins" seront changées par des copies qui ne recevreront pas l' amélioration, et ce sans que le joueur s'en apercoive.
Tu peu chnger le nombre d'unité qui ne recevront pas l'amélioration. Tu peu aussi ajouter des autres types de créatures en ajoutant l'action "pick every units in (random X units from (joueur 1 rouge of type XXX))"

Et voilà !!!!!!! :up: :up: :up:
 
merci beaucoup shadow of death pour ton conseil avec le chaman:love:et comme je suis chiant je vais demander autre chose c'est que j'ai testé ma campagne(fin le début) et j'ai fait exprés de perdre et malheuresement l'ordi ne m'est pas défaitemais quand je gagne il me met vous avez gagner,continuer,quitter ect ect,pour gagner il faut aller dans le port et pour perdre il faut que le héros(qui est un prophete et qui se nomme Wolfrabid :D) meurt est quand il meurt ba sa dit pas qu'on na perdu.
Autre probleme c que moi qui est pas trés doué dans les déclencheur je ne sais pas comment mettre le fait que si l'on tue une certaine unitées une porte s'ouvre et mettre cette porte invulnerable aussi se serait mieu.et j'avais une autre question mais je m'en souvien plus :rose:hum lol
 
Bonsoir,

J'ai télécharger un mini-jeux du nom de : WoW Molten Core (non pas la version bêta de ruhe mais une version améliorée).
Durant le chargement de la map, il est indiqué qu'on peut sauver et charger son héros, seulement, aucune note n'est laissé à ce sujet..
J'ai donc tout bonnement tapé un -save qui ne marche pas bien entendu. :siffle:
J'ouvre la carte avec l'éditeur, et j'ai remarqué cette ligne :

Load Game Cache :
-Evenements : Map initialization
-Actions : Cache du jeu - create a game cache from localvars.w3v
Set hash = [last created game cache]

J'ai essayer d'ouvrir une autre carte "Ragnaros" où marche le -save et -load mais impossible d'ouvrir avec le message d'erreur suivant : données unité manquantes ou invalides.. du coup je n'ai pas pu copier bêtement la solution :D.

Si vous pouviez m'aider :rose:
ma question, que doit-on ajouter pour pouvoir sauvegarder et charger son héro?.

S'il vous plaît, éclairer ma lanterne :D
Merci pour votre attention:zen:
 
Huhu merci TSoD seulement si je dois faire ça avec toutes les unité que j'ai créées je vais devoir recréer une 120aine d'unités :mouais: J'pense qu'il y a plus optimisé "^^

J'avais pensé à autre chose sinon, ce serait de faire en sorte que la Mise à jour ne s'applique à aucune unité, mais de régler une compétence créée à partir d'une Compétence - Objet comme Bonus aux dégâts, etc...
Compétence que j'assignerai directement aux unités concernées quand la recherche est terminée.
On obtiendrait :

Evènements
A unit Finit le lancement d'une recherche (je sais plus si ça existe ça :rose: au pire je fais Commence au lieu de finit et rajoute un Wait X au début des actions)

Conditions
(Researched tech-type) Egal à Le nom de l'amélioration

Actions
Groupe unité - Pick every unit in (Le groupe d'unités à améliorer)
/*en vrai je vais utilier un code un peu plus complexe ici car il faut que je teste que l'unité est d'un type précis en plus d'être dans le groupe*/
Unité - Add (Compétence augmentation de dégâts) to (Picked Unit)

Et wala ça devrait marcher :)

@ MJ-Atool : Si c'est une map que tu joues en ligne, les données (comme un héros par exemple) ne peuvent pas être sauvegardées dans un Game cache, le seul moyen de le récupérer est de taper un code que l'on te donne quand tu quittes la map"^^ donc ici le déclencheur que tu as trouvé est inutile :o
Si c'est une map solo, dans ce cas il va falloir fouiller un peu dans les variables :siffle: Il va falloir essayer de trouver une variable de type Héros ou Héros-déploiement comme ça tu auras le nom de la variable.
Une fois le nom de la variable de ce type trouvé, tu vas devoir rechercher dans les déclencheurs si à un moment il y a un déclencheur du type :

Actions
Game Cache - Restaure (Unit) from (hash)
Set (Le nom de la variable Héros) = (
Last Restaured Unit)

Ce qui va faire que ton Héros va être restauré et enregistré dans la variable Héros

Il est possible également qu'il n'ait pas créé de variable Héros et qu'il opère directement dans ses déclencheurs comme il peut sans utiliser cette variable, mais là c'est bien pour nous embêter :P

En tout cas, cherche un
Game Cache - Restaure (Unit) from (hash)


@wolfrabid :

Evènements
Wolfrabid dies

Actions
/*Wait X seconds*/
Partie - Defeat (Le joueur que tu veux voir perdre, joueur 1 je pense "^^) with the message : Le message que tu veux marquer (pas trop long hein)

Wala...

 
@Wolfrabid :
Pour que la porte s'ouvre quand l'unité meurt, tu dois utiliser ce trigger :

Bloc de code:
Evenements
- [I](l'unité que tu veux[/I]) meurt.
Conditions
Actions
- Destructible - Open ([I]porte que tu veux[/I])

voilà pour ouvrir la porte. :up:
Et pour la rendre invulnérable : Tu vas dans l'éditeur d'objet<destructibles<[où tu peux choisir comment est ciblée la porte (initialement, il y a débris, destructible,...)] et là tu décoche tout et tu coche la case Invulnérable. Ainsi, le joueur peut cliquer dessus avec le clic gauche, mais pas avec le clic droit !!! ;) :D
Bon je continuerai plus tard, je suis sur un ordi a l'école.... a+
 
encore merci shadow of death, invulnerabilité de la porte j'avais trouvé mais est ce que tu pourrai(encore ^^)m'aider dans les déclencheur,mon déclencheur de victoire fonctionne c'est bon mais mon déclencheur de défaite ne fonctionne pas donc cela m'embete(pour perdre il faut que le héros meurt)
 
Bonjour, quelqu'un sait comment donner à un batiment particulier l'orientation qu'on veut ?
Il s'agit d'un objet dont le fichier modèle est un doodads et du coup l'orientation par défaut est 225, moi je voudrai 270 = face vers le bas.
 
Bonjour,

Tout d'abord merci de m'aider highlandsbaron :)

Voici ce que j'ai trouvé :

Generate Code:

Nummer på bokstaven.

1 = First letter in User Name (Scrambled+2)
2 = Herotype
3 = Second letter in User Name (Scrambled+3)
4 = Item in slot 1
5 = Third letter in User Name (Scrambled+5)
6 = Item in slot 2
7 = Last letter in User Name (Scrambled +1)
8 = Item in slot 3
9 = Näst sista bokstaven i User Name (Scrambled-1)
10 = Item in slot 4
11 = Item in slot 5
12 = Item in slot 6
-------------------------------------------------------

function GetPlayersInGame takes nothing returns integer
local integer playerIndex
local player indexPlayer
local integer number = 0

set playerIndex = 0
loop
set indexPlayer = Player(playerIndex)
if ((GetPlayerSlotState(indexPlayer) == PLAYER_SLOT_STATE_PLAYING) or (GetPlayerSlotState(indexPlayer) == PLAYER_SLOT_STATE_LEFT)) and (GetPlayerController(indexPlayer) == MAP_CONTROL_USER) then
set number = number + 1
endif

set playerIndex = playerIndex + 1
exitwhen playerIndex == bj_MAX_PLAYER_SLOTS
endloop

set indexPlayer = null

return number
endfunction

function Trig_SAVE_Conditions takes nothing returns boolean
if (GetPlayersInGame() == 1) then
return false
elseif (udg_heroes[GetPlayerId(GetTriggerPlayer())+1] == null) then
return false
endif
return true
endfunction

function Trig_SAVE_Actions takes nothing returns nothing
local integer sforce = GetRandomInt(1,59)
// Scramble Force
set udg_TempString = ScrambleLetter(udg_letters[0], sforce)
// First letter in Player Name
set udg_TempString = udg_TempString + ScrambleLetter(SubStringBJ(GetPlayerName(GetTriggerPlayer()), 1,1), sforce)
// Hero Type
set udg_TempString = udg_TempString + GetSaveHeroType(GetPlayerId(GetTriggerPlayer())+1, sforce)
// Second letter in Player Name
set udg_TempString = udg_TempString + ScrambleLetter(SubStringBJ(GetPlayerName(GetTriggerPlayer()), 2,2), sforce)
// Item in 1st Slot
set udg_TempString = udg_TempString + GetSaveItemType(GetPlayerId(GetTriggerPlayer())+1, 1, sforce)
// Third letter in Player Name
set udg_TempString = udg_TempString + ScrambleLetter(SubStringBJ(GetPlayerName(GetTriggerPlayer()), 3,3), sforce)
// Item in 2nd Slot
set udg_TempString = udg_TempString + GetSaveItemType(GetPlayerId(GetTriggerPlayer())+1, 2, sforce)
// Last letter in Player Name
set udg_TempString = udg_TempString + ScrambleLetter(SubStringBJ(GetPlayerName(GetTriggerPlayer()), StringLength(GetPlayerName(GetTriggerPlayer())),StringLength(GetPlayerName(GetTriggerPlayer()))), sforce)
// Item in 3rd Slot
set udg_TempString = udg_TempString + GetSaveItemType(GetPlayerId(GetTriggerPlayer())+1, 3, sforce)
// Ex-last letter in Player Name
set udg_TempString = udg_TempString + ScrambleLetter(SubStringBJ(GetPlayerName(GetTriggerPlayer()), StringLength(GetPlayerName(GetTriggerPlayer()))-1,StringLength(GetPlayerName(GetTriggerPlayer()))-1), sforce)
// Item in 4th Slot
set udg_TempString = udg_TempString + GetSaveItemType(GetPlayerId(GetTriggerPlayer())+1, 4, sforce)
// Item in 5th Slot
set udg_TempString = udg_TempString + GetSaveItemType(GetPlayerId(GetTriggerPlayer())+1, 5, sforce)
// Item in 6th Slot
set udg_TempString = udg_TempString + GetSaveItemType(GetPlayerId(GetTriggerPlayer())+1, 6, sforce)
// Hero-Level
set udg_TempString = udg_TempString + ScrambleLetter(udg_letters[GetHeroLevel(udg_heroes[GetPlayerId(GetTriggerPlayer())+1])], sforce)
// Item Bool
if (UnitInventoryCount(udg_heroes[GetPlayerId(GetTriggerPlayer())+1]) > 0) then
set udg_TempString = udg_TempString + ScrambleLetter(udg_letters[52], sforce)
else
set udg_TempString = udg_TempString + ScrambleLetter(udg_letters[GetRandomInt(0,51)], sforce)
endif

call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0,0,50, "Saved. To load, type:")
call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0,0,50, "-load " + ColorString(udg_TempString))
call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0,0,50, "You can only load from the same profile(name) again.")
call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0,0,50, " ")
call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0,0,50, " ")
call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0,0,50, " ")
endfunction

//===========================================================================
function InitTrig_SAVE takes nothing returns nothing
set gg_trg_SAVE = CreateTrigger( )
call TriggerAddAction( gg_trg_SAVE, function Trig_SAVE_Actions )
call TriggerAddCondition(gg_trg_SAVE,Condition(function Trig_SAVE_Conditions))
endfunction

j'ai pas compris grand chose à part que c'est grâce à sa que j'aurai le code une fois sauver.. :confused: il y a un texte pour load aussi que je vous épargnerais :hein:

Init

Evements : Map initialization
Action :
Cache du jeu - Create a game cache from WoWMCSave.w3v
Set savedhash = (last created game cache)
Cache du jeu - Reload all game cache date from disk


Boucle - Actions :
Déclencheur - Add to SAVE <gen> the event [Joueur - (Picked player) types a chat message containing -save as Résultat équivalent]
Déclencheur - Add to LOAD <gen> the event [Joueur - (picked player) types a chat message containing -load as Une sous-chaîne]

--SAVE Heroes--


Set SAVE_Hero[0] = Human lcFFFF80COPaladinlr (et ainsi de suite pour chaqu'un des héros)

Voilà c'est tout ce que j'ai trouvé concernant ce fameux SAVE :rateau:
C'est une map qui se joue en ligne, je souhaiterai comprendre comment sauvegarder et si on le peut vraiment ? sinon comment rajouter cette fonction si possible.. :heu:

Désolé pour le flood :eek: et Merci Beaucoup de vôtre aide :love:
 
Bonjour à tous,

@ The Shadow... :
Je te remercie pour tes conseils concernant la résurrection de mon héro, cela fonctionne à merveille :up:

Une fois que l'on a compris un déclencheur on se dit : mais c'était évident !
Le seul problème, c'est que lorsqu'on cherche, on essaie tellement de choses qu'à la fin, l'évidence n'est justement plus aussi évidente ;)

Merci encore.

Bon, je me replonge dans ma map, j'aurai sûrement encore des questions qui vont surgir :siffle:

Cordialement,

Didier_
 
Re,

@ Inside :
Bonjour, quelqu'un sait comment donner à un batiment particulier l'orientation qu'on veut ?
Il s'agit d'un objet dont le fichier modèle est un doodads et du coup l'orientation par défaut est 225, moi je voudrai 270 = face vers le bas.
Sauf erreur de ma part, une fois ton doodad ajouté sur ta map, tu fais un double-clic dessus, puis tu sélectionnes l'orientation (c'est le second champ, il est en dessous de "Variation"), tu entres ta nouvelle valeur au clavier avant d'appuyer sur entrée.
Voilà, c'est fait ! ;)

Cordialement,

Didier_
 
Statut
Ce sujet est fermé.