CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS
Forum
  • Accueil
  • Actus
  • Tests
  • Vidéos
  • Images
  • Soluces
  • Forum

Sujet : AIDE pour editeur de niveaux et astuces

News culture
La Planète des Singes : Le Nouveau Royaume - la révolution simienne est en marche !
DébutPage précedente
1
Page suivantePage suivante
gazbouille91 gazbouille91
MP
Niveau 6
28 septembre 2012 à 12:35:19

bonjour,a tous moddeur en herbe et professionnels

je laisse ce petit message pour trouver les infos ou astuces ou liens qui manqueraient pour aidez a la création de niveaux

:d) 1er question:j essais de crée une porte qui puisse s'ouvrir en déposant un objet ou plusieurs bien spécifique dans une niche (une fiole d'eau dépose ou une arme etc)?
:d) 2ém :la possibilité de crée un nouveau piège exemple
la trappe qui faire sortir des épieux ou la bouche de statue qui lance des flèches de tout type
:d) 3ém: la possibilité de crée d'autres monstre ou objet
(momie,élémentaire divers eau feu terre, dragon ,
objet: pain, fromage gigot, pièces d'or,tableaux,fontaine etc.....
merci pour toute l'aide apporte si quelqu'un connait un site en français sur le sujet qu il n hésite pas a me le faire connaitre

merci a tous

gazbouille91 gazbouille91
MP
Niveau 6
30 septembre 2012 à 20:56:36

première astuce découverte

pour les escalier il faut bien respecter les cases
du niveau supérieur et inférieur qui doivent correspondre il n y a pas de programmation
pour se repérée ou il faut compté ou s’aider des touches pages up et page down

j’espère avoir aidez n hésitez pas a donnez vos infos
surtout pour les scriptes

Lemexis Lemexis
MP
Niveau 10
04 octobre 2012 à 00:21:48

J'ai vraiment du mal avec les scripts...
Est-ce que quelqu'un peut me coller ici une version modifiée du script "item on an alcove", sauf qu'au lieu de faire le son "level up", ça ouvre une porte, svp ?
Et est-ce que c'est possible de faire en sorte que ça marche avec un objet spécifique et pas générique (genre avec la brass_key_1 et pas juste une brass_key)?

bachus1974 bachus1974
MP
Niveau 7
04 octobre 2012 à 11:49:54

salut lemexis merci pour ton teste de mon donjon

si tu veux que je t aide pour les scripts pas de probleme post ton script et j essayerai de verifier les erreurs

a+++++

Atticusss Atticusss
MP
Niveau 7
04 octobre 2012 à 20:00:23

salut, pour l'editeur comment supprimer un element ? Supprimer une case avec le clic droit ok, mais supprimer un levier, ou autre ça se passe comment? merci

alouki alouki
MP
Niveau 1
09 avril 2014 à 22:19:47

salut salut

je pense que je poste cela très tard, mais j'ai pas mal de solution a ces problèmes,

ajouté moi sur steam (pseudo: shiruto)

depuis le temps, je sais pas si vous avez trouvé les astuce, mais s c'est toujours d'actualité, je me ferais un plaisir de partager un maximum

Alzaynor Alzaynor
MP
Niveau 38
10 avril 2014 à 00:17:15

2 ans plus tard sur un forum mort... C'est même pas de l'espoir à ce niveau là, c'est de la foi.

Chevels Chevels
MP
Niveau 16
17 avril 2014 à 12:02:29

Tu m'étonnes!

En tous cas c'est sympa de proposer ton aide alouki; cependant, sur un forum, une aide n'a d'utilité que si on l'expose directement sur le forum de manière à ce que l'info y soit toujours 10 ans après. Tandis que si on te contacte dans plusieurs années via Steam par exemple, c'est pas dis que tu saches encore répondre^^ Ni que tu sois encore dispo pour cela.

Bonne fin de journée :)

logidrake logidrake
MP
Niveau 1
15 mai 2014 à 20:03:41

Bonjour a tous. J'ignore si mes réponse vont vous être utiles vu l'ancienneté des question mais peut-être que cela aidera d'autres personnes se posant les mêmes question.

"1er question:j essais de crée une porte qui puisse s'ouvrir en déposant un objet ou plusieurs bien spécifique dans une niche (une fiole d'eau dépose ou une arme etc)?"

pour réaliser ça, tu auras besoin d'utilisé l'élément script_entity qui est rangé dans l'onglet logic.

script_entity (c'est le petit "lua")est une zone de texte vide ou tu dois taper le code que tu veux effectuer(en langage lua).Voici un lien expliquant comment coder:
http://www.grimrock.net/modding/
vous pouvez aussi y accéder en cliquant sur "help" dans l'éditeur de donjon.
Pour les anglophobe et/ou ceux que la programmation n'intéresse pas je vais essayer d'éxpliquer comment réaliser une porte qui ne s'ouvre que si un objet spécifique est déposé sur un autel/une alcove.

dans cet exemple, je veux que ma porte en bois ne s'ouvre que si je dépose une dague sur un autel.

Dans un premier temps, je créée ma porte, je modifie son identité(ID, sous le nom, chaque ID doit être unique, le jeu génère lui-même des ID unique, mais mieux vaut les modifier si vous voulez éviter de vous retrouver avec des dungeon_secret_door_136 qui sont pas vraiment explicite)

Donc je renomme ma porte en "porte_pour_autel"(a noter que les seuls caractères acceptés pour un ID sont les lettres, les chiffres et les _ (il me semble)).
Je créée ensuite mon autel que je nomme tout connement "autel"
je créée ma dague. on ne change pas le nom de la dague car n'importe quelle dague fera l'affaire, nous allons utiliser son nom, pas son ID
je vais maintenant cherché le script_entity et le place dans les environs
( le script_entity se comporte comme un timmer, l'endroit où il est placé n'a aucune importance, mais pour des question de lisibilité, il es recommandé de le placer dans la zone concernée)
Maintenant qu'on a tout ce qu'il nous faut, on va pouvoir commencer, enfin presque: Même si vous avait des bases en programmation, vous ne savez peut-être rien du langage lua(mais avec quelques exemples, vous comprendrez vite)ainsi que les référence du scrip, pour faire simple, je dois trouver les commandes que les dev's du jeu utilisent pour faire tel ou tel action et pour ça, il faut un peu de doc. Tenez, c'est gratuit:
http://www.grimrock.net/mt/modding/scripting-reference/
Hep! Revenez! Ce qui nous intéresse ici, c'est ça:

Altars share the same scripting API with Alcoves.
(les autels ont les même commandes que les alcôves)
Hop! on regarde les alcôves:

Alcove:containedItems()
Returns an iterator for items contained in the alcove.
(quand on appel la fonction, elle renvoit la liste des éléments dans l'alcove)

Ah et il faut aussi la doc des portes:
Door:open()
Opens the door.

Et là, vous vous dite "Taiiiiin mais je comprend rieeeeen, de quoi il parle?"

Je récapitule:
ma porte:porte_pour_autel
mon autel:autel
ma dague:on en a rien a foutre

Hop! un script vaut mieux qu'un long discours:

function AutelPuzzle()
for i in autel:containedItems() do
if i.name == "dagger" then
porte_pour_autel:open()
end
end
end

Nan mais attendez que j’explique avant de partir!

ce gros bidule incompréhensible, c'est ce que vous allez écrire dans la zone de texte de votre scrip_entity, je vais expliquer le programme ligne par ligne:

function AutelPuzzle()
---
on créée une fonction qui s'éxécutera chaquefois qu'on activera le script_entity je l'ai appelé AutelPuzzle mais vous pouvez l'appeler comme vous voulez.

for i in autel:containedItems() do
---
ici, il faut comprendre que autel:containedItems() est une liste, c'est la liste des objets qui sont sur l'autel.
ici, il faut comprendre "Pour i prenant successivement chaque valeur de la liste, faire:"

if i.name == "dagger" then
---
Donc i va prendre toutes les valeurs des objets sur l'autel.
il faut comprendre:"Si le nom de l'objet i est égal à dagger, alors:"

porte_pour_autel:open()
---
j'ai vraiment besoin d’expliquer là?...

end sert a signaler la fin de ma boucle, ainsi, le premier end ferme le "if" ansi, le reste du programen'est pas pris en compte, le deuxieme end ferme la boucle for et le dernier clos la fonction AutelPuzzle ( les espaces dans le programme ne sont pas là pour faire joli, si vous ne décalez pas votre code quand vous faites un for ou un if, le programme ne marchera pas)

Votre programme est écrit, mais il reste une toute dernière chose a faire, l'activer! pour ce faire, sélectionnez simplement votre autel et connectez-le au script_entity

Ainsi a chaque fois que l'autel sera activé(c'est à dire que vous placez un objet sur l'autel alors que celui-ci est vide)
il activera votre petit programme qui ouvrira la porte si l'objet dague se trouve dessus. Pour améliorer le tout, cochez la case "alwaise activate" de votre autel, ainsi, il activera le programme chaque fois que vous ajouterez ou enléverez un objet

ATTENTION, ce programme est minimaliste c'était plus pour vous expliquer comment ça marche

Voici mon programme qui fait également se fermer la porte si l'objet est retiré de l'autel et joue une petite note lorsque vous mettez le bon objet sur l'autel:

function AutelPuzzle()
a=0
for i in "ID de votre autel":containedItems() do
if i.name == "dagger" then
playSound("level_up")
a=1
break
end
"ID de votre porte":close()
end
if a == 0 then
"ID de votre porte":close()
else
"ID de votre porte":open()
end
end

Voilà, c'est tout pour la question 1

pour ce qui est de la question/question:

Il est possible de créer des objets et des monstres ça peut être très simple comme une copie d'un objet déjà existant dont on modifie quelques stats ( comme les dégâts ) à des choses plus complexe avec un peu de programmation (comme faire des œufs d'araignée qui, lorsque détruits, font apparaître une araignée, une dague permettant de tuer un champion pour résoudre un puzzle)ou en modifiant l’apparence( ça revient a bidouiller les stats comme dans un cas simple, sauf qu'on parle ici de texture et d'animation ce qui est plus compliqué qu'un simple nombre de dégât)

Mais j’expliquerais comment créer des objets une autre fois (et quand je serais sur d'avoir bien comprit comment ça fonctionne)

Désolé pour le pavé et l’explication un peu décousu, si vous avez des question, répondez dans la discussion que tout le monde puisse en profiter

logidrake logidrake
MP
Niveau 1
15 mai 2014 à 20:18:11

Désolé pour le double post, les programmes ne sont pas indenté(les décalages entres les lignes de codes)

Donc, le code le plus simple possible:

https://www.noelshack.com/2014-20-1400177643-tuto-simple-log.png

Et un autre avec un zouli son et qui ferme la porte quand vous enlevez l'objet:

https://www.noelshack.com/2014-20-1400177353-tuto-log.png
désolé pour

Chevels Chevels
MP
Niveau 16
15 mai 2014 à 23:29:17

Salut et merci à toi logidrake pour ces précisions! Il y a fort à parier que ton post servira à quelqu'un un jour ou l'autre :ok:

logidrake logidrake
MP
Niveau 1
16 mai 2014 à 08:28:55

Pas de quoi :)
j'ajoute également ceci pour compléter:

“name” retourne le name de l'entité
“id” retourne l'ID unique de l'entité
“x” returns the x-coordinate of the entity on the map
“y” returns the y-coordinate of the entity on the map
“facing” retourne l'orientation de l'entité, (0=nord, 1=est, 2=sud, 3=ouest)
“level” retourne le "level" de l'entité ( l'étage )
“class” returns the class name of the entity

Et comme je vois que quelqu'un a posé la question:

Et est-ce que c'est possible de faire en sorte que ça marche avec un objet spécifique et pas générique (genre avec la brass_key_1 et pas juste une brass_key)?

Si tu veux que ton autel ne s'ouvre qu'avec un objet précis, tu remplace
if i.name == "dagger" then
par
if i.id=="*id de l'objet*" then

dans le cas d'une serrure, je ne crois pas que ce soit aussi simple, il faudrait créer ta propre serrure.

la prochaine fois que je passerais, j’expliquerais comment faire un tremblement de terre

logidrake logidrake
MP
Niveau 1
17 mai 2014 à 12:27:52

Certains se demandent comment faire un tremblement de terre, voici comment ça se passe:

--On commence par créer ce qui va activer l'event, (une plaque de pression cachée par exemple)que l'on va relier a un script_entity.

--On commence a rédiger notre petit script

---------1) secousses
Vous avez sagement parcouru la doc de LoG et donc vous savez comment faire trembler la caméra:

