- Малко помощ с аддони
12
WT форуми -> Всичко за mIRC -> Малко помощ с аддони
Създайте нова тема Напишете отговор 
Автор Съобщение
DownFall
Турист
Турист

Регистриран на: 03/09/2009 9:52 pm

Support: 1
Bonus: 2
Мнения: 353
Мнение 01/11/2009 6:39 pm     Малко помощ с аддони Отговорете с цитат


Здравейте,

Опитвам се сам да напиша бот, но не разбирам достатъчно, затова искам да попитам:

1. Как да направя файл, от който да се дърпа информацията, след което да се банва потребителя. Искам да използвам файлове, за да кажа на скрипта, кои са така наречените "лоши думички", а отделно и за autokick мога да го използвам, като банва всички IP адреси посочени в друг файл..

2. Трябва ми flood защита Smile

3. След като напиша /whois nick, ми излиза следното
nick is D2XP@1.2.3.4 * PvPGN user
user on  #channel
End of /WHOIS list


Трябва ми след като напиша например !ip nick, бота да ми извежда IP адреса на nick, който спрямо примера по-горе е 1.2.3.4.

Искам само да уточня, че бота не е предназначен за UniBG. Мрежата, в която ще го пусна е по-различна и няма CS и seenserv например..

Благодаря предварително на отзовалите се (дано да има такива) Smile
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Replace
Developer
Developer

Регистриран на: 19/08/2007 4:24 am

Support: 652
Bonus: 1252
Мнения: 4075
Мнение 01/11/2009 7:12 pm     Re: Малко помощ с аддони Отговорете с цитат


DownFall написа:
1. Как да направя файл, от който да се дърпа информацията, след което да се банва потребителя. Искам да използвам файлове, за да кажа на скрипта, кои са така наречените "лоши думички", а отделно и за autokick мога да го използвам, като банва всички IP адреси посочени в друг файл..

Първо си правиш един файл , в моя случай съм го кръстил akick.dat и после си добавяш самия скрипт
on *:join:#:{
  if ($read(akick.dat,w,$address($nick,2))) {
    .msg $chan Шъ тъ банна :-)
  }
}

Примерни записи в akick.dat
*!*@1.2.3.4
*!*@5.6.7.7
П.П. Когато ги записваш във файла ,ползвай
$address($nick,2)

А за лоши думи може да използваш нещо подобно
Цитат:

on *:text:*:#:{
if ((badword1 isin $1-) || (badword2 isin $1-) || (badword3 isin $1-)) { msg $chan Внимавай с езика $nick :@ }
}


DownFall написа:
2. Трябва ми flood защита Smile

Това ми се струва вече играчка Wink

DownFall написа:
3. След като напиша /whois nick, ми излиза следното
nick is D2XP@1.2.3.4 * PvPGN user
user on  #channel
End of /WHOIS list


Трябва ми след като напиша например !ip nick, бота да ми извежда IP адреса на nick, който спрямо примера по-горе е 1.2.3.4.


