IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   mIRC Scripting Sorunları (https://www.ircforumlari.net/mirc-scripting-sorunlari/)
-   -   Çözüldü kod yardımı (https://www.ircforumlari.net/mirc-scripting-sorunlari/982745-kod-yardimi.html)

Rules 01 Temmuz 2022 18:07

kod yardımı
 
Kod:

on *:notice:*:*:{
  if ($nick == Nickserv) {
  if ($nick == nickserv) && (*Ekleyen:* iswm $1-) { /set -u330 %xhopkanal $1 | /set -u330 %xhopsil $token($2,1,64) }
    /tamamla
  }
}

bu kod yardımı ile /ns alist yaptırarak kişinin access seviyesini ve ekli olduğu kanalı variablese yazdırmayı deniyorum da access seviyesini eklerken 2 adet boşluk bırakıyor araya
örneğin
%xhopsil 100 olması gereken yerde
%xhopsil 100 oluyor bunu nasıl çözebilirim
yardımlarınız için şimdiden teşekkür ederim.

Mylife 01 Temmuz 2022 19:23

Cevap: kod yardımı
 
Alıntı:

Rules Nickli Üyeden Alıntı (Mesaj 1042698875)
Kod:

on *:notice:*:*:{
  if ($nick == Nickserv) {
  if ($nick == nickserv) && (*Ekleyen:* iswm $1-) { /set -u330 %xhopkanal $1 | /set -u330 %xhopsil $token($2,1,64) }
    /tamamla
  }
}

bu kod yardımı ile /ns alist yaptırarak kişinin access seviyesini ve ekli olduğu kanalı variablese yazdırmayı deniyorum da access seviyesini eklerken 2 adet boşluk bırakıyor araya
örneğin
%xhopsil 100 olması gereken yerde
%xhopsil 100 oluyor bunu nasıl çözebilirim
yardımlarınız için şimdiden teşekkür ederim.

Merhaba, tam olarak yapmak istediğinizi belirtirseniz daha detaylı bir şekilde yardımcı olmaya çalışırım.

Şimdi var ve set değişkenlerine bir atama yapmak istiyorsak o atamanın yerini tam olarak belirlememiz gerekir.

Örnek olması için;

Kod:

on *:notice:*:*: { if $regex($nick,/nickserv/i) { echo -a $1  => 1. yakalanan $2 => ikinci yakalanan $3 => ücüncü yakalanan $4- => dördüncü yakalanan } }
/ns alist nick yapıyoruz ve bu şekilde yansıtılan cümlenin kacıncı kelime olarak tanımlandığını görüyoruz.

Benim ekranım;

(19:12:41) -NickServ- 13. #rock - Level : 45

Echo mesajı;

13. => 1. yakalanan #rock => ikinci yakalanan - => ücüncü yakalanan Level : 45 => dördüncü yakalanan

Yani bunun anlamı, 13. sırada 1. kelime kanalın adı 2. kelime olarak sistem tanıyormuş yani ( $2 )

Şimdi bu elde ettiğimiz rock kanalını set kullanarak bir atama gerçekleştirelim. Bunu yapabilmek için tam olarak yerini belirtmemiz gerekiyor 1. kelime 13 yani 13. sırada ekli olan kanalmış burdan yola cıkacağız.

Kod:

on *:notice:*:*: { if $regex($nick,/nickserv/i) && $regex($1,/^13\./i) { set -u60 %:kanal $2 } }
/nickserv alist nick kullanıyoruz. Daha sonra %:kanal olarak belirlediğimiz değişkenimize 13. sıradaki ekli olan kanalı atıyoruz.

Bu atamayı yapıp yapmadığını öğrenmek içinde;

Kod:

//echo -a $var(%:kanal,1).value
=> Bu bize belirlenen değişkenin içinde var olan değerin adını döndürür.

Denediğimiz de #Rock olarak yanıt verir. İyi forumlar dilerim.

Rules 02 Temmuz 2022 09:24

Cevap: kod yardımı
 
Ayrıntılı bilgi için teşekkür ederim. Size Önce yaşadığım problemi sonrasında da yapmak istediğimi söyleyeyim.
Paylaşmış olduğum kod ile değişken atamasını gerçekleştiriyor ama hatalı olarak yapıyor alistle çektiğimiz acces seviyesi ile %xhopsil değişkeni arasına 2 adet boşluk ekliyor buda
Kod:

alias yansıt {
if (%xhopsil == 40) { /cs access %xhopkanal del %xhopnick }
}

aliasının çalışmamasına neden oluyor variableste bırakılan 2 boşluğu teke düşürdüğümde /yansıt komutunu manuel olarak uyguladığım zaman eşleşme sağlanıyor.
-------------
yapmaya çalıştığım kod ise nickin belirlemiş olduğum 14 adet kanalda 40 seviyesinde access ekli ise sildirmek diğerler seviyede ekli ise karışmamak.

Feragat 02 Temmuz 2022 11:22

Cevap: kod yardımı
 
Alıntı:

Rules Nickli Üyeden Alıntı (Mesaj 1042699126)
Ayrıntılı bilgi için teşekkür ederim. Size Önce yaşadığım problemi sonrasında da yapmak istediğimi söyleyeyim.
Paylaşmış olduğum kod ile değişken atamasını gerçekleştiriyor ama hatalı olarak yapıyor alistle çektiğimiz acces seviyesi ile %xhopsil değişkeni arasına 2 adet boşluk ekliyor buda
Kod:

alias yansıt {
if (%xhopsil == 40) { /cs access %xhopkanal del %xhopnick }
}

aliasının çalışmamasına neden oluyor variableste bırakılan 2 boşluğu teke düşürdüğümde /yansıt komutunu manuel olarak uyguladığım zaman eşleşme sağlanıyor.
-------------
yapmaya çalıştığım kod ise nickin belirlemiş olduğum 14 adet kanalda 40 seviyesinde access ekli ise sildirmek diğerler seviyede ekli ise karışmamak.

Dün akşam senin sorunun için paylaştığın kodu deneyecektim ama bulunduğum sunucuda ns alist yaptığımda farklı bir çıktı veriyor. Unreal versiyonu veya editleri ile alakalı olabilir.

Eğer aldığın veride fazla olan bir karakter varsa "boşluk" gibi, $remove ile kaldırabilirsiniz.
Örnek: $remove($token($2,1,64), $chr(32))

Test şansım şuan yok. Eğer çözüm bulamazsan başka bir alternatif deneriz.

Mylife 02 Temmuz 2022 13:14

Cevap: kod yardımı
 
Alıntı:

Rules Nickli Üyeden Alıntı (Mesaj 1042699126)
Ayrıntılı bilgi için teşekkür ederim. Size Önce yaşadığım problemi sonrasında da yapmak istediğimi söyleyeyim.
Paylaşmış olduğum kod ile değişken atamasını gerçekleştiriyor ama hatalı olarak yapıyor alistle çektiğimiz acces seviyesi ile %xhopsil değişkeni arasına 2 adet boşluk ekliyor buda
Kod:

alias yansıt {
if (%xhopsil == 40) { /cs access %xhopkanal del %xhopnick }
}

aliasının çalışmamasına neden oluyor variableste bırakılan 2 boşluğu teke düşürdüğümde /yansıt komutunu manuel olarak uyguladığım zaman eşleşme sağlanıyor.
-------------
yapmaya çalıştığım kod ise nickin belirlemiş olduğum 14 adet kanalda 40 seviyesinde access ekli ise sildirmek diğerler seviyede ekli ise karışmamak.

Boşluğa sebep olan şeyin ne olduğunu bu şekilde anlayamadım kodu tam olarak görürsem eğer birşeyler söyliyebilirim ama bunun yerine ben senin istediğini yapan bir kod hazırladım bu yapmış olduğum kodu inceleyip sorunu kendin görebilir ve daha sonraki yapacağın işlemleri de ona göre yapabilirsin.

Kod:

on *:input:#kanal: { if $regex($1-,/^[\.!]n[ıi]ckserv/Si) && $regex($2,/al[ıi]st/Si) { nickserv alist $3 | set -u30 %:n $3 | set -u30 %:k # } }
on *:notice:*:*: { if $regex($nick,/nickserv/i) && $regex($1,/^\d(\d?)\./i) { msg %:k kanal: $2 Seviye: $6 | set -u30 %:s $6 | $iif(%:s == 40,.chanserv access $2 del %:n,return) } }

Kullanım;

.nickserv alist nick => oper/admin yetkisinde olmanız lazım bu komutu uygulayabilmek için.
1. satırdaki komut ile tetiklenir hangi kanalda işlem yapacağınızı kırmızı ile işaretlediğim kanalı belirtmelisiniz.
Kullanılan kanala belirlenen nickin alist bilgilerini yansıtır kanal ve seviye olarak daha sonra da eğer 40. seviyede bir access seviyesi var ise o kanalları siler.

Örnek görünüm;

(13:00:44) <Mylife> .nickserv alist wrath
(13:00:44) <Mylife> kanal: #Elinsu Seviye: 100
(13:00:44) <Mylife> kanal: #gold Seviye: 50
(13:00:44) <Mylife> kanal: #Kalbim-DJ Seviye: 100
(13:00:44) <Mylife> kanal: #Kalbim-istek Seviye: 100
(13:00:44) <Mylife> kanal: #kalbim-sohbet Seviye: 100
(13:00:44) <Mylife> kanal: #Kalbim-Yönetim Seviye: 100
(13:00:44) <Mylife> kanal: #KalbimFM Seviye: 100
(13:00:44) <Mylife> kanal: #kalbimfm@ Seviye: 100
(13:00:44) <Mylife> kanal: #loca Seviye: 45
(13:00:44) <Mylife> kanal: #muhabbet Seviye: 50
(13:00:44) <Mylife> kanal: #radyohelp Seviye: 100
(13:00:44) <Mylife> kanal: #rock Seviye: 45

servis mesajı;

(13:00:46) <ChanServ> Mylife nicki #gold kanalindan wrath nickinin access'ini sildi.
(13:00:51) <ChanServ> Mylife nicki #muhabbet kanalindan wrath nickinin access'ini sildi.

Burada 40 seviye access olmadığı için 50. seviyeler de denedim ben kod da 40 olarak düzelttim.

Unreal3.2.8.1 denenmiştir. İyi forumlar dilerim.

Rules 02 Temmuz 2022 13:44

Cevap: kod yardımı
 
Kodun tamamı
Kod:


on *:text:*:#aa:{
  if $regex($1,/^[!.-]deneme/Si) {
    /set -u330 %denemenick $2
/ns alist %denemenick
    }
}

on *:notice:*:*:{
  if ($nick == Nickserv) {
    if ($nick == nickserv) && (*Ekleyen:* iswm $1-) { /set -u330 %xhopkanal $1 | /set -u330 %xhopsil $remove($token($2,1,64),$chr(32)) }
    /tamamla
  }
}

alias tamamla {
  if (%xhopsil == 40) { /cs access %xhopkanal del %xhopnick |  /msg #aa %xhopnick nicki %xhopkanal kanalında %xhopsil seviyesindeki yetkisi silindi. }
}


Mylife 02 Temmuz 2022 14:06

Cevap: kod yardımı
 
Alıntı:

Rules Nickli Üyeden Alıntı (Mesaj 1042699217)
Kodun tamamı
Kod:


on *:text:*:#aa:{
  if $regex($1,/^[!.-]deneme/Si) {
    /set -u330 %denemenick $2
/ns alist %denemenick
    }
}

on *:notice:*:*:{
  if ($nick == Nickserv) {
    if ($nick == nickserv) && (*Ekleyen:* iswm $1-) { /set -u330 %xhopkanal $1 | /set -u330 %xhopsil $remove($token($2,1,64),$chr(32)) }
    /tamamla
  }
}

alias tamamla {
  if (%xhopsil == 40) { /cs access %xhopkanal del %xhopnick |  /msg #aa %xhopnick nicki %xhopkanal kanalında %xhopsil seviyesindeki yetkisi silindi. }
}


servis noticelerini görmek lazım set olarak değişken atarken kanal kısmına mı denk geliyor bilmek lazım. %xhopkanal olarak $1 atanmış ama kodun devamın da %:hopsil $2 için işlem yapılmış burada $2 nereye denk geliyor $1 nereye denk geliyor alınan veride orası önemli biraz karışmış yani yukarıda yapmak istediğinizi yapan bir kod paylaştım. Var ve set variables değişken atamalarında hedefi tam olarak belirtmeniz gerekir çünkü atama sırasında hangi değeri atarsanız aynı o şekilde bir atama yapar.

Aşağıdaki konuları incelemenizi öneririm.

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Üzerine tıklayarak konulara gidebilirsin. İyi forumlar.

Rules 04 Temmuz 2022 10:10

Cevap: kod yardımı
 
Alıntı:

Rules Nickli Üyeden Alıntı (Mesaj 1042699217)
Kodun tamamı
Kod:


on *:text:*:#aa:{
  if $regex($1,/^[!.-]deneme/Si) {
    /set -u30 %xhopnick $2
/ns alist %xhopnick
    }
}

on *:notice:*:*:{
  if ($nick == Nickserv) {
    if ($nick == nickserv) && (*Ekleyen:* iswm $1-) { /set -u30 %xhopkanal $1 | /set -u30 %xhopsil $remove($token($2,1,64),$chr(32)) }
    /tamamla
  }
}

alias tamamla {
  if (%xhopsil == 40) { /cs access %xhopkanal del %xhopnick |  /msg #aa %xhopnick nicki %xhopkanal kanalında %xhopsil seviyesindeki yetkisi silindi. }
}




Problem devam etmekte :)

Noticeler :
-
[09:38:11:] -NickServ- #mirchelp 30 (VOP) (Ekleyen: H-Bot) (Son kullanım: 17 Haziran 2022 Cuma 14:16)
-
[09:38:11:] -NickServ- #mobil 40 (HOP) (Ekleyen: NoMercy) (Son kullanım: 04 Temmuz 2022 Pazartesi 09:25)
-
[09:38:11:] -NickServ- #moos 40 (HOP) (Ekleyen: NoMercy) (Son kullanım: 25 Haziran 2022 Cumartesi 09:41)
-
[09:38:11:] -NickServ- #operhelp 50 (AOP) (Ekleyen: NoMercy) (Son kullanım: 02 Temmuz 2022 Cumartesi 18:44)
-[COLOR="Silver"]

--IRCForumlari.NET ; Flood Engellendi -->-> Yeni yazılan mesaj 10:10 -->-> Daha önceki mesaj 10:08 --

Alıntı:

Feragat Nickli Üyeden Alıntı (Mesaj 1042699149)
Dün akşam senin sorunun için paylaştığın kodu deneyecektim ama bulunduğum sunucuda ns alist yaptığımda farklı bir çıktı veriyor. Unreal versiyonu veya editleri ile alakalı olabilir.

Eğer aldığın veride fazla olan bir karakter varsa "boşluk" gibi, $remove ile kaldırabilirsiniz.
Örnek: $remove($token($2,1,64), $chr(32))

Test şansım şuan yok. Eğer çözüm bulamazsan başka bir alternatif deneriz.

Hocam alternatife ihtiyacım var :tatli:


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 19:08.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk