Hoppala - 22-12-2016 02:52 GMT -
Selam arkadaşlar ben bişeyle ugraşiyordumda normal puan sistemim var ama bi robe giyince robede event verdim o robesi olan oyuncu +1 robe puanı kazanıcak fakat on=@kill çalışmıyor
bunu argo olarak ref olarak herşeyi ypatım ama bir türlü görmedi bende sistemi değiştirmeye karar verdim örneğin on fix scriptinde on=@death bölümünde veya on=@kill bölümüne eventi orda gösterip o event varsa o tagı nasıl verebiliriz acaba
biraz ilginç cümle oldu ama tekrar anlatmöaya çalişayim
bi oyuncuda o robe varsa normal puanlama dışında o robenin eventini gösterip nasil extra tekrardan robe puanı verdirebilriim
Selam arkadaşlar ben bişeyle ugraşiyordumda normal puan sistemim var ama bi robe giyince robede event verdim o robesi olan oyuncu +1 robe puanı kazanıcak fakat on=@kill çalışmıyor
Kod:
if (<act.isevent.fix>)
src.tag.robepuan +=1
src.say DENEME OLDU YANI
src.log ## oldu
else
src.log ## olmadı
return 1
endif
bunu argo olarak ref olarak herşeyi ypatım ama bir türlü görmedi bende sistemi değiştirmeye karar verdim örneğin on fix scriptinde on=@death bölümünde veya on=@kill bölümüne eventi orda gösterip o event varsa o tagı nasıl verebiliriz acaba
biraz ilginç cümle oldu ama tekrar anlatmöaya çalişayim
bi oyuncuda o robe varsa normal puanlama dışında o robenin eventini gösterip nasil extra tekrardan robe puanı verdirebilriim
RasmuS - 22-12-2016 04:29 GMT -
İlk olarak buraya bakmanı tavsiye ederim.
İkincisi sphere.ini'den newtriggers bölümünü aktif ettin mi ? Alakası var mıydı hatırlamıyorum ama.
Üçüncüsü ne istediğini anlayamadım.
Kod:
References
The following object references are explicitly available for this trigger:
Name Description
ARGO The character who has been killed.
I The character doing the killing.
SRC The character doing the killing.
İlk olarak buraya bakmanı tavsiye ederim.
Kod:
///////////////////////////////////////////////////////////////
//////// Server Mechanics
///////////////////////////////////////////////////////////////
// Experimental flags
// Flags for options that affect server behaviour and which might affect compatibility
// See the revisions.txt file for more details on this
// EF_DiagonalWalkCheck = 00000001
// EF_New_Triggers = 00000008
// EF_Intrinsic_Locals = 00000020
// EF_Item_Strict_Comparison = 00000040
// EF_NewPositionChecks = 00000080 // Do not set while server is running !!!
// EF_WalkCheck = 00000100
// EF_AllowTelnetPacketFilter = 00000200 // Enables packet filtering for telnet connections as well
// EF_Script_Profiler = 00000400
// EF_Size_Optimise = 00000800
// EF_Minimize_Triggers = 00001000 // Minimize trigger calls (use only 0.51 triggers)
// EF_DamageTools = 00002000 // damage tools (and fire @damage on them) while mining or lumberjacking
// EF_PetSlots = 00004000 // INCOMPLETE YET! DO NOT USE until this warning is removed!
// EF_UsePingServer = 00008000 // Enable the experimental Ping Server (for showing pings on the server list, uses UDP port 12000)
// EF_NPCAct_Triggers = 00010000 // Enable @NPCSpecialAction and @NPCAction triggers (mutual exclusive with EF_Minimize_Triggers)
// EF_FixCanSeeInClosedConts = 00020000 // Change CANSEE to return 0 for items inside containers that a client hasn't opened
// EF_Specific = 01000000 // Specific behaviour, not completly tested
İkincisi sphere.ini'den newtriggers bölümünü aktif ettin mi ? Alakası var mıydı hatırlamıyorum ama.
Üçüncüsü ne istediğini anlayamadım.
xwerswoodx - 22-12-2016 04:38 GMT -
Robe altına;
Robe'yi her giydiğinde TAG0.ROBEPUAN'ı 1 arttırmak için;
Robe'yi gitdiğinde TAG.ROBEPUAN'ı 1 belirlemek için;
Robe altına;
Robe'yi her giydiğinde TAG0.ROBEPUAN'ı 1 arttırmak için;
Kod:
On=@EquipTest
SRC.TAG0.ROBEPUAN +=1
Robe'yi gitdiğinde TAG.ROBEPUAN'ı 1 belirlemek için;
Kod:
On=@EquipTest
SRC.TAG0.ROBEPUAN=1
On=@Unequip
SRC.TAG0.ROBEPUAN=0
RasmuS - 22-12-2016 04:41 GMT -
@Equiptest triggerı belki burada sorun çıkartabilir. Neticede giymeye çalıştığı zaman tetikleniyor fakat ya giymesi için gereken şartlar sağlanmıyorsa ?
@Equiptest triggerı belki burada sorun çıkartabilir. Neticede giymeye çalıştığı zaman tetikleniyor fakat ya giymesi için gereken şartlar sağlanmıyorsa ?
xwerswoodx - 22-12-2016 04:59 GMT -
@Equip'ten önce devreye girer bu nedenle equipte sorgulara takılırsa ve geri çıkartılırsa herhangi bir sıkıntı yaratmaz çünkü unequip otomatik olarak devreye girecektir.
Doğru anlaşılmak için düzenleyim mesajımı; sphere bir kişinin giyip giyemeyeceğini Equip altında değil, Equiptest altında belirler, yani bu sorguyu geçebilen herkes bu giysiyi giyebilmiş sayılır. Eğer arkadaş @Equip altında ayrı şartlar belirtmişse, Unequip devreye girip -1 alacağı için herhangi bir sıkıntı ile karşılaşmaz. Ama tabiki sorguları Equip altından EquipTest altına taşımak daha mantıklıdır.
Hani ben kendi adıma Equiptest i terch eden bir adamım ama hani illede equip kullanacağım diyorsa kullanacak kişi Equip kullanabilir direkt olarak
Son güncelleme: xwerswoodx tarafından 22-12-2016 05:10 GMT tarihinde, önce.
@Equip'ten önce devreye girer bu nedenle equipte sorgulara takılırsa ve geri çıkartılırsa herhangi bir sıkıntı yaratmaz çünkü unequip otomatik olarak devreye girecektir.
Doğru anlaşılmak için düzenleyim mesajımı; sphere bir kişinin giyip giyemeyeceğini Equip altında değil, Equiptest altında belirler, yani bu sorguyu geçebilen herkes bu giysiyi giyebilmiş sayılır. Eğer arkadaş @Equip altında ayrı şartlar belirtmişse, Unequip devreye girip -1 alacağı için herhangi bir sıkıntı ile karşılaşmaz. Ama tabiki sorguları Equip altından EquipTest altına taşımak daha mantıklıdır.
Hani ben kendi adıma Equiptest i terch eden bir adamım ama hani illede equip kullanacağım diyorsa kullanacak kişi Equip kullanabilir direkt olarak
Son güncelleme: xwerswoodx tarafından 22-12-2016 05:10 GMT tarihinde, önce.
RasmuS - 22-12-2016 15:35 GMT -
Gereken açıklamayı yapmışsın, kullanacak arkadaş zaten gerekli tedbirleri bu yazılanlara bakarak alabilir
Gereken açıklamayı yapmışsın, kullanacak arkadaş zaten gerekli tedbirleri bu yazılanlara bakarak alabilir
MirroR - 22-12-2016 19:14 GMT -
Kill çalışmıyor abiii. Kill ! Sorun şu ki kill çalışmıyor arkadaşlar.
Kill çalışmıyor abiii. Kill ! Sorun şu ki kill çalışmıyor arkadaşlar.
xrambo - 22-12-2016 20:12 GMT -
on=@kill
on=@kill
System_Error - 22-12-2016 23:40 GMT -
@kill triggeri sadece fiziksel saldırılı ölümlerde devreye girer
@kill triggeri sadece fiziksel saldırılı ölümlerde devreye girer
RasmuS - 23-12-2016 05:15 GMT -
@Kill trigger'ının sadece fiziksel saldırılardan kaynaklı ölümlerde tetiklendiğini ilk defa duyuyorum enteresan. Bakmak lazım
@Kill trigger'ının sadece fiziksel saldırılardan kaynaklı ölümlerde tetiklendiğini ilk defa duyuyorum enteresan. Bakmak lazım
xwerswoodx - 23-12-2016 05:16 GMT -
Ben okuyunca Robeyi giyen +1 robe puanı alacak diye anladığım için ona göre işlem yaptım, ama üzerinde robe varsa kill alınca robe giyiyorsa +1 robe puanı alacaksa
Robe altına;
ekleyip
Bu eventi eklemesi yeter;
Ben okuyunca Robeyi giyen +1 robe puanı alacak diye anladığım için ona göre işlem yaptım, ama üzerinde robe varsa kill alınca robe giyiyorsa +1 robe puanı alacaksa
Robe altına;
Kod:
On=@EquipTest
SRC.EVENTS +e_robe_event
On=@UnEquip
SRC.EVENTS -e_robe_event
ekleyip
Bu eventi eklemesi yeter;
Kod:
[Events e_robe_event]
On=@Kill
IF <FINDLAYER.22.BASEID> == i_robe_id //Buraya robe'un idsi girilecek i_robe_warrior gibi vs.
TAG0.ROBEPUAN +=1 //Bu kısım oyuncuya +1 robe puanı tagı vermek için. Eğer giysiye verilecekse bu tag; FINDLAYER.22.TAG0.ROBEPUAN +=1 şeklinde olmalı.
SYSMESSAGE @,,1 <ARGO.NAME> isimli oyuncuyu öldürerek 1 robe puanı kazandınız.
ENDIF
M.CANILIK - 28-12-2016 19:05 GMT -
Madem kill kullanamıyorsunuz, madem bu bir puanlama sistemi @death triggerini kullanıp ölen adamı öldürene işlem yaptırın, böylelikle mevzu fiziksel saldırıları geçer ne olursa olsun eleman puan alır.
Madem kill kullanamıyorsunuz, madem bu bir puanlama sistemi @death triggerini kullanıp ölen adamı öldürene işlem yaptırın, böylelikle mevzu fiziksel saldırıları geçer ne olursa olsun eleman puan alır.
Gokku - 01-01-2017 11:03 GMT -
kill triggerının çalışması için sphere'in default okuduğu kill triggerını kapatmış olmanız lazım yoksa kendi bildiği haliyle okur. binlerce yaratık var hangisinin kill'i olduğuna bakamaz bu haliyle. sadece insanlar arası yapacaksınız ozamanda onu yine belirtmeniz lazım. kill farklı death farklı birer trigger. çalışabilmesi için ana fix yada benzer eventiniz varsa onun içine koyup sphere.ini ye static event olarak belirtmeniz gerekir.
kill triggerının çalışması için sphere'in default okuduğu kill triggerını kapatmış olmanız lazım yoksa kendi bildiği haliyle okur. binlerce yaratık var hangisinin kill'i olduğuna bakamaz bu haliyle. sadece insanlar arası yapacaksınız ozamanda onu yine belirtmeniz lazım. kill farklı death farklı birer trigger. çalışabilmesi için ana fix yada benzer eventiniz varsa onun içine koyup sphere.ini ye static event olarak belirtmeniz gerekir.
M.CANILIK - 01-01-2017 15:52 GMT -
Hayatımda gördüğüm en saçma varsayım bu Gokku... Geniş bir perspektif ile olayı gözlemleyemediğin için, ben ve benim gibi insanlara saçmalık olarak gelmiştir yazdıkların. Öldürülme anındaki durumu göz önünde bulundurmamışsın. Bu trigger'i custon bir trigger haline getirirsen, @kill trigger'ı ile bağıntılı diger triggerlarıda yine o trigger altında tetikletmen gerekecek. Fakat sonuç aslında olduğu gibi seni hüsrana uğratacaktır ve diğer triggerlarla uğraştığın içinde zamanını alacaktır. Sebebiyse HITS faktöründen eksiltmeli savaş dinamikleri. (bknz: bonuslar) Bir kişinin ölümünden sorumlu olana işlem yaptırtmak için en ideal trigger @death triggerıdır ki bu trigger @kill triggerinden önce devreye girer ve saldıran kişilerin üzerinde işlem yapmanı sağlar. Bu kapsamda bir kişiyi doğru koşulları sağlayamadıkları sürece öldürmelerini dahi engelleyebilirsin. Yada kişiyi öldüren adamların arasından @murdermark alacakları seçebilirsin. (bknz: attacker) Yani kill triggerı ile uğraşmak demek, savaş dinamiklerini düzenlemek manasına gelir zaman kaybıdır. Açıkçası uzun zamandır developer forumlarına script paylaşımı yapmamıştım yanlış buluyorum bunu kişileri doğru yönlendirmeye çalışırım genelde ama;
Her neyse kolay gelsin.
Not: Death triggeri ile ilgili daha önce yapılmış bir işlem varsa bunu en üste koymanız lazım aksi taktirde diğer şartlar sağlanmadıkça bu bölüm devreye girmeyecektir.
Hayatımda gördüğüm en saçma varsayım bu Gokku... Geniş bir perspektif ile olayı gözlemleyemediğin için, ben ve benim gibi insanlara saçmalık olarak gelmiştir yazdıkların. Öldürülme anındaki durumu göz önünde bulundurmamışsın. Bu trigger'i custon bir trigger haline getirirsen, @kill trigger'ı ile bağıntılı diger triggerlarıda yine o trigger altında tetikletmen gerekecek. Fakat sonuç aslında olduğu gibi seni hüsrana uğratacaktır ve diğer triggerlarla uğraştığın içinde zamanını alacaktır. Sebebiyse HITS faktöründen eksiltmeli savaş dinamikleri. (bknz: bonuslar) Bir kişinin ölümünden sorumlu olana işlem yaptırtmak için en ideal trigger @death triggerıdır ki bu trigger @kill triggerinden önce devreye girer ve saldıran kişilerin üzerinde işlem yapmanı sağlar. Bu kapsamda bir kişiyi doğru koşulları sağlayamadıkları sürece öldürmelerini dahi engelleyebilirsin. Yada kişiyi öldüren adamların arasından @murdermark alacakları seçebilirsin. (bknz: attacker) Yani kill triggerı ile uğraşmak demek, savaş dinamiklerini düzenlemek manasına gelir zaman kaybıdır. Açıkçası uzun zamandır developer forumlarına script paylaşımı yapmamıştım yanlış buluyorum bunu kişileri doğru yönlendirmeye çalışırım genelde ama;
Kod:
On=@Death
if (<src.fame> >= 1000) && (<act.isplayer>) && (<src.act.uid> != <src.uid>) && (<src.act.npc> == 0)
act.tag.rutbepuan ++
if (<act.isevent.e_xxx>)
act.sysmessage @,,1 Xxx robesini kullandığınız için extra bir puan kazandınız.
act.tag.rutbepuan ++
endif
endif
Her neyse kolay gelsin.
Not: Death triggeri ile ilgili daha önce yapılmış bir işlem varsa bunu en üste koymanız lazım aksi taktirde diğer şartlar sağlanmadıkça bu bölüm devreye girmeyecektir.
Gokku - 02-01-2017 21:05 GMT -
varsayım olduğunu kim söylediki size? kendi yazdığım kodlarımda kill triggerının tetiklenmediğini bende farketmiştim vakti zamanında. kill trigger olarak zaten default bir aksiyon ancak üstüne bindirilme yapılmadığı sürece tepki vermiyor özellikle npc vs player yada vs npc şeklindeyken. ben kendi deneyimlerimden ve kullandığım kodlardan yola çıkarak bir bilgi verdim. keza kill bende tetiklenmediği için sizin söylediğiniz gibi death üzerinden bir varyasyon yaparak npcye event bindirmek zorunda kalmıştım
ancak tabi death triggerı her zaman kill triggerından önce gelir diye bir kaideyi yazmanız yorumunuzdaki tüm büyüyü almış öyle birşey yoktur. keza kullanım biçimine göre kill şayet öncelik arz ediyorsa mesela öldüren ile ilgiliyse güzelce çalışacaktır. ancak dediğim gibi kill bir trigger olarak direk tetiklendiğinde etkisiz eleman görevi görüyor belirli durumlarda bunu aşmak içinde yöntem var dediğim gibi nerede kullanıldığına göre değişir.
şeklinde bir geçişle. kill triggerı çalışmıyorsa tonlarca sebep sunulabilir kendi başıma gelen ve çözmek için ürettiğim çözümü buraya bir bilgi olarak yazdım şayet çözüm olacaksa sorulan soru için yorumumu bırakında işine yarayan yada yaramayan kişiler değerlendirsin.
varsayım olduğunu kim söylediki size? kendi yazdığım kodlarımda kill triggerının tetiklenmediğini bende farketmiştim vakti zamanında. kill trigger olarak zaten default bir aksiyon ancak üstüne bindirilme yapılmadığı sürece tepki vermiyor özellikle npc vs player yada vs npc şeklindeyken. ben kendi deneyimlerimden ve kullandığım kodlardan yola çıkarak bir bilgi verdim. keza kill bende tetiklenmediği için sizin söylediğiniz gibi death üzerinden bir varyasyon yaparak npcye event bindirmek zorunda kalmıştım
Kod:
ON=@death
act.else_target_
if (<act.isplayer>)
if (0<act.ctag.last_target_quest>)
act.ctag.last_target_quest = <src.baseid>
endif
endif
ancak tabi death triggerı her zaman kill triggerından önce gelir diye bir kaideyi yazmanız yorumunuzdaki tüm büyüyü almış öyle birşey yoktur. keza kullanım biçimine göre kill şayet öncelik arz ediyorsa mesela öldüren ile ilgiliyse güzelce çalışacaktır. ancak dediğim gibi kill bir trigger olarak direk tetiklendiğinde etkisiz eleman görevi görüyor belirli durumlarda bunu aşmak içinde yöntem var dediğim gibi nerede kullanıldığına göre değişir.
Kod:
on=@kill
if strmatch('<argo.baseid>','<f_integer_array <src.tag0.quest>,4>')
if (<r<f_integer_array <src.tag0.quest>,1>> == 1)
newitem <f_integer_array <src.tag0.quest>,2>
new.cont <argo>
endif
endif
şeklinde bir geçişle. kill triggerı çalışmıyorsa tonlarca sebep sunulabilir kendi başıma gelen ve çözmek için ürettiğim çözümü buraya bir bilgi olarak yazdım şayet çözüm olacaksa sorulan soru için yorumumu bırakında işine yarayan yada yaramayan kişiler değerlendirsin.