RPG Game Romanesc

By afp_romania on Oct 08, 2015

Hello there! I am working on a new IRC RPG game for my channel and i have more to do before i will finish it. This game is 100% in my language so, sorry for you. It's for my friends :D

Clase de luptatori

  1. Oameni - Negustori (Teritoriul oamenilor)
  2. Orci - Mordor (Teritoriul orcilor)
  3. Vampiri - Bran (Teritoriul vampirilor)
  4. Vrajitori - Tigania (Teritoriul vrajitorilor)
  5. Centauri - Tesalia (Teritoriul centaurilor)
  6. Varcolaci - Eclypse (Teritoriul varcolacilor)

Arme in magazin:

  1. Cutit (Atac=1, Aparare=0, Skill=1) Pret: 300
  2. Sabie (Atac=2, Aparare=2, Skill=3) Pret: 500
  3. Topor (Atac=3, aparare=1, Skill=2) Pret: 650
  4. Arc (Atac=4, Aparare=0, Skill=2) Pret: 800
  5. Arbaleta (Atac=5, Aparare=2, Skill=3) Pret: 1200
  6. Trident (Atac=7, Aparare=3, Skill=5) Pret: 2000

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.

Comments

Sign in to comment.
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.