Archiv verlassen und diese Seite im Standarddesign anzeigen : [TIPPS] für away script
[script]
n0=alias away {
n1= if (%status != $away) {
n2= var %away $1-
n3= ame ist weg ´ $+ %away $+ ´
n4= set %nick $me
n5= set %status away
n6= away %away
n7= nick ich|away
n8= }
n9= else {
n10= ame is wieder da von: ´ $+ %away $+ ´
n11= unset %away
n12= away
n13= set %status back
n14= nick %nick
n15= unset %nick
n16= }
n17=}
ich möchte, dass dieses script auf mehreren server funzt, ich also nicht immer für jeden server /away essen oder sowas eingeben muss...kann mir jemand das verbesserte script vielleicht posten?? wäre echt reizend :)
if (%status != $away) {
ich würde das durch
if (!$away) {
ersetzen...
dann brauchst du das hier auch nicht mehr
n5= set %status away
und wie das auf allen server gleichzeitig ausgeführt wird kann ich dir leider noch ned sagen.. aber es gibt ja noch mehr mirc versierte als mich :D
[script]
n0=alias away {
n1= if (!$away) {
n2= var %away $1-
n3= ame ist weg ´ $+ %away $+ ´
n4= set %nick $me
n5= away %away
n6= nick ich|away
n7= }
n8= else {
n9= ame is wieder da von: ´ $+ %away $+ ´
n10= unset %away
n11= away
n12= set %status back
n13= nick %nick
n14= unset %nick
n15= }
n16=}
so delle :) ich hoffe einer der weiss wie es geht kommt noch! mac flay hat gesagt überall vor dem zeugs, dass ausgeführt werden soll, muss ein scid -a, leider war ich mir da nicht so ganz sicher...naja vllt. schaut nochmal einer vorbei und schreibt mir die ´Musterlösung´ :)
Wenn du dir net sicher warst, wieso hast du dann die /help nicht befragt? *g*
Sorry, mit dem multiserver hab ich mich auch noch nich so richtig beschäftigt. Aber das werde ich spätestens, wenn ich mein Script update ;)
weil ich des auch net kapiere in der /help...
naja vielleicht weiss noch jemand was...das wäre echt super!!!
so leute ich hab hier genau das richtige für euch :)
alias away {
if (!$away) {
set %away.reason $1-
set %away.time $ctime
set %away.nick $me
scid -a !away %away.reason since $asctime($ctime)
scid -a ame away: %away.reason
scid -a nick $left($me,-4) $+ -AWAY
}
else {
scid -a !away
scid -a ame back: %away.reason ( $+ $duration($calc($ctime - %away.time)) $+ )
scid -a nick %away.nick
unset %away*
}
}
für mich is das 1a
und das beste daran is, jetz hab ich wieder n away system :D
und wehe einer hat was dran auszusetzten ;)
mal was anderes, was ist denn am sinnvollsten an benachrichtigungen?
ich meine, pager alle xx minuten sind nervend... dann gibt es noch die moeglichkeit, beim aufrufen des nicks ne msg zu sagen... oder eben bei nick! oder !nick ne msg/notification
oder gar keine benachrichtigung?
also mit timern darf man da auf keinen fall arbeiten sonst ist man ein ärmlicher lam0r und wer is das schon gern :P
ich finds am besten das man ne nachricht bekommt wenn man die person direkt mit nick angesprochen hat.
ich hab da mal was gebaut :D :D :D
ach ja ich hab gleich noch das erste script für multiserver ausgebaut da gabs nämlich noch paar probleme wenn man in andren netzen andere nicks hatte. is jetz 1a.
alias away {
if (!$away) {
set %away.reason $1-
set %away.time $ctime
scid -a !away %away.reason since $asctime($ctime)
echo -a away: %away.reason
;scid -a ame away: %away.reason
var %i 1
while (%i <= $scid(0)) {
set [ %away.nick. $+ [ %i ] ] $scid(%i).me
scid $scon(%i) nick $left($scid($scon(%i)).me,-4) $+ AWAY
inc %i
}
}
else {
scid -a !away
echo -a back: %away.reason ( $+ $duration($calc($ctime - %away.time)) $+ )
;scid -a ame back: %away.reason ( $+ $duration($calc($ctime - %away.time)) $+ )
var %i 1
while (%i < $scid(0)) {
scid $scon(%i) nick %away.nick. [ $+ [ %i ] ]
inc %i
}
unset %away*
}
}
on *:text:*:#:{
if ($me isin $1-) || (%away.nick isin $1-) {
if ($away) && ( %away.msg. [ $+ [ $nick ] ] != $true) {
.notice $nick I am away: %away.reason since ( $+ $duration($calc($ctime - %away.time)) $+ )
set -u60 [ %away.msg. $+ [ $nick ] ] $true
}
}
}
on *:notice:*:*:{
if ($away) && ( %away.msg. [ $+ [ $nick ] ] != $true) {
.notice $nick I am away: %away.reason since ( $+ $duration($calc($ctime - %away.time)) $+ )
set -u60 [ %away.msg. $+ [ $nick ] ] $true
}
}
on *:text:*:?:{
if ($away) && ( %away.msg. [ $+ [ $nick ] ] != $true) {
.msg $nick I am away: %away.reason since ( $+ $duration($calc($ctime - %away.time)) $+ )
set -u60 [ %away.msg. $+ [ $nick ] ] $true
}
}
so!
aber ich muss dazu noch sagen, das is natürlich noch lange kein gutes away script. das is ne grundlage. ein minimalsystem sozusagen. aber es funktioniert, hat keine controlcodes und ist klein - herlich :]
<edit>
ok, schlagt mich. er war nich perfekt ;(
aber jetzt gehts endlich
ich hab auch die AME lines als kommentar gemacht weil eigentlich is sowas auch scheisse. ich kann mich da an ne kick reason erinnern:
if we want to know if you´re away, we´d whois you
</edit>
hab nun meines auch ein wenig ausgebaut und angepasst...
naja, ich hab da noch ein kleines prob:
wenn ich nun /away eingebe, dann werd ich auf allen servern als away markiert... vllt. kann sich da ja mal einer von euch cracks anschauen... :D
wie bekomm ich das noch ein bissl besser hin? thanks
alias away {
if (!$window(@messages)) {
window -d +t @messages 10 10 600 300
}
if ($network == insiderZ) {
if ($1 == w) {
%away.nick = silencer|away
}
else {
%away.nick = silencer| $+ $1
}
nick %away.nick
}
elseif ($network == quakenet) {
%away.nickNQ = NA|-silencer-
nick %away.nickNQ
}
set %away.nick %away.nick
set %away.reason $2-
set %away.time $ctime
scid -a !away %away.reason since $asctime($ctime)
echo -a away: %away.reason
}
alias back {
if ($network == euIRCnet) || ($network == insiderZ) {
nick silencer
unset %away.nick
}
elseif ($network == quakenet) {
nick NQ|-silencer-
unset %away.nickNQ
}
scid -a !away
echo -a back: %away.reason ( $+ $duration($calc($ctime - %away.time)) $+ )
nickident
}
hab net viel Zeit, deshalb poste ich mein Ding dazu:
winuptime {
var %i 1
while (%i <= $scon(0)) {
var %idle $scon(%i).$idle
if ($scon(%i).$away != $true) && ($scon(%i).$server) && ($getIni(AWAYSCRIPT,awayidle) == 1) && (%idle >= $getIni(AWAYSCRIPT,awayidletime)) {
scon %i tnick $iif($getIni(AWAYSCRIPT,awaynick),$getIni(AWAYSCRIPT,awaynick),$me $+ _away)
set %away_time $ctime
scon %i away $symb $farbe(Auto Idle Away nach $calc($getIni(AWAYSCRIPT,awayidletime) /60) Minuten)
scon %i amsg $symb $farbe(Ich bin Away! Grund: Auto Idle Away nach $calc($getIni(AWAYSCRIPT,awayidletime) /60) Minuten)
writeini system/options.ini AWAYSCRIPT awayreason Auto Idle Away nach $calc($getIni(AWAYSCRIPT,awayidletime) /60) Minuten
}
inc %i
}
set %uptime $calc($ticks / 1000)
if (%uptime > %uprecord) {
set %uprecord %uptime
halt
}
else halt
}
Der Alias wird mit nem Timer aufgerufen. Alle 60 Secs.
Er chekt die IdleZeit auf jedem Server und setzt away, wenn idlezeit bei ner bestimmten größe.
Es is allerdings noch ne rekord routine drin, die kannste weglassen ;)
Is allerdings noch net perfekt...
das prob ist, dass ich 2 server mit dem gleichen nick habe, und auf dem dritten noch |NQ| vor den nick muss... :/
wie mach ich das dann?
ich bin auf dem dritten server zwar sowieso nie da, also immer away... :D
aber trotzdem soll nich die gleiche away msg drinne stehen wie auf den anderen beiden...
Du willst also nur auf dem Server away gehen, auf dem du /away eingibst?
Das könnte man dann auch durch ein Popup errecihen, in dem alle server aufgelistet werden. Entweder über ne While oder mit $submenu...
Wenn ich dich überhaupt richtig verstanden hab...
das mit dem nick is kein prob, check mal /help /tnick
Wenn dir das weiterhilft, dann gut, wenn nicht, dann schreib nochmal :)
naja, ist ´n bissl schwer... *g*
also: im euirc und im insiderz network soll der gleiche away gelten, d.h. entweder nach 30 mins net da, oder bei /away auf beiden server nickchange und away msg...
im qnet soll eigentlich immer away markierung rein, weil ich da eh nie reinschaue... muss halt drin sein, weil vereinscheffe das sagt... :/
das ganze soll ohne popups oder so´n muell passieren und komplett ohne pager/messages... nur mein log, und ein notify dass ich net da bin, wenn jemand meinen namen sagt, aber das hab ich ja schon alles...
Also ich habe das script hier für mich angepasst und es funzt PERFEKT! aber nur wenn ich mono severing betribe, halt auf einem server connectet bin, doch jetzt brauche ich noch die fertige version, damit es super auf 2 server läuft, kann es mir jemand so umschreiben, dass ich nix mehr machen muss :rolleyes: mir ist das schon ein böser fauxpas passiert...
*heul*
[script]
n0=alias away {
n1= if (%status != away) {
n2= set %away $1-
n3= ame ist ´ $+ %away $+ ´
n4= set %nick $me
n5= set %status away
n6= /away %away
n7= set %time $ctime
n8= /nick ich[away]
n9= }
n10= else {
n11= ame ist wieder da. Ich war $duration($calc( $ctime - %time )) ´ $+ %away $+ ´
n12= unset %away
n13= away
n14= set %status back
n15= nick %nick
n16= unset %nick
n17= }
n18=}
n19=}
n20=on *:TEXT:*:?: {
n21=if ($nick != $me) {
n22= if (%status == away) {
n23= msg $nick I´m away for ´ $+ %away $+ ´ for $duration($calc( $ctime - %time )))
n24= halt
n25= }
n26=}
n27=alias back {
n28= away
n29=}
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.