Master
59.2997
Basit bir bomberman sistemi. Son günlerdeki bomberman tartışmalarını inceledikten sonra boş zamanımda yazıp yayınlamak istedim. Ama maalesef uğraşıcak fazla vaktim olmadığı için fazla çetrefilli olmayan "temel" niteliğinde bir sistem oluştu. Zamanım oldukça geliştirebilirim eğer istek olursa. Hatta şöyle yapabiliriz, bu scripti ultima-strike üyeleri olarak topluca geliştirebiliriz. Hem bir beyin fırtınası niteliğinde olur, hem de bunu ufak bir faaliyet olarak düşünebiliriz.

[comment bomberman_ultimastrike]
# Bu script Slothere tarafından 08/03/2009 - 01:20 tarihinde ultima-strike.com için yazılmıştır..
# Version: 056b+

[defname bomberman]
enterp 5800,800					// yarışmaya girildiğinde gidilecek koordinat
exitp 5733,808 					// kaybedenlerin gidecegi koordinat
prices i_robe,i_katana,i_spellbook,i_potion_heal		// kazanana verilecek ödüllerin belirlendiği bölüm

[function control]
ref1 = <argv[0]>
ref2 = <uid>
foritems 0
 if (<baseid> == i_wall_bomber2)
     remove
 endif
endfor
forchars 0
  if (<isplayer>) && !(<isgm>)
    if (<ref1> != <uid>)
      ref1.sysmessage @1153 <name> olduruldu
    endif
    say @1153 elendi!
    sysmessage kaybettiniz.
    go <def.exitp>
    events -e_bomberman
    hits = 0
    timerf 3, resurrect
    forplayers 99
      if <isevent.e_bomberman>
        local.playernum ++
      endif
    endfor
    if <dlocal.playernum> == 1
       ref1.bombermanwin
    endif
  endif
endfor

[function bombermanwin]
serv.allclients sysmessage @1153 Bomberman yarismasini <name> kazandi.
serv.newitem <f_array <def.prices>, <R<f_array_length <def.prices>>>>,1,<findlayer(21).uid>
events -e_bomberman
go <def.exitp>
serv.allclients events -e_bomberman

[events e_bomberman]
on=@GetHit
return 1

on=@Hit
return 1

on=@Attack
return 1

on=@LogOut
go <def.exitp>
events -e_bomberman
hits = 0

on=@SpellCast
return 1

on=@SkillStart
return 1

[plevel 1]
bomb

[function bomb]
if (!(<flags> & statf_dead) || (<src.isevent.e_bomberman>)) && !(<src.ctag0.bomb>)
  serv.newitem i_bomb
  new.p <src.p>
  new.link = <src>
  src.timerf 4, src.ctag0.bomb =
  src.ctag.bomb = 1
  new.timerf 1, say @1153 3
  new.timerf 2, say @1153 2
  new.timerf 3, say @1153 1
  new.timerf 4, explode
endif

[itemdef i_bomb]
id = i_cannon_ball
type = t_normal
weight = 999
name = bomb

on=@Create
color = 1153
attr = attr_decay|attr_static

[function explode]
for s 1 2
  serv.newitem i_fire_new
  new.p <p>
  new.control,<link>
  serv.newitem i_fire_new
  new.p <p.x>,<eval <p.y> + <dlocal.s>>,<p.z>
  new.control,<link>
  serv.newitem i_fire_new
  new.p <p.x>,<eval <p.y> - <dlocal.s>>,<p.z>
  new.control,<link>
  serv.newitem i_fire_new
  new.p <eval <p.x> + <dlocal.s>>,<p.y>,<p.z>
  new.control,<link>
  serv.newitem i_fire_new
  new.p <eval <p.x> - <dlocal.s>>,<p.y>,<p.z>
  new.control,<link>
endfor
remove

[itemdef i_fire_new]
id = i_fx_explode
type = t_normal
weight = 999

on=@Create
color = 025
attr = attr_static|attr_decay
timer = 1

on=@Timer
remove
return 1

[itemdef i_wall_bomber1]
id = i_stairs_marble
type = t_normal
name = wall

on=@Create
attr = attr_static|attr_move_never
color = 025

[itemdef i_wall_bomber2]
id = i_stairs_marble
type = t_normal
name = explode wall

on=@Create
attr = attr_static|attr_move_never
color = 0481

[FUNCTION f_array]
local.temp = <argv[<eval <argv> - 1>]> -1
return <argv[<dlocal.temp>]>

[FUNCTION f_array_length]
return <dargv>

[itemdef i_gate_bomberman]
id = i_moongate_blue
type = t_moongate
name = bomberman girisi

on=@Create
Color = 53
Attr = attr_move_never|attr_static

on=@Step
if (<src.isplayer>) && !(<src.findlayer(layer_horse)>)
  src.events +e_bomberman
  src.go <def.enterp>
endif

[eof]
Eline sağlık Gökberk. Çok güzel olmuş, fazla uğraşmadığın çok belli =)
Eline sağlık.
Novice
0.1
Eline sağlık.
Şöyle bir can kazanma eklentisi yapılabilir.

[itemdef i_life]
id i_floor_marble
name Can

ON=@step
if (<src.isplayer>) && !(<src.isgm>)
src.tag0.life ++
src.emote gained a life point
remove
endif

forchars 0 kısmınıda aşağıdaki gibi değiştirirsek olucaktır.

forchars 0
  if (<isplayer>) && !(<isgm>)
    if (<ref1> != <uid>)
           if (<tag0.life> > 1)
          tag0.life --
          sysmessage @,,1 <ref1.name> sizi oldurdu. <dtag0.life> canınız kaldı.
          ref1.sysmessage @1153 <name>'i oldurdunuz. <dtag0.life> canı kaldı.
          else
          ref1.sysmessage @1153 <name> olduruldu
    say @1153 elendi!
    sysmessage kaybettiniz.
    go <def.exitp>
    events -e_bomberman
    hits = 0
    timerf 3, resurrect
    endif
    endif
    forplayers 99
      if <isevent.e_bomberman>
        local.playernum ++
      endif
    endfor
peki şöyle bişi yapsak mayın tarlası dıye ?
adam yurudugunde bastıgı tas dıyelım patlıyıcak sonundada 2 gate olucak bırısı canavarlarla dolu bu dungeona bırısıde green acres odul kazanma alanına gıdıcek ordan 3 kutu var bırını secıcek ve bırını sectıgındde dıgerlerı acılmıcak ? yada bırısını sectıgınde kılıtlıyse gm e uyarı gelıcek ve adam elenıcek 2. adam alırsa hedıyeyı o 1. =) gzl bi fikir ama ben yazamam
@tyrslon
Birisi Gelicek Birisi Gidecek Anladıysam Topum :))

@Slothere
Güzel Çalışma Ellerine Sağlık Artık Bomberman Kavgası Biter Herhalde.
Master
59.2997
İlk mesajda da dediğim gibi temel niteliğinde şu an eklenmesini istediklerinizi bana iletirseniz bu akşam gerekli eklentileri yapabilirim.
@Administraktor
kardeşim Bak MAYIN TARLASI alanı mesela dosemeler .add i_floor_marble diyelim ustunde yururken belırlı alanlar olucak adam fnish e dogru kosarken patlıyıcak adam olucek onu safeye reslı bı sekılde atıcak kapiş ?

Anlamıssındır .
slothere biraz abartılı olacak ama yapmışken tamı tamına uygulamak iyi olmazmı mesela taşları kırınca içinden item çıksa ne bileyim hak çıksa hak şişesi cıksa adam öldümü şişe otomatık adamı reslese hakkınız bıtmıştır fln sonra koşma hızlı koşma işi cıksa mesela anim 25 miydi neydi ata binme anımı ata bınmış gibi gösterir hızlı koşmasını sağlasak sonra bombayı kendisi patlatma özelliği normalde bomba kendisi 5 sn ıcınde fln patlıyor bu ıtemı aldımı .patla misal bu komutla bombaları ıstediği zaman patlatsa fln acaba nasıl olur ?

hocam senin anlattığın engelli koşu tarzı bir olay :)
Administraktor : @Gelicek Birisi Gidecek Anladıysam Topum :))

Cevabını veriyim mi :)
aman kalsın ..neleşme olum hemen :)
bazen kutu patlatınca hediye fiLan versin eventi gibi mesela bomx eventi versin bomx eventi olana 3 kare ateş atıcaksa 5 kare ateş atar =)
Paylaşım İçin Teşekkürler

Üye Ol veya Giriş Yap

Bu forum başlığına mesaj atmak istiyorsanız hemen üye olun veya giriş yapın.