Join Counter und Autojoin Befehl

Wenn alles über Aliase läuft, dann kannst du doch einfach ein 2. Event anlegen das genauso ausgelegt ist wie das 1. (.add scan) und in dem du eben nur den Matchtext änderst (.addscan).

Die Sache ist eben schwierig zu beantworten wenn man nur eine vage Beschreibung des Scripts hat und das Script nicht selbst sehen kann.

Original geschrieben von {KoD-HC}Lighty

P.S.: Helmut deine Sachen wegen /help ... sind vielleicht ganz Hilfreich aber ich habe Ocrana IRC und da ist die Hilfe irgendwie nicht drin zumindest kann er die nicht finden.

Fehler.
Man nutzt (vor allem als Scripter) nicht Ocrana.IRC.
Dass du keine mirc.hlp hast liegt nämlich beispielsweise daran.

P.P.S.: Kan ich Channel sperren das ich dahin nicht invitet werden kann Es gibt so eine paar Hirnlose die immer meinen Bot in einen "Idlerchan" inviten und obwohl ich kein Autojoin on invite drin habe komme ich da immer rein,. Gib es ne Möglichkeit sich gegen sowas zu schützen?

Du hast "autojoin on invite" in den mIRC-Optionen aus? Hast auch keine eigenen Scripts am laufen (on invite/join $chan)?

Dann wird höchstwahrscheinlich Ocrana.IRC eine Funktion eingebaut haben, die bei einem Invite direkt einen Channel joint.

Lösungen:
- Ocrana.IRC löschen
- Das Remote-Script suchen und entfernen
- Die Personen die dich einladen auf ignore setzen
 
Nein Helmut, der Bot läuft auf normalen mIRC 6.3oder so . Ich selber nutze Ocrana. Daher kommt mir das ja so komisch vor. Es gibt zwar join befehle die aber nur ich geben kann da ich der einzigste Bot Operator bin. Und den der mich invitet auf ignore setzen ist gut, in dem Channel tummen sich 40- 50 User wovon der größte teil sicher wie mein bot einfach invitet wurde

Dann zu dem Script mit dem add scan ich füge es hier mal ein

Code:
;-NAV----------------------------

menu channel,nicklist,query,status  {
  -
  DE Ally Bot
  .DE Ally Bot DB Einstellungen { dialog -m botdb botdb }
}
dialog botdb {
  title "DE Ally Bot DB Einstellungen"
  size -1 -1 288 95
  option dbu
  box "DB Server",    1,   5 10 87 19
  box "DB User",      2,   5 29 87 19
  box "DB Passwort",  3,   5 48 87 19
  box "DB Datenbank", 4, 100 10 87 19
  box "DB Tabelle Ally",   5, 100 29 87 19
  box "max Sektor",   7, 195 10 87 19
  box "max Planet",   8, 195 29 87 19
  edit "", 30, 7 17 83 10
  edit "", 31, 7 36 83 10
  edit "", 32, 7 55 83 10
  edit "", 33, 102 17 83 10
  edit "", 34, 102 36 83 10
  edit "", 36, 197 17 83 10
  edit "", 37, 197 36 83 10
  button "Speichern",  50,   7 74 83 10
  button "schließen", 52, 102 74 83 10, ok
}
on *:dialog:botdb:sclick:50:{ set %db.server $did(botdb,30) | set %db.user $did(botdb,31)  | set %db.pw $did(botdb,32)  | set %db.dbase $did(botdb,33)  | set %db.ally $did(botdb,34)  | set %anzahlseks $did(botdb,36) | set %anzahlpla $did(botdb,37) 
}
on *:dialog:botdb:sclick:51:{ 
}

on *:dialog:botdb:init:0: {
  if (%db.server != $null) {
    did -a botdb 30 %db.server
  }
  if (%db.user != $null) {
    did -a botdb 31 %db.user
  }
  if (%db.pw != $null) {
    did -a botdb 32 %db.pw
  }
  if (%db.dbase != $null) {
    did -a botdb 33 %db.dbase
  }
  if (%db.ally != $null) {
    did -a botdb 34 %db.ally
  }
  if (%anzahlpla != $null) {
    did -a botdb 36 %anzahlseks
  }
  if (%anzahlseks != $null) {
    did -a botdb 37 %anzahlpla
  }
}

