Thread: Shovel
View Single Post
  #1  
Old 07-22-2010, 11:36 PM
xMane xMane is offline
NPC-Server (Server)
xMane's Avatar
Join Date: May 2010
Posts: 59
xMane is on a distinguished road
Shovel

http://forums.graalonline.com/forums...ad.php?t=73836
/\
PHP Code:
function onActionServerside(serverOption)
{
  if (
temp.serverOption != "dig")
  {
    return 
false;
  }
  
temp.digPosition = player.dropPosition();
  if (
clientr.lastDig[0] == temp.digPosition[0] && clientr.lastDig[1] == clientr.lastDig[1])
  {
    return 
false;
  }
  
  
temp.digCheck = this.checkTiles(temp.digPosition);
  
  
clientr.lastDig = temp.digPosition;
  
setani("v_shovel", "v_shovel-"@ temp.digCheck @".png");
  
  switch (
temp.digCheck)
  { 
    case 
"grass":
      
this.doDrops(temp.digPosition, {{"object_hole", 0}, {"object_artifact", 290}});
    break;
    
    case 
"sand":
      
this.doDrops(temp.digPosition, {{"object_sandhole", 280}, {"generator_dungeon", 0}});
    break; 
  }
}
function 
checkTiles(position)
{
  
temp.tilePosition = tiles[temp.position[0], temp.position[1]];
  
temp.allTiles = {
    {
"grass", {1023, 299, 1, 0, 1008, 16, 130, 197, 131, 147, 114}},
    {
"sand", {301, 171, 170, 2993, 2992, 3010, 2977, 15,  8, 381, 382, 288, 181, 2976}},
    {
"darksand", {170, 947, 949, 895, 847, 904, 339, 905}}
  };
  for (
temp.currentTiles: temp.allTiles)
  {
    if (
temp.tilePosition in temp.currentTiles[1])
    {
      
temp.foundTile = temp.currentTiles[0];
      break;
    }
  }
  return 
temp.foundTile;
}
function 
doDrops(dropPosition, dropMode)
{
  for (
temp.currentDrop: temp.dropMode)
  {
    if (
temp.currentDrop[1] != 0)
    {
      
temp.doDrop = (random(0, 300) < temp.currentDrop[1]? true: false);
    }
     else
    {
      
temp.doDrop = true;
    }
    if (
temp.doDrop)
    {
      
putnpc2(temp.dropPosition[0], temp.dropPosition[1], ("join" SPC temp.currentDrop[0] @";"));
    }
  }
}
public function 
dropPosition()
{
  
temp.playerPos = {{0.75, 1}, {0.6, 1.5}};
  
temp.dropPos = {
    
player.x + (player.dir in {0, 2}? temp.playerPos[0][0] : temp.playerPos[1][0]) + vecx(player.dir) * 2,
    
player.y + (player.dir in {0, 2}? temp.playerPos[0][1] : temp.playerPos[1][1]) + vecy(player.dir) * 2
  
};
  return 
temp.dropPos;
}
//#CLIENTSIDE
function onWeaponFired()
{
  
triggerserver("weapon", this.name, "dig");
  
setani("grab",NULL);
} 
how would i make that drop sumthing? also only dig in sand and leave a rock lifted hole?
Reply With Quote