Page 1 of 1

Re: Scripte funzen nicht

Posted: 28.03.2008 19:09
by Tuxman
Ist das Script denn überhaupt geladen? (Das weiß im Zweifelsfall der Script Editor -> Alt-R.)

Re: Scripte funzen nicht

Posted: 28.03.2008 21:38
by Tuxman
Äh, nee, nee... besser nicht im Remote herumeditieren. Da sind auch die Gamers.IRC-Scripts drin.
Um eigene Scripts zu testen, wäre es ggf. besser, sie in eigenen Dateien zu speichern (bspw. meinscript.mrc); diese Dateien lassen sich dann über den Gamers.IRC-Scriptmanager (zu finden im /setup) verwalten.

Das aber nur als Tipp.

Re: Scripte funzen nicht

Posted: 29.03.2008 10:41
by chris1
oder in die ownscript.grc

Re: Scripte funzen nicht

Posted: 29.03.2008 13:53
by Tuxman
Bau doch mal scherzeshalber eine Debugfunktion (echo -s) ein, damit du siehst, wo es genau hängt.

Re: Scripte funzen nicht

Posted: 29.03.2008 19:40
by Tuxman
-s = Ausgabe im Serverfenster.
-a wäre das aktive Fenster.

Re: Scripte funzen nicht

Posted: 31.03.2008 16:26
by blk_panther
ok, als aller erstes: deine formatierung ist sehr unleserlich, auch solltest du ;######## benutzen, sonst kommt beim klammerfehler ####### unknown command.
die klammersetzung in dem beispiel ganz oben (1. post, on join) stimmt nicht.
die events werden nicht getriggert weil mirc nur jeweils das erste passende event (events sind die scripte die mit "on" beginnen, z.B. on *:join:...) einer scriptfile ausführt (scriptfile = englisch für scriptdatei oder wie man das übersetzten würde, also jede geladene datei die ein script enthält).

und hier nunmal der korrigierte, nicht getestete code aus dem nopaste:

ps: action ist alles was du mit /me machst
das on load event wird nur einmal ausgeführt, nämlich wenn du die scriptfile lädst, alles andere wäre on *:start:

set %access_ma %access_ma $+ , $+ $2 könnte auch durch set %access_ma $addtok(%access_ma,$2,44) ersetzen

Code: Select all

on *:text:?ma*:#: if ($nick isin %access_us) { /msg $nick %access_ma } else { /msg $chan %nous }
dazu gibt es einiges zu sagen: ? im matchtext ist ein wildcard und kann jedes beliebige zeichen sein, im remote brauchst du keine / und zur überprüfung solltest du $istok() benutzen.
auch kann man der übersicht halber dem event klammern spendieren, jedem if und else eine eigene zeile, sowie schließenden klammern eine eigene zeile (siehe bereinigten code unten)

hier nun wie versprochen der angepasste code, ungetestet, nichtauf funktionalität überprüft und klammerfehler kannst du mit strg+h im editor entdecken.

wie gesagt auch drauf achten dass nurr das erste passende event ausgeführt wird, alle weiteren werden ignoriert.

Code: Select all


/*
##############
EFC ACCESS-BOT
################################################################################
Deutscher Zugriffsbot, der einfach zu bedienen ist und deinen ganzen Channel im Quakenet managen kann.
Um seine Funktionen voll entfalten zu k?nnen, wird empfohlen nur den Bot und den Channeladmin bei L oder Q einzutragen.
################################################################################
*/

/* 
### START Floodprotection ###
#
#
## Floodcounter ##
*/

on *:text:*:#:{
  inc %floodcount
  timer 1 10 dec %floodcount
  if (%floodprotection >= 3) {
    set %floodprotection on
    notice $chan Floodprotection an
    timer 1 20 floodprotoff #
  }
}

alias floodprotoff {
  unset %floodprotection
  notice $$1 Floodprotection aus.
}