;-SCRIPT---------------------------

on *:LOAD:{
  dialog -m botdb botdb
}

;-SCRIPT-Allytagadd----Allianztag *

on 1:TEXT:Allianztag *:#:{
  %wert = $left($4,$calc($len($4) -1))
  %wert = $right(%wert,$calc($len(%wert) -1))
  set %allianzwert %wert $3
  set %addscannick $nick
}
on 1:TEXT:&:#:{
  if ($nick == %addscannick) {
    unset %addscannick
    set %awert $1
    set %allianzscan %allianzwert %awert
    unset %allianzwert
    unset %awert
    unset %wert
    set %addscannick2 $nick
    notice $nick zum speichern der Daten .add scan eingeben
  }
}

;-SCRIPT-Allytagadd------------.add

on *:text:.add *:#:{
  %pruef = 0
  /var %pla = $gettok($2,2,58)
  /var %sys = $gettok($2,1,58)
  set %scannick $nick
  if (%pla isnum) || (%sys isnum) {
    set %add add
    if ($2 == $null) || ($3 == $null) || ($4 == $null)  { %pruef = %pruef +1 | /notice %scannick 11,2 ->>4,2  Bitte alle Parameter eingeben }
    /add $2-
  }
  if (($2 == scan) && ($nick == %addscannick2)) {
    set %add add
    /add %allianzscan
    ;unset %addscannick2
  }
  if ($2 == rasse) {
    set %add rasse
    /add $3-
  }
  if ($2 == info) {
    set %add info
    /add $3-
  }
  if ($2 == update) {
    set %add update
    /add $3-
  }
  if ($2 == help) {
    /notice $nick 4,12 .add <koords> <ingame nick> <ingame allytag> (optional: <kommentar>)
    /notice $nick 4,12 .add scan -> (nach eingabe der Scandaten von der De Page)
    /notice $nick 4,12 .add info <koords> <kommentar> -> zum ändern des Kommentar
    /notice $nick 4,12 .add rasse <koords> <rasse> -> zum eintragen der Rasse
    /notice $nick 4,12 .add update <koords> <ingame nick> <ingame allytag> (<kommentar>)
  }
}

;-SCRIPT-----------------------.get

on *:text:.get *:#kod.intern,#kod-hc.chan,#silmarillion,%chan,#sek121.sde,#UB-scanner,#eintragen:{
  /var %pla = $gettok($2,2,58)
  /var %sys = $gettok($2,1,58)
  if (%pla isnum) || (%sys isnum) {
    set %get get
    /get $2-
  }
  if ($2 == info) {
    set %get info
    /get $3-
  }
  if ($2 == sek) {
    set %get sek
    /get $3-
  }
  if ($2 == ally) {
    set %get ally
    /get $3-
  }
  if ($2 == search) {
    set %get search
    /get $3-
  }
  if ($2 == date) {
    set %get date
    /get $3-
  }
  if ($2 == daten) {
    set %get daten
    /get $3-
  }
  if ($2 == help) {
    /notice $nick 12,0 .get <koords> <koords> ... -> zeigt nur koords nick allytag 
    /notice $nick 12,0 .get info <koords> -> zeigt alle Daten an
    /notice $nick 12,0 .get sek  <sektor> -> Zeigt dir alle Allianzen in dem angegebenen Sektor.
    /notice $nick 12,0 .get ally <ingame allytag> -> Alle eingetragenen Member von der Allianz 
    /notice $nick 12,0 .get help2 -> weiter Befehle
  }
  if ($2 == help2) {
    /notice $nick 12,0 .get search <name> <*> -> Suche Namen (optional: <*> fals nit alles bekant).
    /notice $nick 12,0 .get date <koords> -> zeigt an wie alt der Eintrag is
    /notice $nick 12,0 .get daten <all/allytag> -> Zeigt an wie viele Datensätze eingetragen sind
  }
}

;-SCRIPT-----------------------.del

on *:text:.del *:#:{
  %pruef = 0
  /var %pla = $gettok($2,2,58)
  /var %sys = $gettok($2,1,58)
  if ($2 == help) {
    %pruef = %pruef +1
    /notice $nick 7,1 .del <koords> <ingame nick> um einen Eintag zulöschen
  }
  if ($2 != help) || ($2 == $null) && ($3 == $null) { %pruef = %pruef +1 | /notice $nick  4 Bitte alle Parameter füllen }
  if (($2 != help) && ($2 != $null)) {
    if (%pla !isnum) || (%sys !isnum) { %pruef = %pruef + 1 | /notice $nick 12 Mindestens ein Koordinatenparameter nicht numerisch }
    if (%pla > %anzahlpla) && (%pruef < 1) { /notice $nick 12 Öi, bleib mal locker , es gibt nicht soviele Sektoren. | %pruef = %pruef +1 }
    if (%sys > %anzahlseks) && (%pruef < 1)  { /notice $nick  12 Ach ? Verzählt , oder gibt es jetzt wirklich mehr als 10 Sektoren im Sektor | %pruef = %pruef +1 }
  }
  if %pruef = 0 {
    echo -s $dll(mysql.dll,Connect,servers -huw %db.server %db.user %db.pw )
    echo -s $dll(mysql.dll,SetDatabase,servers %db.dbase )
    var %query = DELETE FROM %db.ally WHERE koords = ' $+ $2 $+ ' LIMIT 1 
    echo -s $dll(mysql.dll,Query,servers %query )
    echo -s $dll(mysql.dll,Close,servers)
    /notice $nick Daten von %sys $+ : $+ %pla erfolgreich gelöscht
  }
}

;-ALIAS-------------------------add

alias add {
  /var %pla = $gettok($1,2,58)
  /var %sys = $gettok($1,1,58)
  if ($1 != $null) {
    if (%pla !isnum) || (%sys !isnum) { %pruef = %pruef + 1 | /notice %scannick 12 Mindestens ein Koordinatenparameter nicht numerisch }
    if (%pla > %anzahlpla) && (%pruef < 1) { /notice %scannick 12 Öi, bleib mal locker , es gibt nicht soviele Sektoren. | %pruef = %pruef +1 }
    if (%sys > %anzahlseks) && (%pruef < 1)  { /notice %scannick  12 Ach ? Verzählt , oder gibt es jetzt wirklich mehr als 10 Sektoren im Sektor | %pruef = %pruef +1 }
  }
  if %pruef = 0 {
    echo -s $dll(mysql.dll,Connect,servers -huw %db.server %db.user %db.pw )
    echo -s $dll(mysql.dll,SetDatabase,servers %db.dbase )
    if (%add == add) {
      var %queryadd INSERT INTO %db.ally (name, allianz, system, planet, koords, info, eintraeger, datum)  VALUES (' $+ $2 $+ ',' $+ $3 $+ ',' $+ %sys $+ ',' $+ %pla $+ ',' $+ $1 $+ ',' $+ $4- $+ ',' $+ %scannick $+ ',' $+ $date $+ ')
    }
    if (%add == update) {
      var %queryadd = UPDATE %db.ally SET name= ' $+ $2 $+ ', allianz= ' $+ $3 $+ ', info= ' $+ $4- $+ ', planet = ' $+ %pla $+ ', system = ' $+ %sys $+ ' , eintraegeru = ' $+ $nick $+ ' , datumu = ' $+ $date $+ ' WHERE planet= %pla AND system= %sys
    }
    if (%add == info) {
      var %queryadd = UPDATE %db.ally SET info= ' $+ $2 $+ ', eintraegeru = ' $+ $nick $+ ' , datumu = ' $+ $date $+ ' WHERE planet= %pla AND system= %sys 
    }
    if (%add == rasse) {
      var %queryadd = UPDATE %db.ally SET rasse= ' $+ $2 $+ ', eintraegeru = ' $+ $nick $+ ' , datumu = ' $+ $date $+ ' WHERE planet= %pla AND system= %sys 
    }
    echo -s $dll(mysql.dll,Query,servers %queryadd )
    echo -s $dll(mysql.dll,Close,servers)
    /notice %scannick Daten von %sys $+ : $+ %pla eingetragen
  }
  unset %i
  unset %scannick
  unset %add
}