party:shakeCamera(*intensité*, *durée*)

-l'intensité est un nombre indiquant l'intensité des secousses, à noter que vous pouvez entrer un nombre décimal.
-la durée est exprimée en secondes

---------2) sond
En parcourant la liste des sons prédéfinis:
(http://www.grimrock.net/modding/list-of-predefine
d-sounds/),
on trouve le son du tremblement de terre:"earthquake"
nous ajoutons donc au script:
playSound("earthquake")

Seulement voilà, problème:le son tourne en boucle toute les 8 secondes. Ce n'est pas un bug, le son du tremblement fourni est une boucle. Il va nous falloir contourner le problème en créant notre propre son!

Pour ce faire, on commence par chercher le dossier mod_assets se trouvant dans chacun des dossiers de vos donjons. Dedans, on ouvre le dossier script, puis on ouvre sounds avec n'importe quel traitement de texte (bloc-note suffit).
A l'intérieur, on écrit:

defineSound{
name = "earthquakestop",
filename = "assets/samples/env/earthquake_01.wav",
loop = false,
volume = 1,
minDistance = 1,
maxDistance = 6,
}

https://www.noelshack.com/2014-20-1400317079-log-sound-earthquake.png

en résumé, on créée un son nommé earthquakestop, qui a le même fichier son que earthquake et qui ne reboucle pas toutes les 8 secondes (loop=false)

