serkserk - 23-04-2019 05:52 GMT -
Oyuncunun belirlediğim alanda binek kullanmasını istemiyorum. Oyuncu binek üzerinde ise siteden bulduğum "Bineğin bankaya atılması" nı kullanıyorum moongate geçişinde binek bankaya gidiyor. Fakat moongate geçişinde binek altında değilde yanında ise oyuncu ile beraber geçiyor. Bunu nasıl engellerim?
Moongate butonu üzerinden sorgulama yapılabilir mi?
Kod:
onbutton 11
if (<distance> > 3) || (<src.hits> < <src.str>) || (<src.findid i_rune_poison>)
src.sysmessage @0799 Moongate'i kullanamazsiniz.
return 1
else
src.binekolmasin
src.go serpent's hold
return 1
endif
Oyuncunun belirlediğim alanda binek kullanmasını istemiyorum. Oyuncu binek üzerinde ise siteden bulduğum "Bineğin bankaya atılması" nı kullanıyorum moongate geçişinde binek bankaya gidiyor. Fakat moongate geçişinde binek altında değilde yanında ise oyuncu ile beraber geçiyor. Bunu nasıl engellerim?
Moongate butonu üzerinden sorgulama yapılabilir mi?
xwerswoodx - 23-04-2019 14:09 GMT -
Çok ayrıntılı düşünmedim ama basitçe bu şekilde yapabilirsin, dilersen otomatik quest scriptlerini inceleyebilirsin onların girişlerinde çevrenizde bineğiniz olmasın gibi kodlar var.
Son güncelleme: xwerswoodx tarafından 23-04-2019 14:45 GMT tarihinde, önce.
Kod:
REF1=<UID> //<UID> burada oyuncunun uidi, sende kullandığın scripte göre, <SRC>, <ARG>, <REFx> şeklinde tanımlı olabilir onu yazacaksın.
FORCHARS 64
IF ((<isChar>) && (<memoryfindtype.memory_ipet.link> == <REF1>)
//Burada <UID> bineğin uid'ine denk geliyor, yani burada istediği işlemleri yaparsın, ister küçültme kodu yazarsın ister uzak bir yere yollarsın, ister stone edersin.
ENDIF
ENDFOR
Çok ayrıntılı düşünmedim ama basitçe bu şekilde yapabilirsin, dilersen otomatik quest scriptlerini inceleyebilirsin onların girişlerinde çevrenizde bineğiniz olmasın gibi kodlar var.
Son güncelleme: xwerswoodx tarafından 23-04-2019 14:45 GMT tarihinde, önce.
serkserk - 23-04-2019 19:24 GMT -
Dediğin doğru sitede çok fazla araştırmadım. Elimde bulunanlarda da öyle bir kısma denk gelmedim. Sadece unicorn res içerisindeki kısım dikkatimi çekti. Forchars ile sorgulama yaparak çalıştığı için fakat çalışma mantığını anlasamda bir çok şeyi bilmediğim için bazı kısımlar eksik kalıyor yada çok gereksiz uzuyor.
Burada siteden aldığım açıklamalı kısım var çok güzel sadece bilmediğim tek kısım "findlayer.25" bu neyi simgeliyor bununla ilgili döküman var mı?
Dediğin doğru sitede çok fazla araştırmadım. Elimde bulunanlarda da öyle bir kısma denk gelmedim. Sadece unicorn res içerisindeki kısım dikkatimi çekti. Forchars ile sorgulama yaparak çalıştığı için fakat çalışma mantığını anlasamda bir çok şeyi bilmediğim için bazı kısımlar eksik kalıyor yada çok gereksiz uzuyor.
Kod:
[function yakindaolmasin]
REF1=<src.uid>
forchars 64
IF ((<isChar>) && (<memoryfindtype.memory_ipet.link> == <REF1>) // bu kısmı anladığımı söyleyemem
endfor
endif
Burada siteden aldığım açıklamalı kısım var çok güzel sadece bilmediğim tek kısım "findlayer.25" bu neyi simgeliyor bununla ilgili döküman var mı?
Kod:
[function binekolmasin]
if (<findlayer.25>) Burası tam olarak ne demek?
tag.binekid <findlayer.25.more1> //binegin id'ini tagladık
tag.binekkarma <uid.<findlayer.25.more2>.karma> //karmayı tagladık
tag.binekfame <uid.<findlayer.25.more2>.fame> //famei tagladık
tag.binekfood <uid.<findlayer.25.more2>.food> //kargoda beslemiyoruz
tag.binekcolor <uid.<findlayer.25.more2>.color> //bunuda alalım bari
tag.binekname <findlayer.25.name> //isimini bi kenara not aldık
serv.newitem i_binek_hafiza //Onay formunu alıyoruz
new.tag.name <tag.binekname> //Hayvanın kayıtlarını
new.tag.fame <tag.binekfame> //forma
new.tag.karma <tag.binekkarma> //eksiksiz
new.tag.food <tag.binekfood> //dolduruyoruz
new.tag.binekid <tag.binekid> //Kargo ise ucret almadan
new.color <tag.binekcolor>
new.cont <findlayer(29).uid> //adrese yolluyor
new.more2 1
findlayer.25.remove
else
return 1
endif
4s3d3 - 23-04-2019 21:55 GMT -
Findlayer.25 üzerine binmiş olduğu şey daha detaylı anlatım gerekirse "Findlayer" karakterin katmanlarıdır, yani sağ eli 1 katman sol eli başka bir katman robesi bir katman ayakkabısı başka bir katmandır.
Daha detaylı anlatım için :
Not:http://wiki.spherecommunity.net
Findlayer.25 üzerine binmiş olduğu şey daha detaylı anlatım gerekirse "Findlayer" karakterin katmanlarıdır, yani sağ eli 1 katman sol eli başka bir katman robesi bir katman ayakkabısı başka bir katmandır.
Daha detaylı anlatım için :
Kod:
Layer ID Default Layer Defname Description
1 layer_hand1
2 layer_hand2
3 layer_shoes
4 layer_pants bone legs + pants
5 layer_shirt
6 layer_helm
7 layer_gloves
8 layer_ring
9 layer_talisman talisman (se and ml)
10 layer_collar gorget or necklace
11 layer_hair
12 layer_half_apron
13 layer_chest armor chest
14 layer_wrist watch
15 layer_light a itemid_light_src equip item can be put here
16 layer_beard
17 layer_tunic jester suit or full apron
18 layer_ears earrings
19 layer_arms armor
20 layer_cape cape
21 layer_pack only used by itemid_backpack
22 layer_robe robe over all
23 layer_skirt skirt or kilt
24 layer_legs plate legs
Others
these are not part of the paper doll (but get sent to the client)
Layer ID Default Layer Defname Description
25 layer_horse ride this object. (horse objects are strange?)
26 layer_vendor_stock the stuff the vendor will restock and sell to the players
27 layer_vendor_extra the stuff the vendor will resell to players but is not restocked. (bought from players)
28 layer_vendor_buys the stuff the vendor can buy from players but does not stock
29 layer_bankbox contents of my bank box
internally used layers - don't bother sending these to client.
30 layer_special can be multiple of these. memories
31 layer_dragging
Spells
32 layer_spell_stats stats effecting spell. these cancel each other out
33 layer_spell_reactive
34 layer_spell_night_sight
35 layer_spell_protection
36 layer_spell_incognito
37 layer_spell_magic_reflect
38 layer_spell_paralyze or turned to stone
39 layer_spell_invis
40 layer_spell_polymorph
41 layer_spell_summon magical summoned creature
Flags
42 layer_flag_poison
43 layer_flag_criminal criminal or murderer ?
44 layer_flag_potion some magic type effect done by a potion. (they cannot be dispelled)
45 layer_flag_spiritspeak
46 layer_flag_wool regrowing wool
47 layer_flag_drunk booze effect
48 layer_flag_clientlinger
49 layer_flag_hallucination shrooms etc
50 layer_flag_potionused track the time till we can use a potion again
51 layer_flag_stuck in a trap or web
52 layer_flag_murders how many murders do we have ? and decay timer
53 layer_flag_bandage bandages go here for healing
Not:http://wiki.spherecommunity.net
serkserk - 25-04-2019 00:09 GMT -
Bu şekilde girişi engelledim fakat yanında binek yoksa sphere da bu hatayı alıyorum.
Kod:
[function binegim]
ref1 = <src>
forchars 20
if <owner> == <ref1>
src.sysmessage @0799 Yakininizda binek varken kullanamazsiniz.
return 1
endif
endfor
Kod:
onbutton 10
if (<src.binegim>) <--- 164 burası
elseif (<distance> > 3) || (<src.hits> < <src.str>) || (<src.findid i_rune_poison>)
src.sysmessage @0799 Moongate'i kullanamazsiniz.
return 1
else
src.binekolmasin
src.go serpent's hold
return 1
endif
Bu şekilde girişi engelledim fakat yanında binek yoksa sphere da bu hatayı alıyorum.
Kod:
00:05:ERROR:(moongate.scp,164)Undefined symbol ''
xrambo - 25-04-2019 01:20 GMT -
src.binegim kısmı sorgu yaparken fonksiyonu sorgulatmışsın.
Onun yerine region tanımla bir tane o alanda ufak bir sorgulama ile binekler giremez yap.
Binek eventi genelde e_horses olur.
e_horses eventi ile regiona on=@enter kısmına sorgu ekle eger binek olursa return 1 ile giris yapamasın problem ?
src.binegim kısmı sorgu yaparken fonksiyonu sorgulatmışsın.
Onun yerine region tanımla bir tane o alanda ufak bir sorgulama ile binekler giremez yap.
Binek eventi genelde e_horses olur.
e_horses eventi ile regiona on=@enter kısmına sorgu ekle eger binek olursa return 1 ile giris yapamasın problem ?
serkserk - 29-04-2019 16:17 GMT -
Giriş yapamamasında daha çok giriş yapsın fakat altındaki bineği nasıl bankaya atıyorsa yakınındaki bineğide bankaya atamaz mı?
xrambo :
src.binegim kısmı sorgu yaparken fonksiyonu sorgulatmışsın.
Onun yerine region tanımla bir tane o alanda ufak bir sorgulama ile binekler giremez yap.
Binek eventi genelde e_horses olur.
e_horses eventi ile regiona on=@enter kısmına sorgu ekle eger binek olursa return 1 ile giris yapamasın problem ?
Giriş yapamamasında daha çok giriş yapsın fakat altındaki bineği nasıl bankaya atıyorsa yakınındaki bineğide bankaya atamaz mı?
xwerswoodx - 09-05-2019 14:10 GMT -
Fonksiyon yaratırken eğer sorgu fonksiyonu yaratacaksanız her duruma özgü bir geri döndüsü olması gerekir.
Burada gördüğün gibi ilk geri döndü 1 olarak belirtilmiş. Ancak şu atlanmış, eğer binek yoksa ne olarak geri döneceği belirtilmemiş. Bu fonksiyonda en alta yani her şeyin bittiği endfor un hemen altına RETURN 0 eklemek sorununu çözecektir.
Fonksiyon yaratırken eğer sorgu fonksiyonu yaratacaksanız her duruma özgü bir geri döndüsü olması gerekir.
Kod:
[function binegim]
ref1 = <src>
forchars 20
if <owner> == <ref1>
src.sysmessage @0799 Yakininizda binek varken kullanamazsiniz.
return 1
endif
endfor
Burada gördüğün gibi ilk geri döndü 1 olarak belirtilmiş. Ancak şu atlanmış, eğer binek yoksa ne olarak geri döneceği belirtilmemiş. Bu fonksiyonda en alta yani her şeyin bittiği endfor un hemen altına RETURN 0 eklemek sorununu çözecektir.