MegaRPG NPC Module

Platform:  mIRC
Published  Jul 23, 2008
Updated  Jul 25, 2008
This is the NPC Module for MegaRPG.

Use With MegaRPG Base Code v2.0 and Rank Module v2.0

Making NPC's:
- Load This Script into Bot
- Replace 2 Parts of Base Code and Ranks Module
- In Bot Window type: /auser 500 <YOURNICK>
- To Save from Readini Problem Please Also type in bot window: /writeini Admins.ini Admin <YourNick> Yes

/msg <BOT> `NPC Add <NPC-Name> <NPC-Level>
/msg <BOT> `NPC Del <NPC-Name>

Adding an NPC will automatically give it HP/MHP, Attack and Defence stats depending on the Level you give it.

When someone typed `Entered they will see Who is entered including NPC's but there will be 3 different colors.
Normal: Player
Red: NPC
Blue: Admin ;NPC Maker
on 500:TEXT:`NPC *:?:{
if ($2 == Add) && ($3) && ($4) {
if ($istok(%NPC.Names,$3,32)) { notice $nick $left NPC Already Exists $right }
if (!$istok(%NPC.Names,$3,32)) {
createNPC $3 $4
set %NPC.Names $addtok(%NPC.Names,$3,32)
notice $nick $left NPC $3 Stats: $right
notice $nick $left Level:15 $readini(NPC.ini,$3,Lvl) 14|| HP:15 $readini(NPC.ini,$3,HP) $+ 14/15 $readini(NPC.ini,$3,MHP) $right
notice $nick $Left Character Name:15 $readini(NPC.ini,$3,Name) 14|| Attack:15 $readini(NPC.ini,$3,Atk) 14|| Defence:15 $readini(NPC.ini,$3,Def) $right
msg %MainChannel $left NPC Created:15 $3 $right
if ($2 == Del) && ($3) {
if (!$istok(%NPC.Names,$3,32)) { notice $nick $Left NPC Doesn't Exist $right | halt }
remini NPC.ini $3
set %NPC.Names $remtok(%NPC.Names,$3,32)
notice $nick $Left NPC15 $3 14Deleted $right
msg %Mainchannel $left 15 $+ $3 14Has been Removed from the Game. $right
set %BattleArena $remtok(%BattleArena,4 $+ $3 $+ 15,32)
alias createNPC {
if (!$1) || (!$2) { halt }
writeini NPC.ini $1 Name $1
writeini NPC.ini $1 Lvl $2
writeini NPC.ini $1 MHP $rand($calc($2 * 10),$calc($2 * 100))
writeini NPC.ini $1 Atk $rand($calc($2 * 5),$calc($2 * 50))
writeini NPC.ini $1 Def $rand($calc($2 * 5),$calc($2 * 50))
timer 1 5 NPCHeal $1
alias NPCHeal {
writeini NPC.ini $1 HP $readini(NPC.ini,$1,MHP)
set %BattleArena $addtok(%BattleArena,4 $+ $1 $+ 15,32)
msg %MainChannel $left 15 $+ $1 14Has Entered the Arena $right
on *:TEXT:`NPCStats *:%MainChannel:{
msg %MainChannel $left NPC $2 Stats: $right
msg %MainChannel $left Level:15 $readini(NPC.ini,$2,Lvl) 14|| HP:15 $readini(NPC.ini,$2,HP) $+ 14/15 $+ $readini(NPC.ini,$2,MHP) $right
msg %MainChannel $Left Character Name:15 $readini(NPC.ini,$2,Name) 14|| Attack:15 $readini(NPC.ini,$2,Atk) 14|| Defence:15 $readini(NPC.ini,$2,Def) $right
alias NPCDeathCheck {
if ($readini(NPC.ini,$1,HP) <= 0) {
set %EXPGained $rand(1,$calc($readini(NPC.ini,$1,Lvl) * 50))
writeini Players.ini $2 EXP $calc($readini(Players.ini,$2,EXP) + %EXPGained)
msg %MainChannel $left 15 $+ $2 $+ 14(15 $+ $readini(Players.ini,$2,Character_Name) $+ 14) has killed15 $1 $right
notice $2 $left You have gained15 %EXPGained 14Experience for killing15 $1 $right
timerHeal $+ $1 1 $calc($readini(NPC.ini,$1,Lvl) * 0.3) NPCHeal $1
levelcheck $2
set %BattleArena $remtok(%BattleArena,4 $+ $1 $+ 15,32)


Sign in to comment.
LucSatise   -  Aug 11, 2008
yeh because ive added the NPC\'s and admin as colours in the `Entered, You have to replace the base code with what is on the base code list =]
Nuk3d   -  Aug 10, 2008
i looked at mine and it had a extra line for magic
if ($readini(Players.ini,$2,Fighting) != Yes) { notice $nick $Left $2 is not Fighting. Try !entered $Right | halt }

Eugenio   -  Aug 09, 2008
cool beanz coz its abit weird having 5+ snippets all for one code, and I think the max amount of lines allowed for a snippet is 1500 so obv. all these snippets combined are more than that therefore I think you should zip it up and shove it in the addon section.
LucSatise   -  Aug 09, 2008
@Eugenio: That means u gotta wait till like all the modules are done. I prob will once i actually stop doing MegaRPG ;p

@EL Um yeh i\'l do it when i get a chance. im a bit busy getting ready to go on holiday and stuff just now so it might have to wait at least a week.
EL   -  Aug 08, 2008
Y0 you gunna me the npc fighting module LuC?.`-.-´
Eugenio   -  Aug 08, 2008
imo you should put these in a zip and make this an addon =/
all the diff snippets you uploaded for one code.

Nuk3d   -  Aug 08, 2008
i also just got that too lol
Sacred   -  Aug 06, 2008
Alright, I appreciate it. Great job btw, lol.
LucSatise   -  Aug 05, 2008
:/ sheesh hold i\'l redo the base code cos its only tht tht has those attacks
Sacred   -  Aug 05, 2008
Using the latest basecode and all the latest modules I get that problem, though.
LucSatise   -  Aug 05, 2008
keep up that got done ages ago -.-
Sacred   -  Aug 04, 2008
Would you mind fixing the \"NPC is not fighting\" thing with magic and fairydust?
LucSatise   -  Jul 30, 2008
hmm Yeh i found tht bug im updating the base code Now.
Wizjany   -  Jul 26, 2008
is there a way to choose what npcs are fighting? it doesn\'t have a \"fighting\" thing in the NPC.ini, changing the variable won\'t work, and i can\'t find where to set that...

edit: I tested it on my admin account, and all the attacks work except for `magic and `fairydust
whenever i tried to use those attacks, it told me that the npc that i directed it at wasn\'t fighting, even though it was in the arena
LucSatise   -  Jul 25, 2008
Update: Edited how long each different NPC takes to revive (now depends on level)
LucSatise   -  Jul 23, 2008
Im releasing them individually for 3 reasons:
1. The code if they were put together is too big and difficult to manage
2. When editing its easy to find different parts
3. Users dont HAVE to use the modules (even tho base code is upgraded for them if they request and pm me i will send them unedited base code)
Typo   -  Jul 23, 2008
Just out of curiosity, why are you releasing your game in peices that cannot be used as standalones? It seems like it would be a lot more appropriate to release it as a complete addon instead of multiple snippets.

Just wondering.

It looks like youve put a lot of work nto this tho and your code at a glance looks very clean. I especially like how I noticed in one of the other ones that you use aliases as if they were a variable and doing that had never crossed my mind before. That could come in handy.
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.