Graal Forums  

Go Back   Graal Forums > Development Forums > NPC Scripting > Code Gallery
FAQ Members List Calendar Today's Posts

 
 
Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 04-06-2007, 08:08 PM
Rapidwolve Rapidwolve is offline
Registered User
Join Date: Jul 2006
Posts: 1,241
Rapidwolve is an unknown quantity at this point
Mailing System

NPC: Mail
PHP Code:
function onCreated()
 
createVariables();

function 
createVariables(){
  
setVars();
  
calcMostSent();
  
this.mailIDs = {"Example Box""Mailbox 1""the Bank",
                      
"etc"}; // Add as many as you wish
}


function 
setVars(){
  for (
iallplayers){
    
temp.player findPlayer(i);
      if (
temp.player != null){
        
this.sentmail.(@temp.player) = temp.player.clientr.sentmailamt;
    }
  }
}

public function 
calcMostSent(){
  
setVars();
  
temp.keys getstringkeys("this.sentmail.");
  
setarray(temp.mostsent2);
    for (
temp.0temp.temp.keys.size(); temp.++) {
      
temp.current makevar("this.sentmail." temp.keys[temp.i]);
        if (
temp.current temp.mostsent[1]) {
          
temp.mostsent[1] = temp.current;
          
temp.mostsent[0] = temp.keys[temp.i];
      }
}
   
serverr.mail.mostsent = {temp.mostsent[0],temp.mostsent[1]};
   return 
temp.mostsent[0];  

Class: postoffice-getmail
PHP Code:
function onCreated(){
  
setshape(1,32,32);
}

function 
onActionGrabbed(){
  if (
clientr.sentmail == false)
  {
    if (
clientr.sendmailto == null)
    {
      
findNPC("Mail").calcMostSent();
      
temp.num findNPC("Mail").mailIDs.size();
      
temp.mailID findNPC("Mail").mailIDs[random(0,temp.num)];
      
clientr.sendmailto temp.mailID;
      
temp.msg "Hmm... this letter is for someone at " clientr.sendmailto;
      
player.chat temp.msg;
      return;
    }
    else
    {
    
temp.msg clientr.sendmailto " is expecting a letter from you!";
    
player.chat temp.msg
    
return;
    }
  }
  
    if (
clientr.sentmail == true)
  {
    
findNPC("Mail").calcMostSent();
    
temp.paydol int(random(4,6));
    
player.rupees += temp.paydol;
    
clientr.sendmailto null;
    
clientr.sentmail false;
    
player.chat format("Recieved %i rupees"temp.paydol);
    return;
  }
}

//#CLIENTSIDE
function onCreated() {
  
setshape(1,32,32);

Class: postoffice-stats
PHP Code:
/* 
Post Office System
    by RW*
    */
//#CLIENTSIDE

function onCreated()
  
onTimeout();

function 
onTimeout(){
  
showText(2xy"Tahoma""b"format("%s has the most sent letters with %s"serverr.mail.mostsent[0],serverr.mail.mostsent[1]));
  
changeimgzoom(2.60);
  
showText(3xy+1"Tahome""b"format("You have sent %s letter(s)"clientr.sentmailamt));
  
changeimgzoom(3.60);
  
setTimer(.1);

Class: mailbox
PHP Code:

function onCreated(){
  
setimg("oakdale_mailbox-1.gif"); // replace with your mailbox image
}

function 
onActionGrabbed(acc){
  if (
player.dir == 0){
    if (
clientr.sendmailto == nullsay2(this.mailboxID);
      if (
clientr.sendmailto != null {
        if (
clientr.sendmailto == this.mailboxID){
         
findNPC("Mail").calcMostSent();
         
clientr.sentmailamt++;
         
clientr.sentmail true;
         
clientr.sendmailto null;
         
player.chat "Sent The Letter!";
    }
     else
    {
      
player.chat "Wrong Mailbox!";
      }
    }
  }

Post Office:
Create a level for the post office.

Add this code, put it againts a wall or something because it is invisible. You must grab it to get a new letter
PHP Code:
join("postoffice-getmail"); 
Add this code to show statistics.
PHP Code:
join("postoffice-stats"); 
Mailboxes:
Add this code into a level

PHP Code:
join("mailbox");
this.mailboxID "Example Box"// The mailbox ID must exist in the Mail NPC 'this.mailIDs' array 

Last edited by Rapidwolve; 04-06-2007 at 08:30 PM..
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 01:03 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.
Copyright (C) 1998-2019 Toonslab All Rights Reserved.