Clase de luptatori
Arme in magazin:
Momentan inca se lucreaza la comenzi pentru ca jocul nu este complet. In timp ce avansez la joc, am sa si postez updateurile.
;; ###########################################################################################################
;; Comenzi necesare # Clase de luptatori # Armele luptatorilor # Orasele existente #
;; # 1. Vrajitor # 1. Cutit # 1. Negustori (oameni) #
;; !caractere - afiseaza caracterele # 2. Vampir # 2. Sabie # 2. Mordor (orci) #
;; !nou <caracter> <+un-nume-pus> # 3. Orc # 3. Topor # 3. Bran (vampiri) #
;; !fly <zona> - calatoresti pe harta # 4. Om # 4. Arc # 4. Tigania (vrajitori) #
;; !ataca <nume> <+putere> # 5. Centaur # 5. Arbaleta # 5. Tesalia (centauri) #
;; !medic - iti regenereaza viata 100% # 6. Varcolac # 6. Trident # 6. Eclypse (varcolaci) #
;; !cumpara <denumire arma> # # # #
;; !magazin - lista de arme # # # #
;; !cumpara # # # #
;; !orase - lista cu toate orasele # # # #
;; !jucatori # # # #
;; #####################################################################
;; # jucator.ini # arme.ini # Puteri speciale
;; # Caracter # cutit # 1. Vrajitori - Fireball
;; # Nume # sabie # 2. Vampiri - Transform
;; # Viata # topor # 3. Orc - PowerRoar
;; # # arc # 4. Om - Chakra
;; # Arma # arbaleta # 5. Centaur - PowerFeet
;; # Oras # trident # 6. Varcolac - Moonfear
;; # Buget # #
;; # Level # #
;; # Mana # #
;; # Vraja # #
;; ############################################################################################################
;; Comenzi de administrator de server
;; !addcaracter <nick> <caracter> <numele-ales> (ex: !addcaracter Vasile Orc Moroc)
;; !delcaracter <nick> (ex: !delcaracter Vasile)
;; !addbuget <nick> <valoare> (ex: !addbuget Vasile 5000)
;; !addmana <nick>
;; !addviata <nick>
;; !addarma <nick> <arma>
;; !addlevel <nick> <level> (ex: !addlevel Vasile 12)
;; !resetplayer <nick> - reseteaza profilul la setarile initiale
;; --- Lista caractere ---
on 1:text:!caractere:#: {
msg $chan [2Caractere disponibile]: Vrajitor, Vampir, Orc, Om, Centaur, Varcolac
}
#blkoldsun_rpg on
;; --- creare caracter user individual ---
on 1:text:!nou*:#: {
;; Sintaxa: !nou <caracter> <numele-ales> (ex: !nou Varcolac Ademis)
;; se verifica daca exista deja un cont creat in folder
if (!$exists($mircdirblkoldsun\config\pets\ $+ $nick $+ .ini)) {
;; daca nu exista un cont creat, atunci se poate alege un caracter nou
if ($2 == Vrajitor) || ($2 == Elf) || ($2 == Orc) || ($2 == OM) || ($2 == Centaur) || ($2 == Varcolac) {
writeini -n " $+ $mircdirblkoldsun\config\pets\ $+ $nick $+ .ini $+ " Profil Caracter $2 ;; se inregistreaza caracterul ales
writeini -n " $+ $mircdirblkoldsun\config\pets\ $+ $nick $+ .ini $+ " Profil Nume $3 ;; se inregistreaza numele caracterului
writeini -n " $+ $mircdirblkoldsun\config\pets\ $+ $nick $+ .ini $+ " Profil Viata 100 ;; se pune automat viata
writeini -n " $+ $mircdirblkoldsun\config\pets\ $+ $nick $+ .ini $+ " Profil Regenerare 100 ;; se pune automat regenerare
writeini -n " $+ $mircdirblkoldsun\config\pets\ $+ $nick $+ .ini $+ " Profil Arma Cutit ;; arma initiala cutit
writeini -n " $+ $mircdirblkoldsun\config\pets\ $+ $nick $+ .ini $+ " Profil Oras Negustori ;; orasul de pornire
writeini -n " $+ $mircdirblkoldsun\config\pets\ $+ $nick $+ .ini $+ " Profil Buget 2000 ;; banii de inceput
writeini -n " $+ $mircdirblkoldsun\config\pets\ $+ $nick $+ .ini $+ " Profil Level 1 ;; Nivelul/experienta
msg $chan [3Caracter creat]: $nick si-a creat caracterul $2 cu numele $3 $+ . Sa ii uram succes in batalie!
msg $chan [3Puncte acordate]: Viata: 100%, Regenerare: 100%, Arma: Cutit.
}
else { msg $chan Eroare: nu ai ales tipul caracterului tau: Vrajitor, Elf, Orc, Om, Centaur sau Varcolac }
}
else { msg $chan Eroare: Exista deja un cont creat pe acest nickname. }
}
;; --- Orasele existente in joc unde utilizatorii pot naviga ---
on 1:text:!orase*:#: {
msg $chan Orasele unde poti calatori:
timer 1 2 .msg $chan 1. Negustori (Teritoriul oamenilor)
timer 1 3 .msg $chan 2. Mordor (Teritoriul orcilor)
timer 1 4 .msg $chan 3. Bran (Teritoriul vampirilor)
timer 1 5 .msg $chan 4. Tigania (Teritoriul vrajitorilor)
timer 1 6 .msg $chan 5. Tesalia (Teritoriul centaurilor)
timer 1 7 .msg $chan 6. Eclypse (Teritoriul varcolacilor)
timer 1 8 .msg $chan Comanda: !fly <NumeOras>
}
;; ##########################################################################
;; --- Armele disponibile pentru caractere ---
on 1:text:!magazin*:#: {
msg $chan Arme disponibile in magazin:
timer 1 2 .msg $chan 1. Cutit (Atac=1, Aparare=0, Skill=1) Pret: 300
timer 1 3 .msg $chan 2. Sabie (Atac=2, Aparare=2, Skill=3) Pret: 500
timer 1 4 .msg $chan 3. Topor (Atac=3, aparare=1, Skill=2) Pret: 650
timer 1 5 .msg $chan 4. Arc (Atac=4, Aparare=0, Skill=2) Pret: 800
timer 1 6 .msg $chan 5. Arbaleta (Atac=5, Aparare=2, Skill=3) Pret: 1200
timer 1 7 .msg $chan 6. Trident (Atac=7, Aparare=3, Skill=5) Pret: 2000
timer 1 8 .msg $chan Comanda: !cumpara <nume-arma>
}
on 1:text:!cumpara*:#: {
if ($2 != NULL) {
if ($ReturnBuget > $readini(" $+ $mircdirblkoldsun\config\ $+ arme.ini $+ ",$2,pret)) {
msg $chan $ReturnNumeCaracter si-a achizitionat $2
}
else { msg $chan $ReturnNumeCaracter a incercat sa cumpere niste arme, dar nu are destui galbeni. }
}
}
;; ##########################################################################
;; --- Lista jucatorilor de RPG ---
;; OBS: $findfile($mircdirblkoldsun\config\pets\, *, 0, 0) - returneaza numarul de fisiere existente
;; OBS: $findfile($mircdirblkoldsun\config\pets\, *, 0) - va returna numarul de fisiere si din alte directoare/subdirectoare
on 1:text:!jucatori*:#: {
msg $chan Momentan avem $findfile($mircdirblkoldsun\config\pets\, *, 0, 0) jucatori.
msg $chan Lista jucatorilor:
}
;; --- Aliasuri jucator ---
alias ReturnNumeCaracter { return $readini(" $+ $mircdirblkoldsun\config\pets\ $+ $nick $+ .ini $+ ",Profil,Nume) }
alias ReturnCaracter { return $readini(" $+ $mircdirblkoldsun\config\pets\ $+ $nick $+ .ini $+ ",Profil,Caracter) }
alias ReturnBuget { return $readini(" $+ $mircdirblkoldsun\config\pets\ $+ $nick $+ .ini $+ ",Profil,Buget) }
alias ReturnViata { return $readini(" $+ $mircdirblkoldsun\config\pets\ $+ $nick $+ .ini $+ ",Profil,Viata) }
alias ReturnRegenerare { return $readini(" $+ $mircdirblkoldsun\config\pets\ $+ $nick $+ .ini $+ ",Profil,Regenerare) }
alias ReturnOras { return $readini(" $+ $mircdirblkoldsun\config\pets\ $+ $nick $+ .ini $+ ",Profil,Oras) }
alias ReturnArma { return $readini(" $+ $mircdirblkoldsun\config\pets\ $+ $nick $+ .ini $+ ",Profil,Arma) }
alias ReturnNick { return $readini(" $+ $mircdirblkoldsun\config\pets\ $+ $nick $+ .ini $+ ") }
alias ReturnLevel { return $readini(" $+ $mircdirblkoldsun\config\pets\ $+ $nick $+ .ini $+ ",Profil,Level) }
alias ReturnVraja { return $readini(" $+ $mircdirblkoldsun\config\pets\ $+ $nick $+ .ini $+ ",Profil,Vraja) }
alias ReturnMana { return $readini(" $+ $mircdirblkoldsun\config\pets\ $+ $nick $+ .ini $+ ",Profil,Mana) }
;; --- Aliasuri arme ---
alias atac_cutit { return $readini(" $+ $mircdirblkoldsun\config\ $+ arme.ini $+ ",cutit,atac) }
alias aparare_cutit { return $readini(" $+ $mircdirblkoldsun\config\ $+ arme.ini $+ ",cutit,aparare) }
alias skill_cutit { return $readini(" $+ $mircdirblkoldsun\config\ $+ arme.ini $+ ",cutit,skill) }
alias atac_sabie { return $readini(" $+ $mircdirblkoldsun\config\ $+ arme.ini $+ ",cutit,atac) }
alias aparare_sabie { return $readini(" $+ $mircdirblkoldsun\config\ $+ arme.ini $+ ",cutit,aparare) }
alias skill_sabie { return $readini(" $+ $mircdirblkoldsun\config\ $+ arme.ini $+ ",cutit,skill) }
alias atac_topor { return $readini(" $+ $mircdirblkoldsun\config\ $+ arme.ini $+ ",cutit,atac) }
alias aparare_topor { return $readini(" $+ $mircdirblkoldsun\config\ $+ arme.ini $+ ",cutit,aparare) }
alias skill_topor { return $readini(" $+ $mircdirblkoldsun\config\ $+ arme.ini $+ ",cutit,skill) }
alias atac_arc { return $readini(" $+ $mircdirblkoldsun\config\ $+ arme.ini $+ ",cutit,atac) }
alias aparare_arc { return $readini(" $+ $mircdirblkoldsun\config\ $+ arme.ini $+ ",cutit,aparare) }
alias skill_arc { return $readini(" $+ $mircdirblkoldsun\config\ $+ arme.ini $+ ",cutit,skill) }
alias atac_arbaleta { return $readini(" $+ $mircdirblkoldsun\config\ $+ arme.ini $+ ",cutit,atac) }
alias aparare_arbaleta { return $readini(" $+ $mircdirblkoldsun\config\ $+ arme.ini $+ ",cutit,aparare) }
alias skill_arbaleta { return $readini(" $+ $mircdirblkoldsun\config\ $+ arme.ini $+ ",cutit,skill) }
alias atac_trident { return $readini(" $+ $mircdirblkoldsun\config\ $+ arme.ini $+ ",cutit,atac) }
alias aparare_trident { return $readini(" $+ $mircdirblkoldsun\config\ $+ arme.ini $+ ",cutit,aparare) }
alias skill_trident { return $readini(" $+ $mircdirblkoldsun\config\ $+ arme.ini $+ ",cutit,skill) }
;; --- Profilul caracterului meu ---
on 1:text:!profil*:#: {
msg $nick Caracter: $ReturnCaracter ( $+ $ReturnNumeCaracter cu $ReturnViata $+ % viata), Arma: $ReturnArma <Bani: $ReturnBuget $+ > - Te aflii in orasul $ReturnOras
}
;; --- Medic SOS ---
on 1:text:!medic*:#: {
;; daca bugetul jucatorului este mai mare de 1500
if ($ReturnBuget >= 1500) {
;; atunci jucatorul se poate regenera
msg $chan SOS: $ReturnNumeCaracter (Regenerat: 100% $+ , Te-a costat: 1500)
;; se calculeaza temporar bugetul jucatorului - 1500
set %tempcalc $calc($ReturnBuget - 1500)
;; se seteaza in profilul jucatorului noua valoare de buget
writeini -n " $+ $mircdirblkoldsun\config\pets\ $+ $nick $+ .ini $+ " Profil Buget %tempcalc
;; se dezactiveaza valoarea temporara
unset %tempcalc
}
else {
msg $chan SOS: $ReturnNumeCaracter nu are un buget alocat pentru regenerare! ( $+ $ReturnBuget $+ )
}
}
;; aliasurile scurte pentru jucatorul <$2>
;; OBS: niciodata temporarul nu va avea acelasi nickname, pot exista si 100 de jucatori in acelasi timp
alias temp_arma { return $readini(" $+ $mircdirblkoldsun\config\pets\ $+ $2 $+ .ini $+ ",Profil,Arma) }
alias temp_viata { return $readini(" $+ $mircdirblkoldsun\config\pets\ $+ $2 $+ .ini $+ ",Profil,Viata) }
alias temp_level { return $readini(" $+ $mircdirblkoldsun\config\pets\ $+ $2 $+ .ini $+ ",Profil,Level) }
$alias temp_oras { return $readini(" $+ $mircdirblkoldsun\config\pets\ $+ $2 $+ .ini $+ ",Profil,Oras) }
;; --- Atac jucator ---
on 1:text:!atac*:#: {
if ($ReturnOras == $temp_oras ) {
;; daca $2 se afla pe canal sa poata fi atacat
if ($2 ison $chan) {
;; si daca sintaxa este completa
if ($2 != NULL) && ($3 != NULL) {
;;
msg $chan $ReturnNumeCaracter ataca pe $readini(" $+ $mircdirblkoldsun\config\pets\ $+ $2 $+ .ini $+ ",Profil,Nume) cu $3 puncte.
;; se preiau datele de la $nick (cel care ataca)
set %tempcalc $+ $nick $calc($ReturnArma + $ReturnViata + $ReturnLevel)
;; se preiau datele de la $2 (cel care este atacat)
set %tempcalc $+ $2 $calc($temp_arma + $temp_viata + $temp_level)
;; daca valoarea calculata pentru $nick e mai mare ca $2 (cel care este atacat)
if (%tempcalc $+ $nick > %tempcalc $+ $2) {
;; si daca LEVEL-ul este mai mare
if ($ReturnLevel >= $readini(" $+ $mircdirblkoldsun\config\pets\ $+ $2 $+ .ini $+ ",Profil,Level)) {
msg $chan $2 a luat bataie de la $nick $+ .
}
else {
msg $chan Felicitari $2 $+ !!! ai batut un player cu o experienta mai mare ca a ta!
}
}
else {
msg $chan $nick $+ , nu te poti lupta cu $readini(" $+ $mircdirblkoldsun\config\pets\ $+ $2 $+ .ini $+ ",Profil,Nume) $+ , are mai multe puncte ca tine!
}
}
else { msg $chan Eroare: comanda corecta este !atac <nickname> <puncte> }
}
else { msg $chan Numele specificat nu este prezent pe canal. }
}
else { msg $chan $nick $+ , nu te poti lupta cu $readini(" $+ $mircdirblkoldsun\config\pets\ $+ $2 $+ .ini $+ ",Profil,Nume) $+ , nu sunteti in acelasi oras. }
}
;; --- comanda de atac cu vraja ---
on 1:text:!vraja*:#: {
if ($2 ison $chan) {
if ($2 != NULL) {
;; daca jucatorul are mana pentru vraja
if ($ReturnMana == 1) {
;; random puncte de atac si bonus
set %temp_pcte $r(0,100)
set %temp_pcte $+ $nick $r(50,100)
;; preia numele caracterelor
msg $chan $ReturnNumeCaracter il ataca pe $readini(" $+ $mircdirblkoldsun\config\pets\ $+ $2 $+ .ini $+ ",Profil,Nume) cu $ReturnVraja ( $+ %temp_pcte $+ )
;; daca jucatorul atacat nu mai are viata atunci se va anunta pe canal
if ($readini(" $+ $mircdirblkoldsun\config\pets\ $+ $2 $+ .ini $+ ",Profil,Viata) < 0) {
msg $chan $2 a fost invins de $ReturnNumeCaracter $+ .
}
else {
;; scade punctajul lui <$2>
set %calcbuget $+ $2 $calc($readini(" $+ $mircdirblkoldsun\config\pets\ $+ $nick $+ .ini $+ ",Profil,Buget) - %temp_pcte)
writeini -n " $+ $mircdirblkoldsun\config\pets\ $+ $2 $+ .ini $+ " Profil Buget %calcbuget $+ $2
;; acorda puncte celui ce ataca <$nick>
set %calcbuget $+ $nick $calc($ReturnBuget + %temp_pcte $+ $nick)
writeini -n " $+ $mircdirblkoldsun\config\pets\ $+ $2 $+ .ini $+ " Profil Buget %calcbuget $+ $nick
;; anunta punctajul pe canal
msg $chan $nick primeste %temp_pcte $+ $nick bonus pentru batalie.
;; sterge variabilele
unset %temp_pcte
unset %temp_pcte $+ $nick
unset %calcbuget
unset %calcbuget $+ $nick
}
}
else {
msg $chan $nick se pare ca nu ai mana pentru a puea ataca.
}
}
else { msg $chan $nick comanda este incompleta. Sintaxa este: !vraja <Jucator> }
}
else { msg $chan $2 nu se afla pe canal sa-l poti ataca cu vraja. }
}
;; --- runda bonus ---
#blkoldsun_rpg end
Va rog, daca aveti idei sau sugestii despre noul joc lasati aici comentarii.