sauvegardez le fichier et rouvrez votre éditeur pour qu'il puisse intégrer le nouveau son.

maintenant il ne vous reste plus qu'a faire:

playSound("earthquakestop")

A noter que le son s’arrête abruptement au bout des 8 secondes, je n'ai pas encore trouver comment faire un dégradé( qui s’effectue normalement avec la fonction Fade())
pour compenser cela, sachez que vous pouvez superposer ce son plusieurs fois. par exemple, si vous le lancez 3 fois a une seconde intervalle, vous allez avoir un son qui va s'amplifier 2 fois a une seconde d'intervalle, puis rester constant 6 secondes avant de diminuer. en superposant beaucoup de fois le son, vous pouvez avoir un dégradé asse propre en diminuant le volume de votre son quand vous le créez : "volume = 0.3," par exemple.

---------3.1) poussière

il ne vous reste plus qu'un peu de poussière a ajouter pour avoir un tremblement de terre très convainquant, un dernier effort!

Nous allons utiliser le script de référence FX pour faire apparaître les particules:

FX:setParticleSystem(name)
Sets the particle system to be played when the FX is first updated.(En gros, fx fera apparaitre la particule quand il le créra a la mainère d'un objet)

En regardant la liste des particules on trouve ce que l'on cherche :earthquake_dust

"Comment ça marche??" Fx est considéré comme un objet à faire apparaître,en regardant la liste des particules on trouve ce que l'on cherche : on va donc utiliser la fonction spawn:

Entity Management

spawn(object, level, x, y, facing, [id])

(traduction rapide de la description:)Créer l'objet indiqué aux coordonnées, level et orientation indiqué, l'ID est optionnel, si rien n'est saisi, l'éditeur générera un ID unique automatiquement

Doooooonnnnnnc, pour faire apparaître une particule de poussière aux coordonnées désirées :

spawn("fx",party.level,x,y,facing):setParticleSyst
em("earthquake_dust")(vous
devez remplacez x,y,facing par ce que vous desirez, vous pouvez également remplacer party.level qui permet de toujours sélectionner le level ou se trouve votre groupe.)

Je précise que comme pour les sons, ces particules peuvent se supperposer si vous vouler plus ou moins de poussières.

------------3.2)petites astuces
Vous avez la flemme de créer 15 poussières a des coordonnées bien précises?

Ce script permet de faire apparaître la poussière sur toutes les cases dans un carré de 10 cases centré sur le groupe:

for i = -5,5 do
for j = -5,5 do
spawn("fx", party.level, party.x+i, party.y+j, 0):setParticleSystem("earthquake_dust")
end
end
https://www.noelshack.com/2014-20-1400319740-log-earthquake-square.png

Pour rendre les choses un peu plus cool, il est recommander d'utiliser un assemblage timmer/compteur pour lancer plusieurs fois le son et les poussières

Voila, Etant donné que le titre du topic est « AIDE pour editeur de niveaux et astuces » je me suis dit que je pouvais peut-être aider. Si des personnes intéressés pour en apprendre plus se manifestent, je continuerait a poster des tuto ciblés anglophobes. Si vous avez des questions, n'hésitez pas!

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : Evilash08, Vortex646, Tomy-Fett, Leirok, ]Faustine[, Latios[JV], Remysangfamy
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

  • Aucun sujet à ne pas manquer
La vidéo du moment