;-ALIAS-------------------------get

alias get {
  echo -s $dll(mysql.dll,Connect,servers -huw %db.server %db.user %db.pw )
  echo -s $dll(mysql.dll,SetDatabase,servers %db.dbase )
  if (%get == get) {
    var %i = 0
    var %query = SELECT name,allianz,koords FROM %db.ally WHERE 
    while (%i < $numtok($1-,32)) { 
      inc %i 
      if (%i > 1) var %query = %query OR 
      var %query = %query koords = ' $+ $gettok($1-,%i,32) $+ ' 
    } 
    var %query = %query ORDER BY system,planet ASC
  }
  if (%get == info) {
    var %query = SELECT name,allianz,koords,rasse,info FROM %db.ally WHERE koords LIKE ' $+ $1 $+ '
  }
  if (%get == sek) {
    var %query = SELECT name,allianz,koords FROM %db.ally WHERE system = $1 ORDER BY planet
  }
  if (%get == ally) {
    if ($2 != *) {
      var %zusammen = $1  
    }
    if ($2 == *) {
      var %zusammen = % $+ $1 $+ %
    }
    var %query = SELECT name,allianz,koords FROM %db.ally WHERE allianz LIKE ' $+ %zusammen $+ ' ORDER BY system,planet ASC
  }
  if (%get == search) {
    if ($2 != *) {
      var %zusammen = $1  
    }
    if ($2 == *) {
      var %zusammen = % $+ $1 $+ %
    }
    var %query = SELECT name,allianz,koords FROM %db.ally WHERE name LIKE ' $+ %zusammen $+ ' ORDER BY system,planet ASC
  }
  if (%get == date) {
    var %query = SELECT koords,eintraeger,datum,eintraegeru,datumu FROM %db.ally WHERE koords LIKE ' $+ $1 $+ '
  }
  if (%get == daten) {
    if ($1 != all) {
      var %zusammen = $1
      var %query = SELECT name,allianz,koords,rasse,info FROM %db.ally WHERE allianz LIKE ' $+ %zusammen $+ ' ORDER BY system,planet ASC
    }
    if ($1 == all) {
      var %query = SELECT * FROM botsdeoz
    }
  }
  echo -s $dll(mysql.dll,Query,servers %query) ;
  echo -s $dll(mysql.dll,Rows,servers) ; will return the amount rows affected by query
  var %rows $dll(mysql.dll,Rows,servers) ; put the value in a variable
  var %i = 0
  var %sent = 0
  %rows = $gettok(%rows,5,32)
  if (%get == daten) {
    if ($1 != all) {
      if %rows > 0 { /notice $nick Es sind von $1 insgesamt %rows Datensätze in der Datenbank }
    }
    if ($1 == all) {
      if %rows > 0 { /notice $nick Es sind insgesamt %rows Datensätze in der Datenbank }
    }
  }
  if %rows < 1 {  notice $nick Kein Datensatz vorhanden }
  :loop
  while (%i < %rows) {
    inc %i
    echo -s $gettok($dll(mysql.dll,fetchrow,servers %i $chr(46)),6-, 32)
    var %erle  $gettok($dll(mysql.dll,fetchrow,servers %i $chr(46)),6-, 32) 
    if (%get == get) {
      unset %sent
      var %res = $deltok(%erle,1-5,32) 
      var %name = $gettok(%erle,1,46) 
      var %allianz = $gettok(%erle,2,46) 
      var %koords = $gettok(%erle,3,46) 
      if (%msg != $null) var %msg = %msg $str($chr(47),2) 
      var %msg = %msg %koords %name is in %allianz        
      if (4 // %i) { 
        notice $nick %msg 
        unset %msg 
        var %sent = 1 
      } 
    }
    if (%get == info) {
      var %name $gettok(%erle,1,46)
      var %allianz $gettok(%erle,2,46) 
      var %koords $gettok(%erle,3,46)
      var %rasse $gettok(%erle,4,46)
      var %info $gettok(%erle,5,46)
      if (%rasse != unbekannt) var %news1 %rasse
      if (%info != $null) var %news2 Info: %info 
      var %msg %koords %name %news1 is in %allianz  $+ %news2
    }
    if (%get == sek) {
      unset %sent
      var %res = $deltok(%erle,1-5,32)
      var %name $gettok(%erle,1,46)
      var %allianz $gettok(%erle,2,46) 
      var %koords $gettok(%erle,3,46)
      if (%msg != $null) var %msg = %msg $str($chr(47),2)
      var %msg = %msg %koords %name ist in %allianz 
      if (4 // %i) { 
        notice $nick %msg 
        unset %msg 
        var %sent = 1 
      } 
    }
    if (%get == ally) || (%get == search) {
      unset %sent
      var %res = $deltok(%erle,1-5,32)
      var %name = $gettok(%erle,1,46)
      var %allianz = $gettok(%erle,2,46)
      var %koords = $gettok(%erle,3,46)
      if (%msg != $null) var %msg = %msg $str($chr(47),2)
      var %msg = %msg %koords %name is in  %allianz  
      if (10 // %i) {
        notice $nick %msg
        unset %msg
        var %sent = 1
      }
    }    
    if (%get == date) {
      var %koords $gettok(%erle,1,46)
      var %eintraeger $gettok(%erle,2,46)
      var %datum $gettok(%erle,3,46) 
      var %eintraegeru $gettok(%erle,4,46)
      var %datumu $gettok(%erle,5,46)
      if (%eintraegeru == $null)  var %eintraegeru keins
      var %msg Eintrag: %eintraeger %datum Update: %eintraegeru  %datumu
    }
    goto loop
  }
  if (%sent != 1) notice $nick %msg
  echo -s $dll(mysql.dll,Close,servers)
  unset %sent
  unset %i
  unset %get
}

