×

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
  • /
  • [Module API] [Rehber] Zorluk Modu
1 / 2 › »
[Module API] [Rehber] Zorluk Modu
Kmlcan
« Citoyen »
1383165000000
    • Kmlcan#0000
    • Profil
    • Derniers messages
    • Tribu
#1
  1
Merhaba herkese. Çoğu kişi bana FFA Race'deki zorluk modunu nasıl yaptığımı soruyordu. Ben de size bu rehberi yapmaya karar verdim. Pek bir şey demeden anlatmaya başlıyorum. DİKKATLİ OKUYUN.

Öncelikle maps, diff1, diff2, diff3, diff4 ve diff5 adında 6 tane tablo oluşturacağız, ve otomatik harita açılmasını devre dışı bırakacağız.
a dit :
tfm.exec.disableAutoNewGame(true)
maps={}
diff1={}
diff2={}
diff3={}
diff4={}
diff5={}

Daha sonra maps tablosu içine bütün haritaları, diff tablolarına da zorluklarına göre harita kodlarını yazıyoruz. Ben rastgele yaptım.
a dit :
tfm.exec.disableAutoNewGame(true)
maps={0,1,2,3,4,5,6,7,8,9}
diff1={0,5}
diff2={1,6}
diff3={2,7}
diff4={3,8}
diff5={4,9}

