Scripte funzen nicht

mIRC Scripting Language
User avatar
Tuxman
Administrator
Posts: 1873
Joined: 24.10.2003 00:13
Status: That guy
Contact:

Re: Scripte funzen nicht

Unread postby Tuxman » 28.03.2008 19:09

Ist das Script denn überhaupt geladen? (Das weiß im Zweifelsfall der Script Editor -> Alt-R.)
^\__/
..O.o

This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
User avatar
Tuxman
Administrator
Posts: 1873
Joined: 24.10.2003 00:13
Status: That guy
Contact:

Re: Scripte funzen nicht

Unread postby Tuxman » 28.03.2008 21:38

Ä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.
^\__/
..O.o

This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
chris1
Administrator
Posts: 3029
Joined: 11.09.2003 20:17
Status: Gamers.IRC Coder

Re: Scripte funzen nicht

Unread postby chris1 » 29.03.2008 10:41

oder in die ownscript.grc
User avatar
Tuxman
Administrator
Posts: 1873
Joined: 24.10.2003 00:13
Status: That guy
Contact:

Re: Scripte funzen nicht

Unread postby Tuxman » 29.03.2008 13:53

Bau doch mal scherzeshalber eine Debugfunktion (echo -s) ein, damit du siehst, wo es genau hängt.
^\__/
..O.o

This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
User avatar
Tuxman
Administrator
Posts: 1873
Joined: 24.10.2003 00:13
Status: That guy
Contact:

Re: Scripte funzen nicht

Unread postby Tuxman » 29.03.2008 19:40

-s = Ausgabe im Serverfenster.
-a wäre das aktive Fenster.
^\__/
..O.o

This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
blk_panther
Gamers.IRC Staff
Posts: 231
Joined: 31.12.2005 16:44
Status: Gamers.IRC Coder

Re: Scripte funzen nicht

Unread postby blk_panther » 31.03.2008 16:26

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 ###
just $me

Who is online

Users browsing this forum: No registered users and 4 guests