Graal Forums

Graal Forums (https://forums.graalonline.com/forums/index.php)
-   NPC Scripting (https://forums.graalonline.com/forums/forumdisplay.php?f=8)
-   -   A special door (https://forums.graalonline.com/forums/showthread.php?t=68316)

excaliber7388 08-24-2006 01:09 AM

A special door
 
Okay, so I'm making doors that can be opened by a key or lockpicking, and they are serverside. (Although this doesn't work clientside either).
Basically, I'm having trouble with the picking part. All the picking weapon does is send a trigger to a certain spot. I know that action is being sent. What I am having trouble with is the actual door:
PHP Code:


function onActionpick()
{
  if(
this.locked==0)
  {
    if(
this.canbelocked==1)
    {
      if(
this.warn==0)
      {
        
player.chat="This door is unlocked, to lock it, use the lockpick again";
        
this.warn=1;
      }
      else if(
this.warn==1)
      {
        
this.warn=0;
        
pick();
      }
    }
    else
    {
      
player.chat="This door cannot be locked";
    }
  }
  else
  {
    
picklock();
  }
}
function 
onCreated()
{
  
setshape(1,32,32);
  
// TOGGLE LOCK 0=CANNOT BE LOCKED 1=CAN LOCK
  
this.canbelocked=1;
  
this.locked=1;
}
function 
picklock()
{
  
player.chat="Picking lock...";
  
//other stuff



excaliber7388 08-24-2006 10:50 PM

Okay, I've added the key part too. It seems that it isnt receiving the actions, but it should be.
Key script:
PHP Code:

//#CLIENTSIDE
function onWeaponfired()
{
  
triggeraction(player.x+1+vecx(player.dir)*2,player.y+1.25+vecx(player.dir)*2,"key",1234);


Lock picking script:
PHP Code:

//#CLIENTSIDE
function onWeaponfired()
{
  
player.chat="...";
  
triggeraction(player.x+1+vecx(player.dir)*2,player.y+1.25+vecx(player.dir)*2,"pick","pick");


And the door:
PHP Code:

function onActionkey()
{
  if(
params[0]==1234//keycode, any number will work
  
{
    
this.locked=abs(this.locked-1);
  }
}   

function 
onActionpick()
{
  if(
this.locked==0)
  {
    if(
this.canbelocked==1)
    {
      if(
this.warn==0)
      {
        
player.chat="This door is unlocked, to lock it, use the lockpick again";
        
this.warn=1;
      }
      else if(
this.warn==1)
      {
        
this.warn=0;
        
triggeraction(x,y,"picklock","picklock");
      }
    }
    else
    {
      
player.chat="This door cannot be locked";
    }
  }
  else
  {
    
triggeraction(x,y,"picklock","picklock");
  }
}
function 
onCreated()
{
  
setshape(1,32,32);
  
// TOGGLE LOCK 0=CANNOT BE LOCKED 1=CAN LOCK
  
this.canbelocked=1;
  
this.locked=1;
}
function 
onPlayertouchsme()
{
  if(
this.locked==1)
  {
    
player.chat="This door is locked";
  }
  else if(
this.locked==0)
  {
    
hide();
    
sleep(2);
    
show();
  }
}
//#CLIENTSIDE
function onActionpicklock()
{
  
player.chat="Picking lock...";
  
this.lx=screenwidth-200;
  
this.ly=screenheight-150;
  
showimg(600,"dr_lock.png",this.lx,this.ly);
  
changeimgvis(600,10);
  
showimg(601,"dr_lock_pin.png",this.lx+4,this.ly+20);
  
changeimgvis(601,11);


Does anyone what could be worng??
:frown:

BigNoobie 08-25-2006 04:35 AM

You probably need to set the shape of the door NPC clientside so the NPC can recieve the trigger. just do
function onCreated() {
setshape(1,32,32);
}
Not sure if this will help, give it a shot.

excaliber7388 08-26-2006 04:37 AM

Nope, I tried that, it didn't work.

excaliber7388 09-02-2006 09:52 PM

bump


All times are GMT +2. The time now is 01:11 AM.

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