Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Add-On] Learning NPC scripts (beginner's guide)

Status
Not open for further replies.
Newbie Spellweaver
Joined
Jul 23, 2008
Messages
6
Reaction score
0
Re: [Guide] Learning NPC scripts (beginner's guide)

How do you make a mob spawn time? Like I want a mob to spawn every 50 minutes, how to do it?
 
Newbie Spellweaver
Joined
Oct 28, 2008
Messages
21
Reaction score
0
Re: [Guide] Learning NPC scripts (beginner's guide)

i have maked a nx trader/seller but im not sure if i did evrything is alright plz help me
PHP:
var status = 0;   

function start() {   
    status = -1;   
    action(1, 0, 0);   
}   

function action(mode, type, selection) {   
        
    if (mode == -1) {   
        cm.dispose();   
    }   
    else {    
        if (status >= 2 && mode == 0) {    
            cm.sendOk("you know where i am, bye!");    
            cm.dispose();    
            return;    
        }    
           
        if (mode == 1) {   
            status++;   
        }       
        else {   
            status--;   
        }   
           
        if (status == 0) {  
            cm.sendNext("hello im the #rcash trader#k!"); 
        } 
        else if (status == 1) { 
            cm.sendNext("you can trade #rmesos for nxcash.#k"); 
            cm.dispose(); 
        } 
        else if (status == 1) { 
            cm.sendSimple("this are the choices: \r\n#l0#100.000 mesos for 1000 nxcash#l\r\n#l1#1.000.000 mesos for 10.000 nxcash#l\r\n#l2#10.000.000 for 100.000 nxcash#l\r\n#l3#speciaal:100.000.000 for 1.000.000 nxcash#l"); 
            cm.dispose(); 
            }   
        }  
        else if (status == 2) {  
            if (selection == 0) {   
                cm.sendOk("Okay here you go");   
                cm.gainMeso(-100000);   
                cm.gainNX(1000);   
                cm.dispose();   
        }  
            if (selection == 1) {   
                cm.sendOk("Okay here you go");   
                cm.gainMeso(-1000000);   
                cm.gainNX(10000);   
                cm.dispose();   
        }  
            if (selection == 2) {   
                cm.sendOk("Okay here you go");   
                cm.gainMeso(-10000000);   
                cm.gainNX(100000);   
                cm.dispose();   
        }  
            if (selection == 3) {   
                cm.sendOk("Okay here you go");   
                cm.gainMeso(-100000000);   
                cm.gainNX(1000000);   
                cm.dispose();   
            } 
        } 
    }
 
Newbie Spellweaver
Joined
Dec 8, 2008
Messages
41
Reaction score
2
Re: [Guide] Learning NPC scripts (beginner's guide)

i have maked a nx trader/seller but im not sure if i did evrything is alright plz help me
PHP:
var status = 0;   

function start() {   
    status = -1;   
    action(1, 0, 0);   
}   

function action(mode, type, selection) {   
        
    if (mode == -1) {   
        cm.dispose();   
    }   
    else {    
        if (status >= 2 && mode == 0) {    
            cm.sendOk("you know where i am, bye!");    
            cm.dispose();    
            return;    
        }    
           
        if (mode == 1) {   
            status++;   
        }       
        else {   
            status--;   
        }   
           
        if (status == 0) {  
            cm.sendNext("hello im the #rcash trader#k!"); 
        } 
        else if (status == 1) { 
            cm.sendNext("you can trade #rmesos for nxcash.#k"); 
            cm.dispose(); 
        } 
        else if (status == 1) { 
            cm.sendSimple("this are the choices: \r\n#l0#100.000 mesos for 1000 nxcash#l\r\n#l1#1.000.000 mesos for 10.000 nxcash#l\r\n#l2#10.000.000 for 100.000 nxcash#l\r\n#l3#speciaal:100.000.000 for 1.000.000 nxcash#l"); 
            cm.dispose(); 
            }   
        }  
        else if (status == 2) {  
            if (selection == 0) {   
                cm.sendOk("Okay here you go");   
                cm.gainMeso(-100000);   
                cm.gainNX(1000);   
                cm.dispose();   
        }  
            if (selection == 1) {   
                cm.sendOk("Okay here you go");   
                cm.gainMeso(-1000000);   
                cm.gainNX(10000);   
                cm.dispose();   
        }  
            if (selection == 2) {   
                cm.sendOk("Okay here you go");   
                cm.gainMeso(-10000000);   
                cm.gainNX(100000);   
                cm.dispose();   
        }  
            if (selection == 3) {   
                cm.sendOk("Okay here you go");   
                cm.gainMeso(-100000000);   
                cm.gainNX(1000000);   
                cm.dispose();   
            } 
        } 
    }

PHP:
var status = 0;    

function start() {    
    status = -1;    
    action(1, 0, 0);    
}    

function action(mode, type, selection) {    
         
    if (mode == -1) {    
        cm.dispose();    
    }    
    else {     
        if (status >= 2 && mode == 0) {     
            cm.sendOk("you know where i am, bye!");     
            cm.dispose();     
            return;     
        }     
            
        if (mode == 1) {    
            status++;    
        }        
        else {    
            status--;    
        }    
            
        if (status == 0) {   
            cm.sendNext("hello im the #rcash trader#k!");  
        }  
        else if (status == 1) {  
            cm.sendNext("you can trade #rmesos for nxcash.#k"); 
	    // wrong usage of cm.dispose();   
        }  
        else if (status == 2) {// wrong status   
            cm.sendSimple("this are the choices: \r\n#L0#100.000 mesos for 1000 nxcash#l\r\n#L1#1.000.000 mesos for 10.000 nxcash#l\r\n#L2#10.000.000 for 100.000 nxcash#l\r\n#L3#speciaal:100.000.000 for 1.000.000 nxcash#l"); // capitcal L to open a selection.  
		// extra un-needed } 
        }   
        else if (status == 3) {   
            if (selection == 0) {    
                cm.sendOk("Okay here you go");    
                cm.gainMeso(-100000);    
                cm.gainNX(1000);    
                cm.dispose();    
        } else if (selection == 1) {    // use else if
                cm.sendOk("Okay here you go");    
                cm.gainMeso(-1000000);    
                cm.gainNX(10000);    
                cm.dispose();    
        } else if (selection == 2) {    // use else if
                cm.sendOk("Okay here you go");    
                cm.gainMeso(-10000000);    
                cm.gainNX(100000);    
                cm.dispose();    
        } else if (selection == 3) {    // use else if
                cm.sendOk("Okay here you go");    
                cm.gainMeso(-100000000);    
                cm.gainNX(1000000);    
                cm.dispose();    
            }  
        }  
    }  
} // another } needed

Here's a shorter version :
PHP:
var status = 0;  
var price = new Array(100000, 1000000, 10000000, 100000000);
var nx = new Array(1000, 10000, 100000, 1000000);

function start() {    
    status = -1;    
    action(1, 0, 0);    
}    

function action(mode, type, selection) {    
         
    if (mode == -1) {    
        cm.dispose();    
    }    
    else {     
        if (status >= 2 && mode == 0) {     
            cm.sendOk("you know where i am, bye!");     
            cm.dispose();     
            return;     
        }     
            
        if (mode == 1) {    
            status++;    
        }        
        else {    
            status--;    
        }    
            
        if (status == 0) {   
            cm.sendNext("hello im the #rcash trader#k!");  
        } else if (status == 1) {  
            cm.sendNext("you can trade #rmesos for nxcash.#k"); 
        } else if (status == 2) {
            cm.sendSimple("this are the choices: \r\n#L0#100.000 mesos for 1000 nxcash#l\r\n#L1#1.000.000 mesos for 10.000 nxcash#l\r\n#L2#10.000.000 for 100.000 nxcash#l\r\n#L3#speciaal:100.000.000 for 1.000.000 nxcash#l");
        } else if (status == 3) {     
                cm.sendOk("Okay here you go");    
                cm.gainMeso(-price[selection]);    
                cm.gainNX(nx[selection]);    
                cm.dispose();
        }  
    }  
}
 
Newbie Spellweaver
Joined
Oct 28, 2008
Messages
21
Reaction score
0
Re: [Guide] Learning NPC scripts (beginner's guide)

xoti thanks and i see what i did wrong
 
Newbie Spellweaver
Joined
Oct 21, 2006
Messages
32
Reaction score
0
Re: [Guide] Learning NPC scripts (beginner's guide)

PHP:
var status = -1;

function start() {
    status = -1;
    action(1, 0, 0);
}

function action(mode, type, selection) {
    if (mode == -1) {
        cm.sendOk("Come Back If Ya Want!");
        cm.dispose();
    } else {
        if (mode == 1) {
            status++;
        } else {
            status--;
        }

        if (status == 0) {
            cm.sendSimple("Whats up #h #? I am the 4th job skill mastery maxer of #StoryBox#n, Please Select your job!\r\n#L0##b#eThief#n#l\r\n#L1##r#eBowman#n#l\r\n#L2##k#eMage#n#l\r\n#L3##g#eWarrior#n#l\r\n#L4##n#ePirate#n#l");
        } else {
            if (selection == 0) {
                if (cm.getJob().equals(net.sf.odinms.client.MapleJob.THIEF) {       
cm.teachskill(4121009,0,1);
cm.teachskill(4120002,0,30);
cm.teachskill(4121000,0,20);
cm.teachskill(4121004,0,30);
cm.teachskill(4121008,0,30);
cm.teachskill(4121003,0,30);
cm.teachskill(4121006,0,30);
cm.teachskill(4121007,0,30);
cm.teachskill(4121005,0,30);
cm.teachskill(4221008,0,1);
cm.teachskill(4221000,0,20);
cm.teachskill(4220005,0,30);
cm.teachskill(4220006,0,30);
cm.teachskill(4220003,0,30);
cm.teachskill(4220004,0,30);
cm.teachskill(4220002,0,30);
cm.teachskill(4220007,0,30);
cm.teachskill(4220001,0,30);

		    cm.sendOk("Your skills have been maxed, enjoy StoryBox.");
                    cm.dispose();
                    return;
                } else {
                    cm.sendOk("You arent a Theif.");
                    cm.dispose();
		    return;
                }
            } else if (selection == 1) {
                if (cm.getJob().equals(net.sf.odinms.client.MapleJob.BOWMAN)) { 
                    cm.teachSkill(8,1,1);
cm.teachSkill(3121009,0,1);
cm.teachSkill(3221008,0,1);
cm.teachSkill(3121000,0,20);
cm.teachSkill(3221000,0,20);
cm.teachskill(3120005,0,30);
cm.teachskill(3120003,0,30);
cm.teachskill(3120007,0,30);
cm.teachskill(3120008,0,30);
cm.teachskill(3120006,0,30);
cm.teachskill(3120002,0,30);
cm.teachskill(3120004,0,30);
cm.teachskill(3221007,0,30);
cm.teachskill(3221002,0,30);
cm.teachskill(3221001,0,30);
cm.teachskill(3221005,0,30);
cm.teachskill(3221003,0,30);
cm.teachskill(3221004,0,30);
cm.teachskill(3221006,0,30);

	cm.sendOk("Your skills have been maxed, enjoy StoryBox.");
	cm.dispose();
                } else {
                    cm.sendOk("Your Arent A Bowman.");
                    cm.dispose();
		    return;
                }
            } else if (selection == 2) {
                if (cm.getJob().equals(net.sf.odinms.client.MapleJob.MAGICIAN)) {
                    cm.teachSkill(8,1,1);
cm.teachskill(2321000,0,20);
cm.teachskill(2321001,0,30);
cm.teachskill(2321006,0,10);
cm.teachskill(2321009,0,1);
cm.teachskill(2321007,0,30);
cm.teachskill(2321003,0,30);
cm.teachskill(2321008,0,30);
cm.teachskill(2321005,0,30);
cm.teachskill(2321004,0,30);
cm.teachskill(2321002,0,30);
cm.teachskill(2221000,0,20);
cm.teachskill(2221001,0,30);
cm.teachskill(2221008,0,1);
cm.teachskill(2221007,0,30);
cm.teachskill(2221006,0,30);
cm.teachskill(2221003,0,30);
cm.teachskill(2221005,0,30);
cm.teachskill(2221004,0,30);
cm.teachskill(2221002,0,30);
cm.teachskill(2121000,0,20);
cm.teachskill(2121001,0,30);
cm.teachskill(2121002,0,30);
cm.teachskill(2121003,0,30);
cm.teachskill(2121004,0,30);
cm.teachskill(2121005,0,30);
cm.teachskill(2121006,0,30);
cm.teachskill(2121007,0,30);
cm.teachskill(2121008,0,1);

  cm.sendOk("Your skills have been maxed, enjoy StoryBox.");
  cm.dispose();
                } else {
                    cm.sendOk("Your not a Mage.");
                    cm.dispose();
		    return;
                }
            } else if (selection == 3) {
                if (cm.getJob().equals(net.sf.odinms.client.MapleJob.WARRIOR)) {
cm.teachskill(1321000,0,20);
cm.teachskill(1321001,0,30);
cm.teachskill(1321002,0,30);
cm.teachskill(1321003,0,30);
cm.teachskill(1321005,0,30);
cm.teachskill(1321006,0,30);
cm.teachskill(1321007,0,10);
cm.teachskill(1321008,0,25);
cm.teachskill(1321009,0,25);
cm.teachskill(1321010,0,1);
cm.teachskill(1221000,0,20);
cm.teachskill(1221001,0,30);
cm.teachskill(1221002,0,30);
cm.teachskill(1221003,0,20);
cm.teachskill(1221004,0,20);
cm.teachskill(1221005,0,30);
cm.teachskill(1221006,0,30);
cm.teachskill(1221007,0,30);
cm.teachskill(1221009,0,30);
cm.teachskill(1221010,0,10);
cm.teachskill(1221011,0,30);
cm.teachskill(1221012,0,1);
cm.teachskill(1121000,0,20);
cm.teachskill(1121001,0,30);
cm.teachskill(1121002,0,30);
cm.teachskill(1121003,0,30);
cm.teachskill(1121004,0,30);
cm.teachskill(1121005,0,30);
cm.teachskill(1121006,0,30);
cm.teachskill(1121008,0,30);
cm.teachskill(1121010,0,30);
cm.teachskill(1121011,0,1);

  cm.sendOk("Your skills have been maxed, enjoy StoryBox.");
  cm.dispose();
		 } else {
                    cm.sendOk("Your not a Warrior.");
                    cm.dispose();
		    return;
                   }
	} else if (selection == 4) {
cm.teachskill(5121000,0,20);
cm.teachskill(5121001,0,30);
cm.teachskill(5121002,0,30);
cm.teachskill(5121003,0,20);
cm.teachskill(5121004,0,30);
cm.teachskill(5121005,0,30);
cm.teachskill(5121006,0,30);
cm.teachskill(5121007,0,30);
cm.teachskill(5121009,0,20);
cm.teachskill(5121010,0,30);
cm.teachskill(5221000,0,20);
cm.teachskill(5221001,0,30);
cm.teachskill(5221002,0,20);
cm.teachskill(5221003,0,30);
cm.teachskill(5221004,0,30);
cm.teachskill(5221006,0,10);
cm.teachskill(5221007,0,30);
cm.teachskill(5221008,0,30);
cm.teachskill(5221009,0,20);
cm.teachskill(5221010,0,20);
cm.teachskill(5221011,0,20);

           } else {
                    cm.sendOk("you arent a Pirate!");
                    cm.dispose();
		    return;
                   }
	 } else {
                cm.dispose();
            }
        }
    }

can some one tell me what i did wrong here?
 
Newbie Spellweaver
Joined
Jul 23, 2008
Messages
6
Reaction score
0
Re: [Guide] Learning NPC scripts (beginner's guide)

I ain't any good at coding but what I can see is that the cm.teachskill is to far to the left. and the { look wrong at the end.
 
Newbie Spellweaver
Joined
Oct 21, 2006
Messages
32
Reaction score
0
Re: [Guide] Learning NPC scripts (beginner's guide)

Is there anyway to use the cm.getLevel() command to get the level of the player and then give SP accordingly like say they are level 136, and they need sp for level 120~136, anyway they can give that thru a NPC
 
Initiate Mage
Joined
Jan 13, 2007
Messages
2
Reaction score
0
Re: [Guide] Learning NPC scripts (beginner's guide)

I'm trying to make an NPC for Pet Commands (trying to follow exactly what I see in MapleSEA) since Pet Command guidebook doesn't work for my server. Here it is:

PHP:
var status = 0;  

function start() {  
    status = -1;  
    action(1, 0, 0);  
}  

function action(mode, type, selection) {  
       
    if (mode == -1) {  
        cm.dispose();  
    }  
    else {   
        if (mode == 0) {   
            cm.sendOk("Goodbye");   
            cm.dispose();   
            return;   
        }   
          
        if (mode == 1) {  
            status++;  
        }      
        else {  
            status--;  
        }  
          
        if (status == 0) {  
            cm.sendNext("Hmm... Are you raising one of my kids by any chance? I perfected a spell that uses Water of Life to blow life into a doll. People call it #bPet#k. If you have one with you, Feel free to ask me questions.");

        } else if (status == 1) {  
            cm.sendSimple("What do you want to know more of? #b\r\n#L0#Tell me more about Pets.#l\r\n#L1#How do I raise Pets?#l#k");

        } else if (status == 2) {  
            if (selection == 0) {
            cm.sendNext("So you want to know more about Pets. Long ago I made a doll, sprayed Water of Life on it, and cast spell on it to create a magical animal. I know it sounds unbelievable, but it's a doll that became an actual living thing. They understand and follow people very well.");

        } else if (status == 3) {  
            cm.sendNextPrev("But Water of Life only comes out little at the very botton of the World Tree, so I can't give him too much time in life... I know, it's very unfortunate... but even if it becomes a doll again, I can always bring life back into it. So be good to it while you're with it.");

        } else if (status == 4) { 
            cm.sendOk("Oh yeah, they'll react when you give them special commands. You can scold them, love them... it all depends on how you take care of them. They are afraid to leave their masters. So be nice to them, show them love. They can get sad and lonely fast...");
            cm.dispose();

        } else if (selection == 1) {
            cm.sendNext("Depending on the command you give, pets can love it, hate, and display other kinds of reactions to it. If you give the pet a command and it follows you well, your closeness goes up. Double click on the pet and you can check the closeness, level, fullness and etc...");

        } else if (status == 5) { 
            cm.sendNextPrev("Talk to the pet, pay attention to it and its closeness will go up and eventually his overall level will go up too. As the closeness rises, the pet's overall level will rise soon after. As the overall level rises, one day the pet may even talk like a person a little bit, so try hard raising it. Of course it won't be easy doing so...");

        } else if (status == 6) { 
            cm.sendNextPrev("It may be a live doll but they also have life so they can feel the hunger too. #bFullness#k shows the level of hunger the pet's in. 100 is the max, and the lower it gets, it means that the pet is getting hungrier. After a while, it won't even follow your command and be offensive. So watch out for that.");

        } else if (status == 7) { 
            cm.sendNextPrev("Oh yes! Pets can't eat the normal human food. Instead my disciply #bDoofus#k sells #bPet Food#k at the Henesys market. So if you need food for your pet, find Henesys. It'll be a good idea to buy the food in advance and feed the pet before it gets really hungry.");

        } else if (status == 8) { 
            cm.sendOk("Oh, and if you don't feed the pet for a long period of time, it goes back home by itself. You can take it out of its home and feed it but it's not really good for the pet's health. So try feeding him on a regular basis so it doesn't go down to that level, alright? I think this will do.");
            cm.dispose();
        }

     }
   }
}

Got it to work but not 100% working. Can someone please point out where I got it wrong? Thanks =)
 
Newbie Spellweaver
Joined
Oct 28, 2008
Messages
21
Reaction score
0
Re: [Guide] Learning NPC scripts (beginner's guide)

can this work for an shop only for gm's
PHP:
var status = 0;   

function start() {   
    status = -1;   
    action(1, 0, 0);   
}   

function action(mode, type, selection) {   
        
    if (mode == -1) {   
        cm.dispose();   
    }   
    else {    
        if (status >= 2 && mode == 0) {    
            cm.sendOk("bye");    
            cm.dispose();    
            return;    
        }    
           
        if (mode == 1) {   
            status++;   
        }       
        else {   
            status--;   
        }   
           
        if (status == 0) {  
            cm.sendNext("If you aren't GM i cant trade with you"); 
        } 
        else if (status == 1) { 
            if(cm.isGM()) { 
                cm.sendNext("Good for you. this is a rare nx shop."); 
                cm.dispose(); 
            } 
            else { 
                 cm.sendNext("you aren't GM!"); 
                 cm.dispose(); 
                }  
            } 
        } 
    }

or must i do something else and are there some foulds in here?
already thanks
 
Junior Spellweaver
Joined
Jul 21, 2008
Messages
124
Reaction score
47
Re: [Guide] Learning NPC scripts (beginner's guide)

@ heyoka

PHP:
var status = 0;    

function start() {    
    status = -1;    
    action(1, 0, 0);    
}    

function action(mode, type, selection) {    
         
    if (mode == -1) {    
        cm.dispose();    
    }    
    else {     
        if (status >= 2 && mode == 0) {     
            cm.sendOk("bye");     
            cm.dispose();     
            return;     
        }     
            
        if (mode == 1) {    
            status++;    
        }        
        else {    
            status--;    
        }    
            
        if (status == 0) {   
            cm.sendNext("If you aren't GM i cant trade with you");  
        }  
        else if (status == 1) {  
            if(cm.getChar().isGM() == null) {
                cm.sendNext("you aren't GM!");  
                cm.dispose(); 
            }  
            else {  
                cm.sendNext("Good for you. this is a rare nx shop.");  
                cm.dispose();  
            }   
        }  
    }  
}
 
Newbie Spellweaver
Joined
Dec 17, 2008
Messages
75
Reaction score
27
Re: [Guide] Learning NPC scripts (beginner's guide)

great guide
 
Newbie Spellweaver
Joined
Jul 19, 2008
Messages
18
Reaction score
0
Re: [Guide] Learning NPC scripts (beginner's guide)

Umm...If you wanna place Npcs in certain places also, you can use command !pnpc after you edit them =)

Need to be level 5 GM

Join BlueBerryStory
 
Newbie Spellweaver
Joined
Oct 3, 2008
Messages
11
Reaction score
0
Re: [Guide] Learning NPC scripts (beginner's guide)

Hmm... Very nice guide, I've seen all that stuff before in other guides but you gave good examples. I was wondering if anyone with more experience could help me have a NPC check an SQL info.
ex.
I want npc to check a char named Bob's level.
How do i define that using,
select level from characters where name = ?;
I spent a while trying this, and I couldnt figure it out. Thank you.
Msn: asilent1@live.com
 
Newbie Spellweaver
Joined
Jan 9, 2009
Messages
60
Reaction score
0
Re: [Guide] Learning NPC scripts (beginner's guide)

I was looking for this xD
This should help me alot. :)
 
Initiate Mage
Joined
Oct 29, 2008
Messages
3
Reaction score
0
Re: [Guide] Learning NPC scripts (beginner's guide)

Yo guys, I've got kind of confused on Level 2.

It says to open the conversation in different statuses, I have a Script which starts as the following;
Code:
function start() {
    cm.sendSimple ("What job do you wish to be? \r\n#L0##bBeginner#k#l \r\n\ #L1##bWarrior#k#l \r\n\ #L2##bMagician#k#l \r\n\ #L3##bBowman#k#l \r\n\ #L4##bThief#k#l \r\n\ #L5##bPirate#k#l \r\n\ #L6##bI'll think about it#k#l");
}

function action(mode, type, selection) {
    if (selection > 5) {cm.sendSimple("Okay, I will give you some pocket money and a #bMark of Beta#k#l bandana that adds to your stats. Over time we will decrease the rates of the server, and as a present, higher the stats that the #bMark of Beta#k#l gives. By the way, type @ucp for the User Control Panel where you can do all you ever wanted, anywhere, anytime!"); cm.dispose();}

And it continues, so I want to add the Text with the cm.sendNext in the start, but where do I add the Statuses and stuff?
 
Newbie Spellweaver
Joined
Apr 24, 2008
Messages
8
Reaction score
0
Re: [Guide] Learning NPC scripts (beginner's guide)

I don't understand how you know where to place all the } at the end of the script. How do you know what the spacing should be?
 
Junior Spellweaver
Joined
Jul 21, 2008
Messages
124
Reaction score
47
Re: [Guide] Learning NPC scripts (beginner's guide)

I don't understand how you know where to place all the } at the end of the script. How do you know what the spacing should be?

I've answered your question in the FAQ at the bottom of the guide. I hope it helps. I've struggled with this before. Don't worry you'll get the hang of this fast.
 
Newbie Spellweaver
Joined
Sep 28, 2008
Messages
62
Reaction score
0
Re: [Tut] Learning NPC scripts (beginner's guide)

Omg, I will use this very much! =)
 
Newbie Spellweaver
Joined
Apr 24, 2008
Messages
8
Reaction score
0
Re: [Tut] Learning NPC scripts (beginner's guide)

Oh okay, I get it now :D I always though they had to be placed in a certain way depending on your script
 
Banned
Banned
Joined
Dec 30, 2008
Messages
9
Reaction score
0
Re: [Tut] Learning NPC scripts (beginner's guide)

ty i love it!! it helped me SO MUCH
 
Status
Not open for further replies.
Back
Top