Files
dsrc/sku.0/sys.server/compiled/game/script/csr/get_resource_crate.script
T

126 lines
3.5 KiB
Plaintext

/**
* Copyright (c)2000-2002 Sony Online Entertainment Inc.
* All Rights Reserved
*
* Title: getResourceCrate.script
* Description: CSR tool to get an arbitrary amount of an arbitrary resource
* @author $Author:$
* @version $Revision:$
*/
/***** INCLUDES ********************************************************/
include library.utils;
/***** INHERITS ********************************************************/
/***** CONSTANTS *******************************************************/
const int MAX_AMOUNT = 100000;
/***** TRIGGERS ********************************************************/
trigger OnSpeaking(String text)
{
//make sure caller is a God
if ( isPlayer(self) && !isGod(self) )
{
return SCRIPT_CONTINUE;
}
java.util.StringTokenizer tok = new java.util.StringTokenizer (text);
//check for command name: getResourceCrate
if (tok.hasMoreTokens ())
{
String command = tok.nextToken ();
boolean notEnoughParams = false;
if (command.equals ("getResourceCrate") )
{
if(tok.hasMoreTokens ())
{
String resourceName = tok.nextToken ();
if(tok.hasMoreTokens ())
{
int amount = utils.stringToInt(tok.nextToken ());
if(amount < 0)
{
sendSystemMessage(self, "getResourceCrate: FAILURE - Negative amounts of resources not allowed", "");
return SCRIPT_CONTINUE;
}
if(amount > MAX_AMOUNT)
{
sendSystemMessage(self, "getResourceCrate: FAILURE - Requested amount greater than the " + MAX_AMOUNT + " maximum.", "");
return SCRIPT_CONTINUE;
}
getResourceCrate(self, resourceName, amount);
}
else
notEnoughParams = true;
}
else
notEnoughParams = true;
if(notEnoughParams)
{
debugConsoleMsg(self, "Usage: getResourceCrate <resourceName> <amount>. Example: getResourceCrate Evom 4000");
}
}
}
return SCRIPT_CONTINUE;
}
/***** FUNCTIONS *******************************************************/
/** Given a name and amount, create a filled resource crate in the caller's inventory
*/
void getResourceCrate(obj_id player, String resourceName, int amount)
{
obj_id resourceType = getResourceTypeByName(resourceName);
if(isIdValid(resourceType))
{
string crateTemplate = getResourceContainerForType(resourceType);
if ( !crateTemplate.equals("") )
{
obj_id pInv = utils.getInventoryContainer(player);
if ( pInv != null )
{
obj_id crate = createObject(crateTemplate, pInv, "");
if ( (crate == null) || (crate == obj_id.NULL_ID) )
{
sendSystemMessage(player, "getResourceCrate: FAILURE - Could not create crate.", "");
}
else
{
if ( addResourceToContainer (crate, resourceType, amount, player) )
{
sendSystemMessage(player, "getResourceCrate: Crate of " + resourceName + " created and filled with " + amount + " units. It has been placed in your inventory.", "");
}
else
{
sendSystemMessage(player, "getResourceCrate: FAILURE - Crate created, but could not be filled.", "");
}
}
}
else
{
sendSystemMessage(player, "getResourceCrate: FAILURE - Could not get your inventroy to put the container in.", "");
}
}
else
{
sendSystemMessage(player, "getResourceCrate: FAILURE - Could not get the crate template.", "");
}
}
else
{
sendSystemMessage(player, "getResourceCrate: FAILURE - Could not find resource type by name, check resource name.", "");
}
}