mirror of
https://github.com/SWG-Source/dsrc.git
synced 2026-07-31 00:15:54 -04:00
118 lines
3.3 KiB
Plaintext
118 lines
3.3 KiB
Plaintext
/**
|
|
* Title: getResourceCrate.script
|
|
* Description: CSR tool to get an arbitrary amount of an arbitrary resource
|
|
*/
|
|
|
|
/***** INCLUDES ********************************************************/
|
|
|
|
include library.utils;
|
|
|
|
/***** 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.", "");
|
|
}
|
|
}
|