Şimdi oyunun başlangıcında açılacak haritayı seçelim. Ben rastgele seçiyorum ve haritanın adını da buna göre rastgele yapıyorum.
a dit :
tfm.exec.newGame(maps[math.random(#maps)])
tfm.exec.setUIShamanName("<VP>Zorluk: <J>Rastgele")

Haritamız ilk tur oynandıktan sonra yeni bir harita otomatik olarak açılmaz, bu yüzden 0 saniye kaldığı zaman yeni bir haritanın açılmasını, ve haritanın zorluğunun da rastgele olmasını sağlayalım. eventLoop kullanıp 0 zaman kaldığında haritanın değişmesini ayarlıyoruz.
a dit :
function eventLoop(zaman,kalan)
if kalan<=0 then
tfm.exec.newGame(maps[math.random(#maps)])
tfm.exec.setUIShamanName("<VP>Zorluk: <J>Rastgele")
end
end

Fareler öldüğü zaman yeniden doğmasını sağlayalım. Bunun için eventPlayerDied kullanıyoruz.
a dit :
function eventPlayerDied(name)
tfm.exec.respawnPlayer(name)
end

Şimdi de deliğe girenin sıradaki haritanın zorluğunu seçmesini ayarlayalım. Biri girdiği zaman rahatça seçebilmesi için 5 saniye zaman verip, diğer herkesi öldüreceğiz. Ben eventPlayerWon ve ui.addPopup kullanacağım. Popup'un cevabı da sıradaki haritayı açacak.
a dit :
function eventPlayerWon(player)
for name,player in pairs(tfm.get.room.playerList) do
tfm.exec.killPlayer(name)
end
tfm.exec.setGameTime(5)
ui.addPopup(1,2,"<p align='center'>Lütfen sıradaki harita için bir zorluk derecesi seçin. <font color='#e9c764'>(1-5 arası)</font></p>",player,300,200,200)
end

function eventPopupAnswer(id,player,answer)
if id==1 then
if answer=="1" then
tfm.exec.newGame(diff1[math.random(#diff1)])
tfm.exec.setUIShamanName("<VP>Zorluk: <J>1")
elseif answer=="2" then
tfm.exec.newGame(diff2[math.random(#diff2)])
tfm.exec.setUIShamanName("<VP>Zorluk: <J>2")
elseif answer=="3" then
tfm.exec.newGame(diff3[math.random(#diff3)])
tfm.exec.setUIShamanName("<VP>Zorluk: <J>3")
elseif answer=="4" then
tfm.exec.newGame(diff4[math.random(#diff4)])
tfm.exec.setUIShamanName("<VP>Zorluk: <J>4")
elseif answer=="5" then
tfm.exec.newGame(diff5[math.random(#diff5)])
tfm.exec.setUIShamanName("<VP>Zorluk: <J>5")
else
tfm.exec.newGame(maps[math.random(#maps)])
tfm.exec.setUIShamanName("<VP>Zorluk: <J>Rastgele")
end
end
end

Neredeyse tamam, şimdi ufak bir sorun daha var; Eğer kullanıcı 5 saniye içinde harita seçmezse otomatik olarak yeni harita açılıyor, ama zorluk seçme açık kalıyor. Biz de yeni oyun başladığı zaman bu popup'ın kaybolmasını (görünmeyen bir yere gitmesini) sağlayalım.
a dit :
function eventNewGame()
ui.addPopup(1,2,".",nil,1200,1200)
end

Şimdi bakalım kodumuz ne hale gelmiş;
a dit :
tfm.exec.disableAutoNewGame(true)
maps={0,1,2,3,4,5,6,7,8,9}
diff1={0,5}
diff2={1,6}
diff3={2,7}
diff4={3,8}
diff5={4,9}

tfm.exec.newGame(maps[math.random(#maps)])
tfm.exec.setUIShamanName("<VP>Zorluk: <J>Rastgele")

function eventLoop(zaman,kalan)
if kalan<=0 then
tfm.exec.newGame(maps[math.random(#maps)])
tfm.exec.setUIShamanName("<VP>Zorluk: <J>Rastgele")
end
end

function eventPlayerDied(name)
tfm.exec.respawnPlayer(name)
end

function eventPlayerWon(player)
for name,player in pairs(tfm.get.room.playerList) do
tfm.exec.killPlayer(name)
end
tfm.exec.setGameTime(5)
ui.addPopup(1,2,"<p align='center'>Lütfen sıradaki harita için bir zorluk derecesi seçin. <font color='#e9c764'>(1-5 arası)</font></p>",player,300,200,200)
end

function eventPopupAnswer(id,player,answer)
if id==1 then
if answer=="1" then
tfm.exec.newGame(diff1[math.random(#diff1)])
tfm.exec.setUIShamanName("<VP>Zorluk: <J>1")
elseif answer=="2" then
tfm.exec.newGame(diff2[math.random(#diff2)])
tfm.exec.setUIShamanName("<VP>Zorluk: <J>2")
elseif answer=="3" then
tfm.exec.newGame(diff3[math.random(#diff3)])
tfm.exec.setUIShamanName("<VP>Zorluk: <J>3")
elseif answer=="4" then
tfm.exec.newGame(diff4[math.random(#diff4)])
tfm.exec.setUIShamanName("<VP>Zorluk: <J>4")
elseif answer=="5" then
tfm.exec.newGame(diff5[math.random(#diff5)])
tfm.exec.setUIShamanName("<VP>Zorluk: <J>5")
else
tfm.exec.newGame(maps[math.random(#maps)])
tfm.exec.setUIShamanName("<VP>Zorluk: <J>Rastgele")
end
end
end

function eventNewGame()
ui.addPopup(1,2,".",nil,1200,1200)
end

Benim kodum çok daha karışık ve daha kısa, ama onu muhtemelen anlamayacaktınız. Bu yüzden size baştan yeni bir zorluk seçme kodu hazırladım.
Not: Eğer konuyu okumadan bana "yapamadım, şöyle hata verdi" gibisinden mesajlarla gelirseniz size cevap vermeyeceğim.
Dogangun
« Citoyen »
1383165180000
    • Dogangun#0000
    • Profil
    • Derniers messages
    • Tribu
#2
  0
Teşekkürler.
Thebvy
« Citoyen »
1383217020000
    • Thebvy#0000
    • Profil
    • Derniers messages
    • Tribu
#3
  0
Teşekkür Ederim.
Kanlimert
« Citoyen »
1383217740000
    • Kanlimert#0000
    • Profil
    • Derniers messages
#4
  0
Çoook çooook teşekkür ederiiimm
Devangelll
« Citoyen »
1383232080000
    • Devangelll#0000
    • Profil
    • Derniers messages
#5
  0
Gerçekten çok yararlı bir kod
Mckeydown
« Censeur »
1383232380000
    • Mckeydown#0000
    • Profil
    • Derniers messages
    • Tribu
#6
  0
Yararlı .
Mausecofking
« Citoyen »
1385579760000
    • Mausecofking#0000
    • Profil
    • Derniers messages
#7
  0
Özür dilerim.
Oyga
« Citoyen »
1385630700000
    • Oyga#0000
    • Profil
    • Derniers messages
    • Tribu
#8
  0
Düzenlendi.

Dernière modification le 1412869560000
Mausecofking
« Citoyen »
1385630700000
    • Mausecofking#0000
    • Profil
    • Derniers messages
#9
  0
Özür dilerim.
Oyga
« Citoyen »
1385630820000
    • Oyga#0000
    • Profil
    • Derniers messages
    • Tribu
#10
  0
Düzenlendi.

Dernière modification le 1412869560000
Mausecofking
« Citoyen »
1385630820000
    • Mausecofking#0000
    • Profil
    • Derniers messages
#11
  0
Özür dilerim.
Fatihmilano
« Citoyen »
1385635920000
    • Fatihmilano#0000
    • Profil
    • Derniers messages
    • Tribu
#12
  0
Bu üst seviye ya da değil, geçerli hepsinde değil mi?
Kmlcan
« Citoyen »
1385642580000
    • Kmlcan#0000
    • Profil
    • Derniers messages
    • Tribu
#13
  0
Üst seviye kodlamalar komut yazmak içindir, bunda komut falan yok o yüzden her şey için geçerli.
Fatihmilano
« Citoyen »
1385713620000
    • Fatihmilano#0000
    • Profil
    • Derniers messages
    • Tribu
#14
  0
En son birinciye çıkan zorluğu ayarlayan kişiye yani çıkan popup hiçbir zaman gitmiyor. Koordinatlarda mı hata var oradaki?


Edited: Sorun düzeltildi. Başka bir sorun ortaya çıktı. Minioyuna giriş yapılırken çıkan "Hoşgeldiniz" gibisinden olan popup çıkıyor ve hemen kayboluyor. Ne yapabilirim? API yüzünden diyorlar.
Makakanga
1385899500000
    • Makakanga#0000
    • Profil
    • Derniers messages
#15
[Modéré par Ediz, raison : abcdefgh]
Heliostrxd
« Citoyen »
1386080640000
    • Heliostrxd#0000
    • Profil
    • Derniers messages
#16
  0
Bu kodu ekledikden sonra lua kodlamalarımdaki hızlanma devre dışı kalıyor ?

function eventLoop(ct,tr)
for name,player in pairs(tfm.get.room.playerList) do
if(tfm.get.room.playerList[name].movingLeft) then
tfm.exec.movePlayer(name,nil,nil,false,-100,nil,false)
else if(tfm.get.room.playerList[name].movingRight) then
tfm.exec.movePlayer(name,nil,nil,false,100,nil,false)
end
end
end
end

Ayrıca oyuna girdiklerinde açılan bi pencere eklemiştim o gözüüyor fakat 1 sn yeden daha kısa bir süre sonra hemen kapanıyor.
Fatihmilano
« Citoyen »
1386261720000
    • Fatihmilano#0000
    • Profil
    • Derniers messages
    • Tribu
#17
  0
Heliostrxd a dit :

Ayrıca oyuna girdiklerinde açılan bi pencere eklemiştim o gözüüyor fakat 1 sn yeden daha kısa bir süre sonra hemen kapanıyor.

Tam kod atarsan belki yardımcı olabilirim, aynı hata bendede vardı.
Heliostrxd
« Citoyen »
1386489720000
    • Heliostrxd#0000
    • Profil
    • Derniers messages
#18
  0
Fatihmilano a dit :
Tam kod atarsan belki yardımcı olabilirim, aynı hata bendede vardı.

Fazla bişiy yapadım hem hızlanıp hemde uçarak deliğe gire gibi birşey yaptım. Ve bide bu zorluk modunu ekledim. Ama hatayı bilmiyorum hızlanma çalşmıyor.

İşte kod
function eventNewPlayer(name)
tfm.exec.bindKeyboard(name,32,true,true)
end

for name,player in pairs(tfm.get.room.playerList) do
eventNewPlayer(name)
end

function eventKeyboard(name,key,down,x,y)
if key==32 then
tfm.exec.movePlayer(name,0,0,true,0,-50,false)
end
end
function eventLoop(ct,tr)
for name,player in pairs(tfm.get.room.playerList) do
if(tfm.get.room.playerList[name].movingLeft) then
tfm.exec.movePlayer(name,nil,nil,false,-100,nil,false)
else if(tfm.get.room.playerList[name].movingRight) then
tfm.exec.movePlayer(name,nil,nil,false,100,nil,false)
end
end
end
end


tfm.exec.disableAutoNewGame(true)
maps={0,1,2,3,4,5,6,7,8,9}
diff1={0,5}
diff2={1,6}
diff3={2,7}
diff4={3,8}
diff5={4,9}

tfm.exec.newGame(maps[math.random(#maps)])
tfm.exec.setUIShamanName("&lt;VP&gt;Zorluk: &lt;J&gt;Rastgele")

function eventLoop(zaman,kalan)
if kalan&lt;=0 then
tfm.exec.newGame(maps[math.random(#maps)])
tfm.exec.setUIShamanName("&lt;VP&gt;Zorluk: &lt;J&gt;Rastgele")
end
end

function eventPlayerDied(name)
tfm.exec.respawnPlayer(name)
end

function eventPlayerWon(player)
for name,player in pairs(tfm.get.room.playerList) do
tfm.exec.killPlayer(name)
end
tfm.exec.setGameTime(5)
ui.addPopup(1,2,"&lt;p align='center'&gt;Lütfen sıradaki harita için bir zorluk derecesi seçin. &lt;font color='#e9c764'&gt;(1-5 arası)&lt;/font&gt;&lt;/p&gt;",player,300,200,200)
end

function eventPopupAnswer(id,player,answer)
if id==1 then
if answer=="1" then
tfm.exec.newGame(diff1[math.random(#diff1)])
tfm.exec.setUIShamanName("&lt;VP&gt;Zorluk: &lt;J&gt;1")
elseif answer=="2" then
tfm.exec.newGame(diff2[math.random(#diff2)])
tfm.exec.setUIShamanName("&lt;VP&gt;Zorluk: &lt;J&gt;2")
elseif answer=="3" then
tfm.exec.newGame(diff3[math.random(#diff3)])
tfm.exec.setUIShamanName("&lt;VP&gt;Zorluk: &lt;J&gt;3")
elseif answer=="4" then
tfm.exec.newGame(diff4[math.random(#diff4)])
tfm.exec.setUIShamanName("&lt;VP&gt;Zorluk: &lt;J&gt;4")
elseif answer=="5" then
tfm.exec.newGame(diff5[math.random(#diff5)])
tfm.exec.setUIShamanName("&lt;VP&gt;Zorluk: &lt;J&gt;5")
else
tfm.exec.newGame(maps[math.random(#maps)])
tfm.exec.setUIShamanName("&lt;VP&gt;Zorluk: &lt;J&gt;Rastgele")
end
end
end

function eventNewGame()
ui.addPopup(1,2,".",nil,1200,1200)
end
Fatihmilano
« Citoyen »
1386490200000
    • Fatihmilano#0000
    • Profil
    • Derniers messages
    • Tribu
#19
  0
Heliostrxd a dit :
Fazla bişiy yapadım hem hızlanıp hemde uçarak deliğe gire gibi birşey yaptım. Ve bide bu zorluk modunu ekledim. Ama hatayı bilmiyorum hızlanma çalşmıyor.

İşte kod
function eventNewPlayer(name)
tfm.exec.bindKeyboard(name,32,true,true)
end

for name,player in pairs(tfm.get.room.playerList) do
eventNewPlayer(name)
end

function eventKeyboard(name,key,down,x,y)
if key==32 then
tfm.exec.movePlayer(name,0,0,true,0,-50,false)
end
end
function eventLoop(ct,tr)
for name,player in pairs(tfm.get.room.playerList) do
if(tfm.get.room.playerList[name].movingLeft) then
tfm.exec.movePlayer(name,nil,nil,false,-100,nil,false)
else if(tfm.get.room.playerList[name].movingRight) then
tfm.exec.movePlayer(name,nil,nil,false,100,nil,false)
end
end
end
end


tfm.exec.disableAutoNewGame(true)
maps={0,1,2,3,4,5,6,7,8,9}
diff1={0,5}
diff2={1,6}
diff3={2,7}
diff4={3,8}
diff5={4,9}

tfm.exec.newGame(maps[math.random(#maps)])
tfm.exec.setUIShamanName("&amp;lt;VP&amp;gt;Zorluk: &amp;lt;J&amp;gt;Rastgele")

function eventLoop(zaman,kalan)
if kalan&amp;lt;=0 then
tfm.exec.newGame(maps[math.random(#maps)])
tfm.exec.setUIShamanName("&amp;lt;VP&amp;gt;Zorluk: &amp;lt;J&amp;gt;Rastgele")
end
end

function eventPlayerDied(name)
tfm.exec.respawnPlayer(name)
end

function eventPlayerWon(player)
for name,player in pairs(tfm.get.room.playerList) do
tfm.exec.killPlayer(name)
end
tfm.exec.setGameTime(5)
ui.addPopup(1,2,"&amp;lt;p align='center'&amp;gt;Lütfen sıradaki harita için bir zorluk derecesi seçin. &amp;lt;font color='#e9c764'&amp;gt;(1-5 arası)&amp;lt;/font&amp;gt;&amp;lt;/p&amp;gt;",player,300,200,200)
end

function eventPopupAnswer(id,player,answer)
if id==1 then
if answer=="1" then
tfm.exec.newGame(diff1[math.random(#diff1)])
tfm.exec.setUIShamanName("&amp;lt;VP&amp;gt;Zorluk: &amp;lt;J&amp;gt;1")
elseif answer=="2" then
tfm.exec.newGame(diff2[math.random(#diff2)])
tfm.exec.setUIShamanName("&amp;lt;VP&amp;gt;Zorluk: &amp;lt;J&amp;gt;2")
elseif answer=="3" then
tfm.exec.newGame(diff3[math.random(#diff3)])
tfm.exec.setUIShamanName("&amp;lt;VP&amp;gt;Zorluk: &amp;lt;J&amp;gt;3")
elseif answer=="4" then
tfm.exec.newGame(diff4[math.random(#diff4)])
tfm.exec.setUIShamanName("&amp;lt;VP&amp;gt;Zorluk: &amp;lt;J&amp;gt;4")
elseif answer=="5" then
tfm.exec.newGame(diff5[math.random(#diff5)])
tfm.exec.setUIShamanName("&amp;lt;VP&amp;gt;Zorluk: &amp;lt;J&amp;gt;5")
else
tfm.exec.newGame(maps[math.random(#maps)])
tfm.exec.setUIShamanName("&amp;lt;VP&amp;gt;Zorluk: &amp;lt;J&amp;gt;Rastgele")
end
end
end

function eventNewGame()
ui.addPopup(1,2,".",nil,1200,1200)
end

Mesajını düzenlemeden bir daha atar mısın? Düzeltmek istiyorum kafam karışıyor da bulamıyorum < > amp oluyor.
Heliostrxd
« Citoyen »
1386510840000
    • Heliostrxd#0000
    • Profil
    • Derniers messages
#20
  0
Fatihmilano a dit :
Mesajını düzenlemeden bir daha atar mısın? Düzeltmek istiyorum kafam karışıyor da bulamıyorum &lt; &gt; amp oluyor.

https://paste.moepl.eu/view/88e39374
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • [Module API] [Rehber] Zorluk Modu
1 / 2 › »
© Atelier801 2018

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

Version 1.27