Graal Forums  

Go Back   Graal Forums > Development Forums > NPC Scripting
FAQ Members List Calendar Search Today's Posts Mark Forums Read

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 09-12-2011, 11:43 PM
fowlplay4 fowlplay4 is offline
team canada
fowlplay4's Avatar
Join Date: Jul 2004
Location: Canada
Posts: 5,200
fowlplay4 has a reputation beyond reputefowlplay4 has a reputation beyond reputefowlplay4 has a reputation beyond reputefowlplay4 has a reputation beyond reputefowlplay4 has a reputation beyond reputefowlplay4 has a reputation beyond reputefowlplay4 has a reputation beyond reputefowlplay4 has a reputation beyond reputefowlplay4 has a reputation beyond reputefowlplay4 has a reputation beyond reputefowlplay4 has a reputation beyond repute
You need to store 'this.inside' in a DB-NPC and use chestid to make 'this.inside' unique.

I.e: this.("chest_" @ this.chestid)

The Chest GUI should be created in the weapon npc.

1. Player Touches Chest

2. Call 'Chest Weapon' with Chest ID to load chest.
I.e: findweapon("-GUI/Chest").loadChest(this.chestid);

3. Trigger Server: Get contents of Chest ID (optional: Check Chest Owner)
I.e: triggerserver("gui", this.name, "loadChest", this.chestid);

4. Trigger Client: Contents of Chest ID
I.e: player.triggerclient(this.name, "chestContents", this.contents);

5. Store Contents on Clientside and Draw Chest GUI
I.e: this.contents = params[1];

I'd store the data in a DB-NPC called DB_Chests and use public functions to access and modify the data. I.e:

PHP Code:
public function getChest(chestid) {
  
// Return contents of chest
  
return this.("chest_" chestid);
}

public function 
addToChest(chestidweaponName) {
  
// Add Weapon to Chest
  
this.("chest_" chestid).add(weaponName);
}

public function 
removeFromChest(chestidweaponName) {
  
// Remove Weapon From Chest
  
this.("chest_" chestid).remove(weaponName);
}

public function 
hasInChest(chestidweaponName) {
  
// Check if Weapon is in Chest
  
return weaponName in this.("chest_" chestid);

Then you can use:

DB_Chests.getChest(chestid);
DB_Chests.addToChest(chestid, weaponName);
DB_Chests.removeFromChest(chestid, weaponName);
DB_Chests.hasInChest(chestid, weaponName);

To access and modify the contents of chests.

Also keep in mind that variables you set on the server-side are inaccessible on the client-side, I would recommend using attrs to get around that. I.e:

In your chest class:

PHP Code:
function onCreated() {
  
this.attr[2] = this.chestid;
  
this.attr[3] = this.chestowner// (optional)
}

//#CLIENTSIDE

function loadChest() {
  
temp.chestid this.attr[2];
  
temp.chestowner this.attr[3];
  
// do stuff with it.
}

// your other code... 
__________________
Quote:
Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

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 07:58 PM.


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