Wie gesagt ist halt lang.
 
Hm:

Code:
;-SCRIPT-Allytagadd------------.add

on *:text:.add*:#:{
  %pruef = 0
  /var %pla = $gettok($2,2,58)
  /var %sys = $gettok($2,1,58)
  set %scannick $nick
  if (%pla isnum) || (%sys isnum) {
    set %add add
    if ($2 == $null) || ($3 == $null) || ($4 == $null)  { %pruef = %pruef +1 | /notice %scannick 11,2 ->>4,2  Bitte alle Parameter eingeben }
    /add $2-
  }
  if (($2 == scan) || ($1 == .addscan) && ($nick == %addscannick2)) {
    set %add add
    /add %allianzscan
    ;unset %addscannick2
  }
  if ($2 == rasse) {
    set %add rasse
    /add $3-
  }
  if ($2 == info) {
    set %add info
    /add $3-
  }
  if ($2 == update) {
    set %add update
    /add $3-
  }
  if ($2 == help) {
    /notice $nick 4,12 .add <koords> <ingame nick> <ingame allytag> (optional: <kommentar> )
    /notice $nick 4,12 .add scan -> (nach eingabe der Scandaten von der De Page)
    /notice $nick 4,12 .add info <koords> <kommentar> -> zum ändern des Kommentar
    /notice $nick 4,12 .add rasse <koords> <rasse> -> zum eintragen der Rasse
    /notice $nick 4,12 .add update <koords> <ingame nick> <ingame allytag> (<kommentar> )
  }
}

Matchtext in ".add*" geändert und zusätzliche Bedingung eingefügt.
Ist jetzt einfach so geändert ohne alles durchzusehen, hoffe es funktioniert.
 
Zurück