Fethi Polat 1
Fethi Polat
TuZaKK 1
TuZaKK
xranzei 1
xranzei
Agresifizm 1
Agresifizm
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Hikaye Ekle

Cevaplandı karakter dogrulamalı npc ışınlanma

  • Konuyu başlatan Konuyu başlatan D4DAYLI
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 6
  • Görüntüleme Görüntüleme 107

Ayyıldız2 | 2008 TR Yapısı • 1-99 Orta Emek Destan • Oto Avsız • 10 Temmuz 21:00 HEMEN TIKLA!

Merhaba dostlar geliştirdiğim files sts tipi karakter damegeleri 1v1de eşit fakat bosslarda eşit değil başlıktanda belirttiğim gibi npc ye istediğim karakter harici giriş yapmasın istiyorum nasıl bir yol izlemem gerekli yani gerekli item gibi düşünün
 
questle yapabilirsiniz diye tahmin ediyorum. birden fazla quest inceleyip sorgulama yaptırabilirseniz npc üzerine işlemle neden olmasın.


pc.get_job = 0 "Savaşçı"
pc.get_job = 1
"Ninja"
pc.get_job = 2
"Sura"
pc.get_job = 3
"Şaman"
 
Son düzenleme:
Bunu client tarafında gizleyerek yapma, çünkü packetle yine tıklanır. En sağlıklısı NPC’ye tıklanınca çalışan quest’in en başına kontrol koymak.

Yapacağın iş şu:

  1. NPC’nin tıklama quest’ini bul
    NPC’ye basınca çalışan dosyada genelde when XXX.click begin diye bir blok vardır. Yoksa kendin yeni bir quest açıp NPC vnum’una bağlayabilirsin.
  2. Job kontrolü ekle
    Karakter sınıfını quest’te pc.get_job() ile alırsın. Çoğu altyapıda değerler şu şekildedir:
    0 savaşçı, 1 ninja, 2 sura, 3 şaman (lycan varsa 4)
Örnek: sadece savaşçı girebilsin:

quest npc_kilit begin

state start begin
when 20000.click begin
if pc.get_job() != 0 then
say("Bu NPC sadece Savaşçı karakterlere açıktır.")
return
end

-- buradan sonrası NPC’nin normal işlemleri
say("Hoşgeldin.")
end
end
end


20000 kısmına NPC’nin vnum’unu yazarsın.

  1. İstersen cinsiyet/level/krallık da eklersin
    Aynı mantıkla pc.get_sex(), pc.get_level(), pc.get_empire() gibi kontrolleri de üst üste koyabilirsin.
  2. Quest’i derleyip yükle
    Quest’i derledikten sonra reload q yap ya da sunucuyu rebootla.
 
[CODE title="tekkat quest"]local setting = baron_dungeon . setting ( )
if pc . get_level ( ) < 90 then
say("Bu NPC sadece Savaşçı karakterlere açıktır.")
say_title ( "Bekci:" )
say ( "" )
say ( "90. seviyenin altinda oldugun icin " )
say ( "zindana giremezsin..." )
return
end
if pc . count_item ( 71130 ) < 50 then
say_item_vnum ( 71130 )
say ( "50 Adet geçiş bileti olmadan giris yapamazsin." )
return
end
if party . is_party ( ) then
say ( "Grubun varken giris yapamazsin." )
return
end
if pc . getf ( "baron" , "dungeon_time" ) > get_time ( ) and not pc . is_gm ( ) then
say_npc ( )
say ( "" )
say ( "Henüz odaya giremezsin." )
say ( "Bekleme süren dolunca tekrar gel." )
say ( "" )
say_reward ( "Kalan Süre : " .. LIB_duration ( pc . getf ( "baron" , "dungeon_time" ) - get_time ( ) ) )
return
end
say_title ( "Bekci:" )
say ( "" )
say ( "zindana girmek istiyor musun?" )
local s = select ( "Evet!" , "Hayir,girmek istemiyorum." )
if s == 1 then
pc . remove_item ( 71130 , 50 )
timer ( "baron_sologiris" , 2 )
else
return
end
[/CODE]

dediğiniz mantıkta lvl dogrulaması yapıyor aynı şekilde karakteri eklediğimde hiçbir tepkime vermiyor
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst