Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

&& || if


vocter

Öne çıkan mesajlar

Murderer Resurrection Gate yazdım.Fakat scriptte kullandığım actionların sadece ghostlar için geçerli olmasını istiyorum.Birkaç kez denedim ama olmadı.Scripti gönderiym


[itemdef i_pk_res_gate]
DEFNAME=i_pk_res_gate
ID=i_moongate_red
TYPE=t_normal
NAME=Murderer Resurrection Gate

ON=@STEP
if ( >5)
src.resurrect
return 1
Else
src.sysmessage Kill sayiniz 5'in altinda
return 1
endif

ON=@DCLICK
if ( > 5)
src.resurrect
return 1
Else
src.sysmessage Kill sayiniz 5'in altinda
return 1
endif[hline]Shock The Bizkit

Locus&Sylveria Emeklisi
Link to comment
Sosyal ağlarda paylaş

[itemdef i_pk_res_gate]
DEFNAME=i_pk_res_gate
ID=i_moongate_red
TYPE=t_normal
NAME=Murderer Resurrection Gate

ON=@STEP
if((==c_ghost_man) && (==c_ghost_woman) )
if ( >5)
src.resurrect
return 1
Else
src.sysmessage Kill sayiniz 5'in altinda
return 1
endif
endif

ON=@DCLICK
if((==c_ghost_man) && (==c_ghost_woman) )
if ( > 5)
src.resurrect
return 1
Else
src.sysmessage Kill sayiniz 5'in altinda
return 1
endif
endif
[hline]DM: The dragon capsizes the boat with a powerful swish of its tail, you are all thrown into the water!
Player: I CAST LIGHTNING BOLT!
Link to comment
Sosyal ağlarda paylaş

said:
Sailor, 06 Şubat 2003 19:40 tarihinde demiş ki:
[itemdef i_pk_res_gate]
DEFNAME=i_pk_res_gate
ID=i_moongate_red
TYPE=t_normal
NAME=Murderer Resurrection Gate

ON=@STEP
if((==c_ghost_man) && (==c_ghost_woman) )
if ( >5)
src.resurrect
return 1
Else
src.sysmessage Kill sayiniz 5'in altinda
return 1
endif
endif

ON=@DCLICK
if((==c_ghost_man) && (==c_ghost_woman) )
if ( > 5)
src.resurrect
return 1
Else
src.sysmessage Kill sayiniz 5'in altinda
return 1
endif
endif
[hline]DM: The dragon capsizes the boat with a powerful swish of its tail, you are all thrown into the water!
Player: I CAST LIGHTNING BOLT!


Thnx.

Bu arada en sonunda evimdeki bilgisayarımın monitörü geldi.Bu yüzden artık kendi accountum ile burada olucam :)[hline]Nebula(Locus)&Kolayoyun(Sylveria) Emeklisi
The Bizkits
Link to comment
Sosyal ağlarda paylaş

on=@step
if((==c_ghost_man) && (==c_ghost_woman) && ( > 5))

Kod yazmak sanattır.

ps: Bu hayalet olup olmadığını kontrol etmek için başka bir yolda flag kontrolü olabilir. Ama flaglerle eğer bilginiz yoksa hiç oynamamak daha hayırlı. Ama kabul edersiniz ki 3 conditionu 2'ye indirmek daha iyidir.[hline]In God I Trust
For Rest I Just Test
Link to comment
Sosyal ağlarda paylaş

said:
GE-TA, 07 Şubat 2003 11:19 tarihinde demiş ki:
on=@step
if((==c_ghost_man) && (==c_ghost_woman) && ( > 5))

Kod yazmak sanattır.

ps: Bu hayalet olup olmadığını kontrol etmek için başka bir yolda flag kontrolü olabilir. Ama flaglerle eğer bilginiz yoksa hiç oynamamak daha hayırlı. Ama kabul edersiniz ki 3 conditionu 2'ye indirmek daha iyidir.[hline]In God I Trust
For Rest I Just Test


hayır, bu şekilde yapınca hep aynı erroru verir.. yani ölü olmayan b,ri bile üstünden geçse killiniz 5in altında der.. ya da killi beşin altında olan ölülere de ölü değilsiniz der. yani her iki koşulun sağlanamaması durumunda da aynı mesajı verir.. fakat benim yazdığım gibi olursa ölü olmayanlara hiç mesaj yazmaz, ölü fakat killi az olanlara error msg verir..[hline]DM: The dragon capsizes the boat with a powerful swish of its tail, you are all thrown into the water!
Player: I CAST LIGHTNING BOLT!
Link to comment
Sosyal ağlarda paylaş

hmm evet hata varmış ben arkadaşınkini yazdım sadece oraya bakamamıştım.. ama slayerinkinde de hata var, ((xx || yy) && zz)) şeklinde olması lazım. neyse bu son hali olur herhalde.. (not: sphere scripting bilmiyorum pol rlz diyorum fakat if, || && vs bütün dillerde aynı zaten ondan rahatlıkla söylüyorum :) scripting diğer kısımlarında hata varsa bilmem yani.)

[itemdef i_pk_res_gate]
DEFNAME=i_pk_res_gate
ID=i_moongate_red
TYPE=t_normal
NAME=Murderer Resurrection Gate

ON=@STEP
if((==c_ghost_man) || (==c_ghost_woman) )
if ( >5)
src.resurrect
return 1
Else
src.sysmessage Kill sayiniz 5'in altinda
return 1
endif
endif

ON=@DCLICK
if((==c_ghost_man) || (==c_ghost_woman) )
if ( > 5)
src.resurrect
return 1
Else
src.sysmessage Kill sayiniz 5'in altinda
return 1
endif
endif
[hline]DM: The dragon capsizes the boat with a powerful swish of its tail, you are all thrown into the water!
Player: I CAST LIGHTNING BOLT!
Link to comment
Sosyal ağlarda paylaş

Oy oy oy, arkadaslar benim takildigim nokta condition sayisiydi. Gereksiz yere islem zamani harciyorsunuz. Mantik hatasini hic kontrol etmedim direk yukaridan kopyaladim ve gostermek istedigim yapiyi hatali ornek ile gosterdim.

Sailor alt taraftaki mesaj hatali cikacak diye ne diye bosa islem harciyayim. Kodlama konusundaki sanattir kismida o konu iste. Mesaja, killiniz az da, olu degilsinizde gibi bir ton yazi yerine bu gate'i kullanamazsiniz yazarsin ve tek if ile olayi bitirisin. Yani soyle;

Eger olu erkek yada(or) kadin ise ve (and) kill'i 6'dan fazla ise canlandir degilse bu gate'i kullanamazsiniz.

Hatta daha guzeli Eger oyuncu olu flag'ini tasiyorsa ve(and) kill'i 6'dan fazla ise canlandir degilse bu gate'i kullanamazsiniz.

Anlastik mi?[hline]In God I Trust
For Rest I Just Test
Link to comment
Sosyal ağlarda paylaş

said:
Baggio, 08 Şubat 2003 00:25 tarihinde demiş ki:
if ( &statf_dead) && ( > 5)
src.resurrect
else
src.sysmessage olmaz oole
endif
return 1[hline]Gesp (a.k.a Baggio)
Level 50 Eldritch of Soul Reavers
Email: [email protected]


Tesekkurler Baggio. Arada insanin dili olacak insanlarla karsilasmasi guzel birsey.[hline]In God I Trust
For Rest I Just Test
Link to comment
Sosyal ağlarda paylaş

said:
Sailor, 07 Şubat 2003 22:46 tarihinde demiş ki:
hehe
l1 de o kadar mantık konusu var biraz çalışsaydınız ya ona! :P


lafım sana deil Sailor, sadecee genel bilgi:

Zaten bu || ve && lerin adı logical operator olarak gecer. Ve her zaman iki şey icin kullanılır. İki Boolean terimi karsılastırlar ve sonucu size geri döner.
Booleanlara mesela sphereden en basit örnek ..
adam gm ise 1 deilse 0 olur.

iki olay ele alalım..A ve B

A------ B------ A||B------ A&&B----- !A
false--false-----false------ false -----true
false--true----- true-------false------true
true --false-----true-------false------false
true --true -----true-------true------ false

Ayrıca yazagınız scriptlerde sunları da kullanabilirsiniz..

!(A&&B) = (!A) || (!B)
!(A||B) = (!A) && (!B)

Bunlar da yukardaki ifadelerden geliyor. Biraz düşünürseniz zaten aynı şeyleri kendiniz de cıkarabilirsiniz..

Şimdi bir de bütün bu logical operatörler daha önce de dedigim gibi sadece iki şeyi karşılastırma da kullanılır. Yani 3 şeyi karsılastıramazsınız. İlk önce ikisini karsılasıtırıp daha sonra dieriyle karsılastırmak zorundasınız.

Şimdi bir de şöle bi olay var. (Ben right-associative dedim ama aslında kullandıgım terim yanlıs:))
Eger siz 3 tane şeyi karşılastırken parantez koymazsanız:
Ör/
A||B&&C
Programlar soldan saga deilde satırları sagdan sola dogru okurlar. Bu logical karsılatırmalarda makine ilk gördügü iki şeyi alır ve karsılastırır. Yani yukardaki ifade suna döner.
A||(B&&C) dolayısıyla yazmak istediginiz bu ifade deilse yanlıl bişiler yazmıs olursunuz.

veya 5 li bir örnek verirsek:
A||B||C&&D||E hiçbir parantez kullanmadıgınız taktirde, bu makine tarafından su şekilde algılanır..
A||((B||C)&&(D||E))

[Bu mesaj CEDAY tarafından 08 Şubat 2003 03:47 tarihinde değiştirilmiştir]
Link to comment
Sosyal ağlarda paylaş

said:
GE-TA, 08 Şubat 2003 00:19 tarihinde demiş ki:
Oy oy oy, arkadaslar benim takildigim nokta condition sayisiydi. Gereksiz yere islem zamani harciyorsunuz. Mantik hatasini hic kontrol etmedim direk yukaridan kopyaladim ve gostermek istedigim yapiyi hatali ornek ile gosterdim.

Sailor alt taraftaki mesaj hatali cikacak diye ne diye bosa islem harciyayim. Kodlama konusundaki sanattir kismida o konu iste. Mesaja, killiniz az da, olu degilsinizde gibi bir ton yazi yerine bu gate'i kullanamazsiniz yazarsin ve tek if ile olayi bitirisin. Yani soyle;

Eger olu erkek yada(or) kadin ise ve (and) kill'i 6'dan fazla ise canlandir degilse bu gate'i kullanamazsiniz.

Hatta daha guzeli Eger oyuncu olu flag'ini tasiyorsa ve(and) kill'i 6'dan fazla ise canlandir degilse bu gate'i kullanamazsiniz.

Anlastik mi?[hline]In God I Trust
For Rest I Just Test


Zaten bilgisayar aynı anda o kadar işlem yapıyorki, adam gateden geçince bir if fazla olmuş fazla farketmez. örnek olarak her npc sonsuz döngülerden oluşur. daha pek çok örnek gibi.. ha, eğer farkedecek diyorsan öyle yap. farketmnez sonuçta mesaj yazmasa bile olur yani... sonuçta sanat görselliktir, aynı hataytı vermesi de görselliği bozar bence
Link to comment
Sosyal ağlarda paylaş

Fazladan bir check muhtemelen cok birşeyi değiştirmicektir. Ancak şöyle bir şey de var. Yazdıgınız her check in yapacagı işlem tam olarak aynı deildir. Yani birebir check sayısıyla performansın alakası yoktur. Bu daha cok code'un komplex olup olmamasıyla alakalı.

Ancak illa ki check sayısı azaltmak istiosanız, mevcut iki booleanı belirli biçimlerde sıralayarak istediginizi yapabilirsiniz. Şöle ki:

|| ve && operatorleri Left-Associative..Bunun anlamı:
A||B yi bilgisayar evaluate ederken A dogru ise B yi evaluate etmez.
Aynı şekilde:
A&&B yi evaluate ederken de A yanlış ise B yi evaluate etmez.

Yani bunları kullanırken yanlış veya dogru olma özelligi daha fazla olan terimleri yukardaki mantıga göre sıralarsanız, check sayısını cogu zaman azaltırsınız.
Link to comment
Sosyal ağlarda paylaş

×
  • Yeni Oluştur...