×

Langue

Fermer
Atelier 801
  • Forums
  • Dev Tracker
  • Connexion
    • English Français
      Português do Brasil Español
      Türkçe Polski
      Magyar Română
      العربية Skandinavisk
      Nederlands Deutsch
      Bahasa Indonesia Русский
      中文 Filipino
      Lietuvių kalba 日本語
      Suomi עברית
      Italiano Česky
      Hrvatski Slovensky
      Български Latviešu
      Estonian
  • Langue
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • [Aide] Demandes de codes et d'explications
« ‹ 68 / 70 › »
[Aide] Demandes de codes et d'explications
Leshamane
« Citoyen »
1499191800000
    • Leshamane#0000
    • Profil
    • Derniers messages
    • Tribu
#1341
  0
A la ligne 4 du code ya déjà un soucis :
a dit :
sourialpX = tfmgetroomPlayerList[sourialp].x

Tu as oublié les points, ton code ne risque pas de fonctionner, modifie le comme ça et pourquoi tu met sourialp entre les [] tu as créer une variable qui stock ton nom, qui est 'hacker', utilise là :
a dit :
sourialpX = tfm.get.room.PlayerList[hacker].x

Ensuite dans ta fonction :
a dit :
for name,player in pairs(tfm.get.room.playerList) do
eventNewPlayer(name)
end

Quand tu fais 'for name,player', le 'name', est ce qu'on appel une 'key', c'est comme une variable, dans cette boucle tu liste un objet, qui lui contient des infos comme 'playerName' et cette objet tu le récupère dans ta valeur, donc dans 'player', alors tu dois faire :
a dit :
for name,player in pairs(tfm.get.room.playerList) do
eventNewPlayer(player.playerName)
end

Après ta condition, essaie de modifier plus comme ça :
a dit :
if sourialpY>0 and sourialpY<800 and sourialpX>0 and sourialpX<2000 and key==32 then

Et pour tes admins, fait un tableau, c'est plus simple à modifier :
a dit :
admin["sourialp"] = {AdminCheck=true}

Comme ça si tu veux faire une commande par exemple '!AddAdmin PlayerName' pour add des admins, que seul les admins pourraient utiliser tu fera, au moins tu modifiera pas le code à chaque fois, et tu pourrais faire des options spécial admin comme ça :
a dit :
function eventChatCommand(playerName, message)
if string.sub(message, 0, 7) == "AddAdmin" and admin[playerName].AdminCheck then
admin[string.sub(message, 9)] = {AdminCheck=true}
end

