PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [TIPPS] für away script


Philipp
24.02.2002, 16:49
[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 :)


Codeq
24.02.2002, 17:05
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

Philipp
24.02.2002, 17:25
[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´ :)

Mac Fly
24.02.2002, 17:57
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 ;)

Philipp
24.02.2002, 18:04
weil ich des auch net kapiere in der /help...
naja vielleicht weiss noch jemand was...das wäre echt super!!!

gencha
25.02.2002, 12:32
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 ;)

pate33
25.02.2002, 13:22
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?

gencha
26.02.2002, 07:32
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&acute;re away, we&acute;d whois you

</edit>

pate33
16.03.2002, 15:26
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
}

Mac Fly
16.03.2002, 17:40
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...

pate33
17.03.2002, 01:37
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...

Mac Fly
17.03.2002, 13:45
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 :)

pate33
17.03.2002, 22:18
naja, ist &acute;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&acute;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...

Philipp
18.03.2002, 16:31
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 &acute; $+ %away $+ &acute;
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 )) &acute; $+ %away $+ &acute;
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&acute;m away for &acute; $+ %away $+ &acute; for $duration($calc( $ctime - %time )))
n24= halt
n25= }
n26=}
n27=alias back {
n28= away
n29=}