on *:action:*:#:{
  if (!%floodprotection) {
    ;dein code (ps: action ist alles was du mit /me machst)
  }
}
/*
### END Floodprotection ###

### START Authorisation ###
#
#
## Access-Authorisation / Authorisation Message ##
*/

on *:load:{
  set %access_ma En`forcer
  set %access_op En`forcer
  set %access_vo En`forcer
  set %access_us En`forcer
  set %access_no

  set %noma Du hast keine Rechte als Master
  set %noop Du hast keine Rechte als Operator
  set %novo Du hast keine Voicerechte
  set %nous Du hast keine Userrechte
  set %noall Du hast keine Rechte für diesen Zugriff

  set %givema Dir wurden Rechte bis Master erteilt
  set %giveop Dir wurden Rechte bis Operator erteilt
  set %givevo Dir wurden Rechte bis Voice erteilt
  set %giveus Dir wurden Userrechte erteilt

  set %takema Dir wurden deine Channel-Masterrechte genommen
  set %takeop Dir wurden deine Rechte ab Operator genommen
  set %takevo Dir wurden deine Rechte ab Voice genommen
  set %takeus Dir wurden all deine Rechte genommen

  set %setok Der Befehl $1 an $2 wurde erfolgreich ausgeführt
  set %usetok Der Befehl $1 an $2 wurde erfolgreich ausgeführt
}

/*
#
#
## Grant Authorisation ##
#
# Master #
*/

on *:text:+ma *:#:{
  if ($nick == En`forcer) {
    set %access_ma %access_ma $+ , $+ $2
    set %access_op %access_op $+ , $+ $2
    set %access_vo %access_vo $+ , $+ $2
    set %access_us %access_us $+ , $+ $2
    msg $nick %setok 
    msg $2 %givema
  } 
  else { msg # %noall }
}

;#
;# Operator #

;wie Master

/*
#
#
## Deny Authorisation ##
#
# Master #
*/

on *:text:-ma *:#:{
  if ($nick == En`forcer) {
    unset %access_ma %access_ma $+ , $+ $2
    msg $nick %usetok
    msg $2 %takema 
  } 
  else { msg # %noall }
}

;#
;# Operator#

;wie Master

;#
;#
;## Show Authorisation ##

;siehe post

;### END Authorisation ###

/*
### START Join-Action ###
#
#
## Authorisation Info ##
*/

on *:join:#:{
  ;besser $istok() nutzen
  if ($nick isin %access_ma) {
    msg $chan Hallo Master $nick
    timer 1 3 msg # Du kannst als Channel-Master folgende Dienste verändern und nutzen: ?ifma
  }
  elseif ($nick isin %access_op) {
    ;auch hier: $istok()
    msg $chan Hallo Operator $nick
    timer 1 3 /msg chan Du kannst als Operator folgende Dienste ver?ndern und nutzen: ?ifop
  }
  elseif ($nick isin %access_vo) {
    msg $chan Hallo $nick
    timer 1 3 /msg $chan Du kannst als Voiced-User folgende Dienste nutzen: ?ifvo
  }
  elseif ($nick isin %access_us) {
    msg $chan Hallo $nick
    timer 1 3 /msg $chan Du kannst als User folgende Dienste nutzen: ?ifus
  }
  else {
    msg $chan Willkommen $nick
    timer 1 3 /msg $chan Du bekommst als Besucher unseres Channels auch deine ersten Rechte als User
    set %access_ma %access_ma $+ , $+ $nick
    timer 1 3 /msg $chan Als User kannst du nun folgende Dienste nutzen: ?ifus
  }
}


;### END Join-Action ###


;### START Info ###

on *:text:?ifma *:#:{
  if ($nick isin %access_ma) {
    msg $nick Du kannst folgende Befehle ausf?hren:
    timer 1 5 /msg $nick Und alle: ?ifop, ?ifvo und ?ifus
    timer 1 5 /msg $nick du kannst folgende Befehle ausf?hren:
  }
  else { msg # %noma }
}

;### END Info ###


;### START Commands ###

;### END Commands ###