Petite info, comme tu peux le voir dans ce if (Je préfère te l'expliquer car j'ai l'impression que tu débute en programmation) pour vérifier une boolean on est pas obligé de mettre de mettre '== true', le fais de faire 'if varBool then --varBool est une variable de type bool' suffit à checker si il est true, si tu veux check le false, il te suffira de faire un 'if not varBool then'.

Ce sont des exemples, tu n'es pas obligé de suivre à lettre, fais ce que tu veux, je te mâche pas mal le taff, je te conseille de te documenter sur le lua, ça pourrais pas mal te servir ;)

Dernière modification le 1499195460000
Sourialp
« Citoyen »
1499197740000
    • Sourialp#0000
    • Profil
    • Derniers messages
    • Tribu
#1342
  0
merci ^^
bah je connais déjà l'api, mais je ne mis retrouve plus bien dedans, j'ai été habitué a l'ancienne version X)
et vue que je n'utilise le lua que sur tfm ce n'est pas quelque choses que je cherche bc et que je suis un peut perdu dés fois XD

Mais merci de ton aide c super,
peut etre est tu intéresser de le développer avec moi si sa te tente (le module)
(pas que toi bien sur je t'aiderai, je ne suis pas paumé en tout, mais c vrai que les table c pas mon fort XD )
Leshamane
« Citoyen »
1499236860000
    • Leshamane#0000
    • Profil
    • Derniers messages
    • Tribu
#1343
  0
Pas de soucis, je t'ai MP concernant ton module.
Bitouf
« Citoyen »
1501879080000
    • Bitouf#0000
    • Profil
    • Derniers messages
    • Tribu
#1344
  0
[edit]
Non rien

Dernière modification le 1501881600000
Shenato
« Citoyen »
1502973180000
    • Shenato#0000
    • Profil
    • Derniers messages
    • Tribu
#1345
  0
Hello, besoin d'aide...

Ce code devrait normalement mettre les pseudos des joueurs dans la table players qui contient déjà "love". //Fonctionne
quand le module se lance, il devrait print le nombre de chose dans la table //Fonctionne
quand un joueur se transforme en vamp, il devrait supprimer le nom du joueur de la table et print le nom de chose restant dans la table // Pas ok...

a dit :
function main ()
players = {"love"}

for _, name in pairs(tfm.get.room.playerList) do
table.insert(players,name)

end
print (#players)
end

function setVampirePlayer(name)
table.remove(players,name)
print(#players)
end

function eventChatCommand(name,message)
if message == "vamp" then
tfm.exec.setVampirePlayer(name)
end
end


main()

Si quelqu'un a une idée de ce qui ne fonctionne pas, je suis preneur ^^' Merci !
Athesdrake
« Citoyen »
1502992260000
    • Athesdrake#0000
    • Profil
    • Derniers messages
    • Tribu
#1346
  0
Shenato a dit :
Hello, besoin d'aide...

Ce code devrait normalement mettre les pseudos des joueurs dans la table players qui contient déjà "love". //Fonctionne
quand le module se lance, il devrait print le nombre de chose dans la table //Fonctionne
quand un joueur se transforme en vamp, il devrait supprimer le nom du joueur de la table et print le nom de chose restant dans la table // Pas ok...

a dit :
function main ()
players = {"love"}

for _, name in pairs(tfm.get.room.playerList) do
table.insert(players,name)

end
print (#players)
end

function setVampirePlayer(name)
table.remove(players,name)
print(#players)
end

function eventChatCommand(name,message)
if message == "vamp" then
tfm.exec.setVampirePlayer(name)
end
end


main()

Si quelqu'un a une idée de ce qui ne fonctionne pas, je suis preneur ^^' Merci !

Il y a deux problèmes dans ton code.
Le premier c'est la fonction setVampirePlayer. Si tu veux que la fonction soit appelée lorsque quelqu'un se transforme en vampire, alors renomme là eventPlayerVampire.

Le deuxième problème est à cause d'une mauvaise utilisation des tables. Quand tu parcoures la table tfm.get.room.playerList, le pseudo du joueur se trouve dans la première variable et non dans la deuxième.
Code Lua

1
2
3
4
for k, v in pairs(tfm.get.room.playerList) do
-- k → pseudo
-- v → données du joueur
end

Une autre mauvaise utilisation des tables est à la ligne 12, lorsque tu appelles la fonction table.remove. Cette fonction enlève une valeur d'une table à partir d'une valeur numérique (1, 2, 3, 4, ...)
Donc, tu dois trouver l'index de la valeur pour pouvoir l'enlever de la table. Pour ça il faut parcourir la table et trouver la valeur. Note que ça fonctionne mal s'il y a deux fois la même valeur dans une table.

Code Lua

1
2
3
4
5
6
7
players = {"love"}
index = nil
for key, value in pairs(players) do
if value=="love" then
table.remove(key)
end
end

Voilà le code corrigé:
Code Lua

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function main ()
players = {"love"}

for name in pairs(tfm.get.room.playerList) do
table.insert(players,name)
end
print (#players)
end

function eventPlayerVampire(name)
local index
for k,v in pairs(players) do
if v==name then
index = k
end
end
table.remove(players,index)
print(#players)
end

function eventChatCommand(name,message)
if message == "vamp" then
tfm.exec.setVampirePlayer(name)
end
end

main()
Shenato
« Citoyen »
1502994600000
    • Shenato#0000
    • Profil
    • Derniers messages
    • Tribu
#1347
  0
Merci pour ton aide !
Très clair, très efficace ^_^

Concernant les tables, j'ai enfin compris que la clé est l'emplacement où se trouve la valeur dans la table, et que la valeur ben c'est ce que contient la table à cet emplacement précis ^^'

Merci encore !
Athesdrake
« Citoyen »
1503059520000
    • Athesdrake#0000
    • Profil
    • Derniers messages
    • Tribu
#1348
  0
Shenato a dit :
Merci pour ton aide !
Très clair, très efficace ^_^

Concernant les tables, j'ai enfin compris que la clé est l'emplacement où se trouve la valeur dans la table, et que la valeur ben c'est ce que contient la table à cet emplacement précis ^^'

Merci encore !

De rien ! Si tu as encore quelque chose que tu ne comprends pas, n'hésite pas à poser la question ici ^^
Mistigrounet
« Consul »
1503761340000
    • Mistigrounet#0000
    • Profil
    • Derniers messages
    • Tribu
#1349
  0
C'est quoi la limite de sol / caractère par XML pour charger la carte via LUA ?
Athesdrake
« Citoyen »
1503764820000
    • Athesdrake#0000
    • Profil
    • Derniers messages
    • Tribu
#1350
  0
Mistigrounet a dit :
C'est quoi la limite de sol / caractère par XML pour charger la carte via LUA ?

Après quelques tests, la map ne se charge pas s'il y a plus de 91 sols. Et il n'y a pas de limite de caractères.
Mistigrounet
« Consul »
1503780900000
    • Mistigrounet#0000
    • Profil
    • Derniers messages
    • Tribu
#1351
  0
Athesdrake a dit :
Mistigrounet a dit :
C'est quoi la limite de sol / caractère par XML pour charger la carte via LUA ?

Après quelques tests, la map ne se charge pas s'il y a plus de 91 sols. Et il n'y a pas de limite de caractères.

91...
Rip mon idée de carte :'(
Merci !
Athesdrake
« Citoyen »
1503824580000
    • Athesdrake#0000
    • Profil
    • Derniers messages
    • Tribu
#1352
  0
Mistigrounet a dit :
Athesdrake a dit :
Mistigrounet a dit :
C'est quoi la limite de sol / caractère par XML pour charger la carte via LUA ?

Après quelques tests, la map ne se charge pas s'il y a plus de 91 sols. Et il n'y a pas de limite de caractères.

91...
Rip mon idée de carte :'(
Merci !

Désolé, je viens de tester autrement et on peut mettre plus de 91 sols ! En utilisant string.rep(sol, nombre_de_fois), la map crash, mais si tu charges une map avec 300 sols (différents), ça fonctionne ! Et si jamais tu n'as pas assez de sols, tu peux les placer "manuellement" en Lua grâce à tfm.exec.addPhysicalObject.
Encore désolé, j'aurais dû essayer autrement qu'avec la fonction string.rep.
Mistigrounet
« Consul »
1503832560000
    • Mistigrounet#0000
    • Profil
    • Derniers messages
    • Tribu
#1353
  0
Athesdrake a dit :
Mistigrounet a dit :
Athesdrake a dit :
Mistigrounet a dit :
C'est quoi la limite de sol / caractère par XML pour charger la carte via LUA ?

Après quelques tests, la map ne se charge pas s'il y a plus de 91 sols. Et il n'y a pas de limite de caractères.

91...
Rip mon idée de carte :'(
Merci !

Désolé, je viens de tester autrement et on peut mettre plus de 91 sols ! En utilisant string.rep(sol, nombre_de_fois), la map crash, mais si tu charges une map avec 300 sols (différents), ça fonctionne ! Et si jamais tu n'as pas assez de sols, tu peux les placer "manuellement" en Lua grâce à tfm.exec.addPhysicalObject.
Encore désolé, j'aurais dû essayer autrement qu'avec la fonction string.rep.

Ouais j'avais pensé à tfm.exec mais ça aurait été long xD
Mais si ça passe, c'est cool :p
Sydilenie
« Citoyen »
1509037680000
    • Sydilenie#0000
    • Profil
    • Derniers messages
    • Tribu
#1354
  0
bonjour j'aimerait un codage ou on peux placé une ligne de bloc en bois comme celle du mode place bloc mais je veux la ligne en bas puis désactivé le chamane et ajouté une suivante map quand toute les souris sont passé dans le trous de souris comme au vanilla les map je les mettrait juste .

juste je veux le codage.

Désolé si je suis pas précis . merci!

Sydilenie

et aussi un codage qu'ont permette tout les joueur on un meep et certain non pas

comme

le défenseur a un meep et les autres non pas de meep mais qui peuvent utilisé les boulet .

et aussi ajouté des map d'éditeur de map que j'ai crée moi même puis payé avec 40 fromage et je veux l'ajouté sur le module . merci de me dire le code svp

et aussi un codage d'esprit comme celle du tuto de Podoko mais sans map juste je veux avoir le code module d'esprit sur les touche du bas et s.

et aussi ajouté des map comme @7297369

dans un module

Dernière modification le 1509042420000
Sourialp
« Citoyen »
1515232260000
    • Sourialp#0000
    • Profil
    • Derniers messages
    • Tribu
#1355
  0
Je crois que ce topic est plus fait pour demander des explication et de l'aide pour aider les gens a faire des codes, pas a leurs faire ^^
(enfin je crois)
Sydilenie
« Citoyen »
1518114000000
    • Sydilenie#0000
    • Profil
    • Derniers messages
    • Tribu
#1356
  0
c'est écris Demande de code ^^ si non serait écris Code et d'explication^^
Yuto
1520014740000
    • Yuto#6004
    • Profil
    • Derniers messages
    • Tribu
#1357
[Modéré par Hollya, raison : Hors-sujet]
Mistigrounet
« Consul »
1523698800000
    • Mistigrounet#0000
    • Profil
    • Derniers messages
    • Tribu
#1358
  0
Olaaaaa

Comment fonctionne précisément le LUA="id" qu'on peut rajouter dans le XML ? (vu que j'arrive pas à le faire fonctionner rt)
Et est-ce que si plusieurs sol possède le même LUA="id", si on décide de supprimer les sol d'id 1, tous ceux d'id 1 disparaissent ou si ça fonctionne par un id / un sol

Code Lua

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
carte = {testComp1 = '<C><P mc="" Ca="" aie="" /><Z><S><S L="210" o="8aa316" H="110" X="30" Y="155" T="12" P="0,0,0.3,0.2,-110,0,0,0" /><S P="0,0,0.3,0.2,70,0,0,0" L="210" o="8aa316" X="256" Y="323" T="12" H="110" /><S L="210" o="8aa316" H="110" X="15" Y="60" T="12" P="0,0,0.3,0.2,-70,0,0,0" /><S L="210" o="8aa316" H="110" X="735" Y="305" T="12" P="0,0,0.3,0.2,-10,0,0,0" /><S P="0,0,0.3,0.2,10,0,0,0" L="210" o="8aa316" X="159" Y="241" T="12" H="110" /><S L="210" o="8aa316" H="110" X="16" Y="179" T="12" P="0,0,0.3,0.2,30,0,0,0" /><S L="210" o="8aa316" H="110" X="540" Y="345" T="12" P="0,0,0.3,0.2,-40,0,0,0" /><S L="210" o="8aa316" H="110" X="155" Y="240" T="12" P="0,0,0.3,0.2,10,0,0,0" /><S L="210" o="8aa316" H="110" X="655" Y="310" T="12" P="0,0,0.3,0.2,20,0,0,0" /><S L="400" o="43220e" H="100" X="105" Y="379" T="12" P="0,0,0.3,0.2,0,0,0,0" /><S P="0,0,0.3,0.2,0,0,0,0" L="210" o="8aa316" X="389" Y="415" T="12" H="110" /><S L="200" o="43220e" H="100" X="155" Y="240" T="12" P="0,0,0.3,0.2,10,0,0,0" /><S L="200" o="43220e" H="100" X="16" Y="179" T="12" P="0,0,0.3,0.2,30,0,0,0" /><S L="210" o="8aa316" H="110" X="800" Y="200" T="12" P="0,0,0.3,0.2,-80,0,0,0" /><S L="50" o="43220e" H="20" X="104" Y="184" T="12" P="0,0,0.3,0.2,30,0,0,0" /><S L="150" o="43220e" H="200" X="29" Y="261" T="12" P="0,0,0.3,0.2,90,0,0,0" /><S L="200" o="43220e" H="100" X="535" Y="350" T="12" P="0,0,0.3,0.2,-40,0,0,0" /><S L="200" o="43220e" H="100" X="655" Y="310" T="12" P="0,0,0.3,0.2,20,0,0,0" /><S L="200" o="43220e" H="100" X="735" Y="305" T="12" P="0,0,0.3,0.2,-10,0,0,0" /><S L="210" o="8aa316" H="110" X="810" Y="160" T="12" P="0,0,0.3,0.2,-120,0,0,0" /><S L="200" o="43220e" H="100" X="15" Y="60" T="12" P="0,0,0.3,0.2,-70,0,0,0" /><S L="200" o="43220e" H="100" X="800" Y="200" T="12" P="0,0,0.3,0.2,-80,0,0,0" /><S L="200" o="43220e" H="100" X="810" Y="160" T="12" P="0,0,0.3,0.2,-120,0,0,0" /><S L="200" o="43220e" H="100" X="30" Y="155" T="12" P="0,0,0.3,0.2,70,0,0,0" /><S P="0,0,0.3,0.2,10,0,0,0" L="200" o="43220e" X="132" Y="298" T="12" H="100" /><S P="0,0,0.3,0.2,70,0,0,0" L="200" o="43220e" X="252" Y="323" T="12" H="100" /><S L="200" o="43220e" X="255" H="100" Y="320" T="12" P="0,0,0.3,0.2,70,0,0,0" /><S P="0,0,0.3,0.2,10,0,0,0" L="100" o="43220e" X="214" Y="225" T="12" H="50" /><S c="3" X="558" L="50" o="43220E" H="50" LUA="1" Y="257" T="12" P="0,0,0.3,0.2,-10,0,0,0" /><S P="0,0,0.3,0.2,0,0,0,0" L="400" o="43220e" X="719" Y="376" T="12" H="100" /><S L="400" o="43220e" X="425" H="100" Y="415" T="12" P="0,0,0.3,0.2,0,0,0,0" /><S LUA="1" L="50" o="43220E" P="0,0,0.3,0.2,10,0,0,0" H="50" c="3" Y="237" T="12" X="284" /><S LUA="1" L="50" o="43220E" P="0,0,0.3,0.2,15,0,0,0" H="50" c="3" Y="247" T="12" X="329" /><S c="3" X="373" L="50" o="43220E" H="50" LUA="1" Y="257" T="12" P="0,0,0.3,0.2,10,0,0,0" /><S c="3" X="512" L="50" o="43220E" H="50" LUA="1" Y="263" T="12" P="0,0,0.3,0.2,-5,0,0,0" /><S LUA="1" L="50" o="43220E" P="0,0,0.3,0.2,0,0,0,0" H="50" c="3" Y="265" T="12" X="465" /><S c="3" X="418" L="50" o="43220E" H="50" LUA="1" Y="263" T="12" P="0,0,0.3,0.2,5,0,0,0" /></S><D><DS Y="176" X="549" /></D><O /></Z></C>'}

tfm.exec.disableAutoNewGame (true)
tfm.exec.disableAutoShaman (true)
tfm.exec.disableAutoScore (true)
tfm.exec.disableAfkDeath (true)
tfm.exec.disableMortCommand (true)
tfm.exec.disableWatchCommand (true)
tfm.exec.disableDebugCommand (true)
tfm.exec.disableMinimalistMode (true)
tfm.exec.disablePhysicalConsumables (true)

tfm.exec.newGame (carte.testComp1)


for pN in pairs (tfm.get.room.playerList) do
system.bindKeyboard (pN, 97, true, true) -- Touche numPad1
end

function eventKeyboard (pN, tch, down, xPP, yPP)
if tch == 97 then
if (down) then
action1 (xPP, yPP)
end
end
end

function action1 (X, Y)
if X >= 275 and X <= 600 then
if Y >= 150 and Y <= 250 then -- Position à proximité de la passerelle
tfm.exec.removePhysicObject (1) -- Sols LUA="1" > sols de la passerelle
print(1) -- Fonctionne correctement
end
end
end

-- J'ai essayer avec 1 id différent pour chaque sol, même résultat

Marci bien o/

Résoulu, c'est lua="id" et non LUA="id"
Faudrait changer ça dans le sujet de l'API :[

Dernière modification le 1523703660000
R_dpe
1526746740000
    • R_dpe#0000
    • Profil
    • Derniers messages
#1359
[Modéré par Sentinonyme, raison : Hors-sujet]
Mistigrounet
« Consul »
1531076940000
    • Mistigrounet#0000
    • Profil
    • Derniers messages
    • Tribu
#1360
  0
Hello (ça fait longtemps aaa)

Code Lua

1
2
3
4
5
6
jeu = {1, 2, 2, 3, 4, 5}
joueurs = {}

for pN in pairs (tfm.get.room.playerList) do -- on imagine qu'il y a 6 personnes dans le salon (1 personne pour chaque valeur de le table 'jeu')
table.insert (joueurs, pN)
end

Comment faire pour que chaque joueur du salon possède chacun une valeur donné aléatoirement de la table jeu de manière à ce que ça donne (par ex) :

Code Lua

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
--test1
j1 = 3
j2 = 2
j3 = 5
j4 = 4
j5 = 1
j6 = 2

--test2
j1 = 1
j2 = 3
j3 = 2
j4 = 2
j5 = 4
j6 = 5

(J'ai essayé de me baser sur ça mais ça veut pas)

Code Lua

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
jeu = {1, 2, 2, 3, 4, 5}
joueurs = {}
jeu2 = {}

for pN in pairs (tfm.get.room.playerList) do -- 6 joueurs présents
joueurs[pN] = 0
end

for i = 1, #jeu do
r = math.random (1, #jeu)
jeu2[i] = jeu[r]
table.remove(jeu, r)
end

k = 1
for pN in pairs (tfm.get.room.playerList) do
joueurs[pN] = jeu2[k]
k = k + 1
end

Je suppose qu'il y a plus simple mais ça à l'air de fonctionner comme ça xD

Dernière modification le 1531083060000
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • [Aide] Demandes de codes et d'explications
« ‹ 68 / 70 › »
© Atelier801 2018

Equipe Conditions Générales d'Utilisation Politique de Confidentialité Contact

Version 1.27