Ето ти едно скриптче
on *:text:!ip*:#:{
  if ($2) { .enable #ipcheck | set %chan $chan | whois $2 }
}
#ipcheck off
RAW 311:*:*:{ haltdef | msg %chan $1 -> $4 | unset %chan | unset %nick | .disable #ipcheck }
#ipcheck end
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
DownFall
Турист
Турист

Регистриран на: 03/09/2009 9:52 pm

Support: 1
Bonus: 2
Мнения: 353
Мнение 01/11/2009 10:08 pm      Отговорете с цитат


Лошите думички работят Smile Има ли го варианта обаче да се направи при първо нарушение да предупреждава, при второ да киква, при трето да банва? Smile

Също така в бота добавям
500:*!*@1.2.3.4
500:*username*@*


Има ли начин да се направи тези да се пропускат?

Кодовете за /whois-а и за akick не работят Sad
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
DownFall
Турист
Турист

Регистриран на: 03/09/2009 9:52 pm

Support: 1
Bonus: 2
Мнения: 353
Мнение 02/11/2009 3:43 pm      Отговорете с цитат


Моя грешка, работят кодовете Smile

Ако може към whois-а едно допълнение, когато изпише No such nick/channel да връща съобщение, че потребителя не е онлайн Smile

Също и за лошите думички, това което описах в предното си мнение.. При първо нарушение да предупреждава, при второ да киква, а при трето да банва за определен период от време, след което записите да се нулират и всичко да започне от начало Smile Сървъра премахва временните банове автоматично, така че не е нужно бота да смята кога трябва да се премахне Smile

Благодая предварително.. Smile
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Replace
Developer
Developer

Регистриран на: 19/08/2007 4:24 am

Support: 652
Bonus: 1252
Мнения: 4075
Мнение 02/11/2009 7:58 pm      Отговорете с цитат


Заповядай ,малко преформени Wink
on *:text:!ip*:#:{
  if ($2) { .enable #ipcheck | set %chan $chan | whois $2 }
}
#ipcheck off
RAW 311:*:*:{ haltdef | msg %chan $2 -> $4 | unset %chan | unset %nick | .disable #ipcheck }
RAW 401:*:*:{ haltdef | msg %chan $2 не е на линия в момента | unset %chan | unset %nick | .disable #ipcheck }
#ipcheck end

alias -l sumwarn { return $readini(addons/web-tourist.mrc,warn,$nick) }
alias -l calcwarn { return $readini(addons/web-tourist.mrc,time,$nick) }
on *:text:*:#:{
  if ((badword1 isin $1-) || (badword2 isin $1-) || (badword3 isin $1-)) {
    if ((!$sumwarn($nick)) || ($calcwarn < $ctime)) {
      writeini addons/web-tourist.mrc warn $nick 1
      writeini addons/web-tourist.mrc time $nick $calc($ctime + 10)
      msg $chan Първо предупреждение $nick
    }
    else {
      if (($sumwarn($nick) == 1) || ($sumwarn($nick) == 2)) {
        writeini addons/web-tourist.mrc warn $nick $calc($sumwarn + 1)
        writeini addons/web-tourist.mrc time $nick $calc($ctime + 10)
        msg $chan Внимавай с езика $nick :@ ( $sumwarn предупреждения )

      }
      else {
        remini addons/web-tourist.mrc warn $nick
        remini addons/web-tourist.mrc time $nick
        msg $chan Казах ли ти да внимаваш с думите $nick :@ :@ :@
        msg $chan и следва бан за тебе
      }
    }
  }
}


Промени си го както искаш ,понеже нямам много време.Значи набързо по-важното ,което може да оправиш. Ако искаш на 3-тото предупреждение (а не след третото) предупреждение , реда
Цитат:
if (($sumwarn($nick) == 1) || ($sumwarn($nick) == 2)) {

го правиш на
Цитат:
if (($sumwarn($nick) == 1)) {

Оправи си и директорията до адона (в моя случай това беше addons/web-tourist.mrc) , задай точния път до адона ,защото и там се записват данните за потребителите.
Направил съм го на 10 секунди , в смисъл след казаната лоша дума , добавя 10 секунди , и ако през това време каже още някоя лоша дума добавя предупреждение и/или банва направо. Това може да оправиш от
Цитат:
writeini addons/web-tourist.mrc time $nick $calc($ctime + 10)

Друго не се сещам , ако има нещо неясно питай Smile
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
DownFall
Турист
Турист

Регистриран на: 03/09/2009 9:52 pm

Support: 1
Bonus: 2
Мнения: 353
Мнение 03/11/2009 2:37 am      Отговорете с цитат


Златен! Работят чудесно всичките кодчета Smile
Много благодаря.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Replace
Developer
Developer

Регистриран на: 19/08/2007 4:24 am

Support: 652
Bonus: 1252
Мнения: 4075
Мнение 03/11/2009 3:12 am      Отговорете с цитат


За нищо Wink
Много се радвам ,че все още има "патриоти" в mIRC Very Happy
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
DownFall
Турист
Турист

Регистриран на: 03/09/2009 9:52 pm

Support: 1
Bonus: 2
Мнения: 353
Мнение 03/11/2009 11:50 am      Отговорете с цитат


Еми, то имам игрално сървърче, към което има опция за connect от mirc и ми трябваше бота, за да стягам играчите, че много взеха да си позволяват, затова и уточних, че сървъра е по-различен от този на унибг и стандартните ботове нещо не можеха да се разберат с него Very Happy

Само Flood protect tcl остава да си намеря и вариант как дадените от теб кодове да не важат за потребителите добавени в user lista на бота Smile

ПП. А има ли начин да банва и някой, който дава някакъв IP адрес?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
DownFall
Турист
Турист

Регистриран на: 03/09/2009 9:52 pm

Support: 1
Bonus: 2
Мнения: 353
Мнение 08/11/2009 1:56 am      Отговорете с цитат


Опитах се малко да тунинговам лошите думички, така че да черпи информацията от отделен файл, че е по-удобно Smile

alias -l sumwarn { return $readini(sources/badword.mrc,warn,$nick) }
alias -l calcwarn { return $readini(sources/badword.mrc,time,$nick) }
on *:text:*:#: {
if ($readini(sources\dumichki.mrc,badwords,$1-)) {

if ((!$sumwarn($nick)) || ($calcwarn < $ctime)) {
writeini sources/badword.mrc warn $nick 1
writeini sources/badword.mrc time $nick $calc($ctime + 3600)
msg $chan $nick $+ , psuwnite i obidite w chata sa strogo zabraneni. Ako smqtash, che towa e greshka, pishi ni na ***@***.** | msg $chan Obidna duma e zasechena w slednoto izrechenie: $1- $+ .
}

else if ($sumwarn($nick) == 1) {
writeini sources/badword.mrc warn $nick 2
writeini sources/badword.mrc time $nick $calc($ctime + 3600)
msg $chan $nick $+ , psuwnite i obidite w chata sa strogo zabraneni. Towa e twoeto $sumwarn prowinenie w ramkite na 1 chas. Ako smqtash, che towa e greshka, pishi ni na ***@***.** | msg $chan Obidna duma e zasechena w slednoto izrechenie: $1- $+ .
}

else if ($sumwarn($nick) == 2) {
writeini sources/badword.mrc warn $nick 3
writeini sources/badword.mrc time $nick $calc($ctime + 3600)
msg $chan $nick $+ , psuwnite i obidite w chata sa strogo zabraneni. Towa e twoeto $sumwarn prowinenie w ramkite na 1 chas. Ako smqtash, che towa e greshka, pishi ni na ***@***.** | msg $chan Obidna duma e zasechena w slednoto izrechenie: $1- $+ .
kick $chan $nick psuwnite i obidite w chata sa storgo zabraneni
}

else if ($sumwarn($nick) == 3) {
remini sources/badword.mrc warn $nick
remini sources/badword.mrc time $nick
msg $chan $nick $+ , dobawen si w auto kick lista na bota i poweche nqma da mojesh da wlizash w tozi channel. Ako smqtash, che towa e greshka, pishi na ***@***.**  | .msg $chan Obidna duma e zasechena w slednoto izrechenie: $1- $+ . | .notice $nick $nick $+ , dobawen si w auto kick lista na bota i poweche nqma da mojesh da wlizash w tozi channel. Ako smqtash, che towa e greshka, pishi na ***@***.** | .notice $nick Obidna duma e zasechena w slednoto izrechenie: $1- $+ .  | .kick $chan $nick Auto Kick
writeini akick.dat ip $address($nick,2) $ctime | .writeini akick.dat account $nick $ctime
}

}
}


Примерно в badword.mrc съм задал думичката "gosho". Всичко е ок, ако напиша gosho в канала ме предупреждава, записва във файла, както си му е реда Smile

Ако напиша dasjdoiasjdigoshoasdiasda не предприема нищо - точно така исках да се получи, тъй като стават много недоразумения иначе.

Проблема е, че ако напиша asdas dsa dsa sa sa gosho eiwejgweg sdas das пак няма да ме банне, това вече е проблем, с който не можах да се оправя..

Help me please Smile
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Replace
Developer
Developer

Регистриран на: 19/08/2007 4:24 am

Support: 652
Bonus: 1252
Мнения: 4075
Мнение 09/11/2009 1:12 am      Отговорете с цитат


Модни си го по този начин
on *:text:*:#:{
  var %words $gettok($1-,0,32)
  var %inc 1
  while (%inc <= %words) {
    if ($read(database/badwords.txt,w,$gettok($1-,%inc,32))) {
      .msg $chan Засечена обидна дума $gettok($1-,%inc,32)
    }
    inc %inc
  }
}


П.П. Мързеше ме отново да го пиша или променям стария код ,и затова направо написах този. Вкарваш думите в някакъв файл (в моя случай database/badwords.txt във обикновен формат ,записвани с write (ако ще ги записваш)
badword1
badword2
badword3
...
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
imotcc
Нов
Нов

Регистриран на: 27/07/2009 1:00 am

Support: 1
Bonus: 2
Мнения: 19
Мнение 14/11/2009 3:27 am      Отговорете с цитат


Абе имам един въпрос Smile Защо просто не си пуснеш един Бот в канала ама не от тия малоумните скриптове ами говоря за Eggdrop от типа, които пазят всеки от големите канали ?Smile като гледам колко време си отделил да търсиш тези кодове тук........ Бота прави всичко това на куп + още 100 хиляди неща стига да искаш Smile поне преди 7-8 години беше така когато аз имах 8 такива накуп и всичките бяха в ботнет вързани. Самия бот си се инсталира стартираш го той си върви на background и не хаби кои знае колко ресурс слагаш му няколко базови TCL-i (аддони), за да те слуша и всичко е типтоп Smile
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
DownFall
Турист
Турист

Регистриран на: 03/09/2009 9:52 pm

Support: 1
Bonus: 2
Мнения: 353
Мнение 16/11/2009 3:47 am      Отговорете с цитат


Защото и по-горе го бях споменал.. Smile Не става въпрос за UniBG или някоя подобна мрежа, тази за която ми трябва е доста различна и повечето ботове са несъвместими..

Replace, кода си работи, прави точно това което исках, но нарочно изчаках малко преди да коментирам, за да видя дали ще даде бъгове и ето, че се намери 1 Smile Ако се напише * (звездичка) бота го отчита като обида, без значение, че не е зададено в файла.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> Всичко за mIRC Часовете са според зоната GMT + 2 Часа
12
Страница 1 от 2


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети