Yazar
Toplam Mesaj: 12
Oyun Tarzı: Rp
Emulatör:
Tecrübe: Player
Yaş: 28
|
Mesaj #96515
27-09-2018 16:26 GMT
Merhaba Arkadaşlar, Runebook gate açtığımda gateden geç yazısı birkaç defa açılıyor ve gate kapanınca dialoğu kapanmıyor. SRC.timerf 30, dialogclose d_gatetravel2 şeklinde çözmeye çalıştım fakat çok amatör duruyor. ben gate kapanınca veya gateden 3 adım uzaklaşınca dialog da kapansın istiyorum. nasıl yapabilirim sizce? |
Yazar
Toplam Mesaj: 47
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 26
|
Mesaj #96519
27-09-2018 19:09 GMT
|
Yazar
Toplam Mesaj: 186
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Diğer
Yaş: 31
|
Mesaj #96522
27-09-2018 21:11 GMT
|
Yazar
Toplam Mesaj: 47
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 26
|
Mesaj #96524
27-09-2018 23:08 GMT
Alıntı Çalışıyor mu bilmiyorum. Denedikten sonra dönüş yap çalışmazsa farklı bir yoldan yaparız yere item koymamıza gerek yok.
|
Yazar
Toplam Mesaj: 1732
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 9
|
Mesaj #96526
28-09-2018 10:38 GMT
2. paketi kontrol etmedim ama karakterin hareket paketiyse sorunsuz çalışacaktır ancak paket kullanmadan da region üzerinden On=@Move altında @Move trigger etmek mümkün tabi. Ki ben şahsen ne olursa olsun her adımda bir kontrolün yapılmasını sağlıklı bulmuyorum. Çünkü saniyeler içinde binlerce sorgu demek olur bu o bakımdan çok sağlıklı bulmuyorum. Diğer yandan çok daha basit bir yöntemi var ki gate dialogunu açan oyuncuya bir memory itemi verip her yarım saniyede kontrol etmek (TIMERD 5 = yarım saniye), eğer uzaklığı 3 kareden uzaksa veya gate açık değilse dialogu otomatik kapattırabilir ve itemi oyuncudan silebilirsin. Diğer bir çözüm eğer tek sorun gate kapandığında dialogun açık kalması ise, dialogu açan oyuuncuya gate üzerinde TAG verirsin atıyorum oyuncunun adı Hamit ise, TAG.<SRC.NICK> = 1 diye oyuncu dialogun bir butonuna tıkladığında otomatik o tagı silersin böylece gate'de On=@Timer yapınca yani kapanması tetiklenince bütün TAG.nick olarak kayıtlı olan nicklere TRYUID yada TRY yollayarak dialogclose uygulatabilirsin. Diğer yandan sorun gate kapandıktan sonra tuşa basınca gitmesi ise, tuşa gate sorgusu yapabilirsin, gate açık ise gitsin değil ise gate çoktan kapanmış hatası verip kapansın. Dialog tekrar mı açılıyor anlamadım ama dialogun tekrar tekrar açılmasını istemiyorsan üst üste, DIALOG komutu yerine SDIALOG ile açtırmalısın, diğer yandan hata mesajı içinse dialog açık mı diye kontrol ettirebilirsin, dialog açık değilse Gate den geç yazısını yazdırırsın açık ise pas geçersin yine aynı çözüme gelir. ![]() |
Yazar
Toplam Mesaj: 57
Oyun Tarzı: Pvp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 30
|
Mesaj #96538
30-09-2018 02:20 GMT
Şöyle bir şey daha mantıklı olmazmı sorun çıkarırmı acaba bir teleport itemi yapacaksın invis on@step de dialog kapatcak bu teleportlar gate açık kalma süresi kadar olacak açılan gatenin 2 yada 3 kare etrafına gateyle birlikte açılınca invis olarak koyulcak oto gate kapandığında ise gate ve 3 kare etrafına bu teleport koyulcak böylelikle dialog kapancak |
Yazar
Toplam Mesaj: 1732
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 9
|
Mesaj #96540
30-09-2018 08:19 GMT
Dediğin yöntemin çok fazla açığı var, şöyle ki, 3 kare etrafına yerleştirirsen bu defa 4 kare veya üzerinde olan kişilerde yine dialog kapanmaz. Ayrıca 3 kare etrafında olan kişi de hareket etmedikçe On=@Step devreye girmeyecektir. Diğer yandan adam 3. karedeyse 4. kareye adım attığı anda On=@Step yine devreye girmez yani yeterli bir çözüm olmaz.
|
Yazar
Toplam Mesaj: 926
Oyun Tarzı: Pvp
Emulatör: Sphere
Tecrübe: Player
Yaş: 28
|
Mesaj #96541
30-09-2018 08:46 GMT
Merhaba, Gate'den geç yazısının bir kaç defa açılmasını sdialog la çözebilirsin, dialog oyuncuda açıksa birdaha açmayacaktır. Gate kapanınca menününde kapanması için ise gate'i menüye bağlaman gerek, yani o açılan menünün hangi gate'e ait olduğunu anlat sphere'a. Gate süresi bitince o sorgu ile forplayers 6144 kullanarak kapattırabilirsin. Mobildeyim şuanda o yüzden koddan ziyade fikir sadece |
Yazar
Toplam Mesaj: 597
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 27
|
Mesaj #96546
30-09-2018 16:14 GMT
Menü içerisine ekleyeceğin kodlar Kod: [dialog d_GateTravel2] serv.newitem = mem_RunGate,1,<src> new.tag._RuneGate = <uid> new.timer = 0 Itemın yapacağı sorgular Kod: [itemdef Mem_RunGate]
id = i_memory type = t_eq_Script name = Mem RunGate on=@timer ref1 = <tag._RuneGate> if !(<ref1>) trysrc <cont> dialogclose d_GateTravel2 remove elif (<distance <ref1>> > 2) trysrc <cont> dialogclose d_GateTravel2 remove endif timer = 1 return 1
|
Yazar
Toplam Mesaj: 274
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 26
|
Mesaj #96595
07-10-2018 12:21 GMT
sphere.ini içine [SPHERE] kısmının altında kalacak şekilde bu komutu ekle; PACKET2=f_move Sonrası alttaki örnekteki gibi. Burada 3 adım sonrası dialog kapanır. Timer ile anlık sorgulamaktansa bu şekilde bir çözüm daha sağlıklı olacaktır. Tabi o da bir alternatif, tercihine kalmış ama verimsiz. Kod: [function f_move] ref1 <local.char> ref1.trigger @move [itemdef i_gate_test] id 0f6c type t_normal on=@step sdialog d_test_gate src.ctag.testgate <uid> src.events +e_testgate [events e_testgate] on=@move if ((<distance <ctag0.testgate>> > 3) || (!<uid.<ctag0.testgate>>)) events -e_testgate trysrc <uid> dialogclose d_test_gate ctag.testgate endif on=@logout events -e_testgate [dialog d_test_gate] 0,0 resizepic 50 50 3000 100 100 Gate kapanınca açık olan herkestekini sildirmek için de gate'in @destroy'unda online karakterleri döndürüp dialogclose yapabilirsin. Discord ID: slothere#5079 > Singularity Server Özellikleri Singularity Server Discord: https://discord.gg/Y4caeRg |
Sayfalar: 1
Benzer Konular
Konular | Mesajlar | Son gönderen | Tarih |
Dialog ile statusbar yapımı | 6 | xwerswoodx | 06-09-2018 |
Transparan dialog | 6 | MirroR | 12-04-2018 |
Dialog Kapatma | 5 | Aftrosh* | 08-04-2018 |
Dialog içinde chat sistemi | 6 | xwerswoodx | 10-03-2018 |
Copy Runebook | 5 | gizemli | 02-08-2017 |
![]() |