mirror of
https://github.com/SWG-Source/dsrc.git
synced 2026-07-13 22:01:04 -04:00
* Code compiles - execution NOT tested * updating gitignore * Removed intellij settings files * Removed more intellij files * Added exclusion for JDK classes. * Fixed purchasing script for vendors that have listed coin types. * Updated script to not kick off until the entire preload is complete. * adds static name entry for Solo movie poster and tcg9 vendor entry * clean up empty and orphaned object templates * adds placeholder black market (static) spawns * corrects entries for the video game table to correctly set it in tcg series 2 and remove series 1 console errors * Updated gitignore and removed intellij project files * Fixed appearance reference for thranta payroll and kashyyyk door, added skipLosCheck objvar due to cannit see issue. Requires updated src * Fixed appearance and template for terminal (#2) * Fixed appearance and template for terminal (#3) * Fixed appearance and template for terminal (#4) * Deleted another faulty/orphaned object template * Fixed gcw ranks option on frog. Only issue is that it doesn't award the officer commands or badges. * Fixed some unneeded java 11 changes
435 lines
18 KiB
Java
Executable File
435 lines
18 KiB
Java
Executable File
package script.test;
|
|
|
|
import script.dictionary;
|
|
import script.library.qa;
|
|
import script.library.sui;
|
|
import script.library.utils;
|
|
import script.obj_id;
|
|
|
|
public class qaweapon extends script.base_script
|
|
{
|
|
public qaweapon()
|
|
{
|
|
}
|
|
public static final String SCRIPTVAR = "qaweapon";
|
|
public static final String[] WEAPON_DAMAGE =
|
|
{
|
|
"1",
|
|
"10",
|
|
"50",
|
|
"100",
|
|
"500",
|
|
"1000",
|
|
"5000"
|
|
};
|
|
public static final String[] WEAPON_ELEMENT_TYPE =
|
|
{
|
|
"None",
|
|
"Heat",
|
|
"Cold",
|
|
"Acid",
|
|
"Electric"
|
|
};
|
|
public static final String[] WEAPON_TYPE =
|
|
{
|
|
"Pistol",
|
|
"Carbine",
|
|
"Rifle",
|
|
"Unarmed",
|
|
"1-Handed",
|
|
"2-Handed",
|
|
"Polearm",
|
|
"Heavy Weapon",
|
|
"Flame Thrower"
|
|
};
|
|
public static final int PISTOL = 0;
|
|
public static final int CARBINE = 1;
|
|
public static final int RIFLE = 2;
|
|
public static final int UNARMED = 3;
|
|
public static final int ONE_HANDED = 4;
|
|
public static final int TWO_HANDED = 5;
|
|
public static final int POLEARM = 6;
|
|
public static final int HEAVY = 7;
|
|
public static final int FLAMETHROWER = 8;
|
|
public static final int DAMAGE_1 = 0;
|
|
public static final int DAMAGE_10 = 1;
|
|
public static final int DAMAGE_50 = 2;
|
|
public static final int DAMAGE_100 = 3;
|
|
public static final int DAMAGE_500 = 4;
|
|
public static final int DAMAGE_1000 = 5;
|
|
public static final int DAMAGE_5000 = 6;
|
|
public static final int ELEMENT_0 = 0;
|
|
public static final int ELEMENT_32 = 1;
|
|
public static final int ELEMENT_64 = 2;
|
|
public static final int ELEMENT_128 = 3;
|
|
public static final int ELEMENT_256 = 4;
|
|
public int OnAttach(obj_id self) throws InterruptedException
|
|
{
|
|
if (isGod(self))
|
|
{
|
|
if (getGodLevel(self) < 10)
|
|
{
|
|
detachScript(self, "test.qaweapon");
|
|
sendSystemMessage(self, "You do not have the appropriate access level to use this script.", null);
|
|
}
|
|
}
|
|
else if (!isGod(self))
|
|
{
|
|
detachScript(self, "test.qaweapon");
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public int OnSpeaking(obj_id self, String text) throws InterruptedException
|
|
{
|
|
if (isGod(self))
|
|
{
|
|
if ((toLower(text)).equals(SCRIPTVAR))
|
|
{
|
|
weaponTypeMenu(self);
|
|
return SCRIPT_OVERRIDE;
|
|
}
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public int handleWeaponTypeOptions(obj_id self, dictionary params) throws InterruptedException
|
|
{
|
|
if (isGod(self))
|
|
{
|
|
obj_id player = sui.getPlayerId(params);
|
|
int btn = sui.getIntButtonPressed(params);
|
|
if (btn == sui.BP_CANCEL)
|
|
{
|
|
qa.removePlayer(player, SCRIPTVAR, "");
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
if (btn == sui.BP_REVERT)
|
|
{
|
|
qa.qaToolMainMenu(player);
|
|
utils.removeScriptVarTree(player, SCRIPTVAR);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
int idx = sui.getListboxSelectedRow(params);
|
|
if (idx < 0)
|
|
{
|
|
qa.removePlayer(player, SCRIPTVAR, "");
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
switch (idx)
|
|
{
|
|
case PISTOL:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".weaponTypeChoice", "Pistol");
|
|
weaponDamageMenu(player);
|
|
break;
|
|
case CARBINE:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".weaponTypeChoice", "Carbine");
|
|
weaponDamageMenu(player);
|
|
break;
|
|
case RIFLE:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".weaponTypeChoice", "Rifle");
|
|
weaponDamageMenu(player);
|
|
break;
|
|
case UNARMED:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".weaponTypeChoice", "Unarmed");
|
|
weaponDamageMenu(player);
|
|
break;
|
|
case ONE_HANDED:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".weaponTypeChoice", "1-Handed");
|
|
weaponDamageMenu(player);
|
|
break;
|
|
case TWO_HANDED:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".weaponTypeChoice", "2-Handed");
|
|
weaponDamageMenu(player);
|
|
break;
|
|
case POLEARM:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".weaponTypeChoice", "Polearm");
|
|
weaponDamageMenu(player);
|
|
break;
|
|
case HEAVY:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".weaponTypeChoice", "Heavy Weapon");
|
|
weaponDamageMenu(player);
|
|
break;
|
|
case FLAMETHROWER:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".weaponTypeChoice", "Flame Thrower");
|
|
weaponDamageMenu(player);
|
|
break;
|
|
default:
|
|
qa.removePlayer(player, SCRIPTVAR, "There was an error with your selection, Please try again.");
|
|
weaponTypeMenu(self);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public int handleWeaponLevelOptions(obj_id self, dictionary params) throws InterruptedException
|
|
{
|
|
if (isGod(self))
|
|
{
|
|
obj_id player = sui.getPlayerId(params);
|
|
int btn = sui.getIntButtonPressed(params);
|
|
if (btn == sui.BP_CANCEL)
|
|
{
|
|
qa.removePlayer(player, SCRIPTVAR, "");
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
if (btn == sui.BP_REVERT)
|
|
{
|
|
weaponTypeMenu(player);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
int idx = sui.getListboxSelectedRow(params);
|
|
if (idx < 0)
|
|
{
|
|
qa.removePlayer(player, SCRIPTVAR, "");
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
switch (idx)
|
|
{
|
|
case DAMAGE_1:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".damageChoice", 1);
|
|
elementalTypeMenu(player);
|
|
break;
|
|
case DAMAGE_10:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".damageChoice", 10);
|
|
elementalTypeMenu(player);
|
|
break;
|
|
case DAMAGE_50:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".damageChoice", 50);
|
|
elementalTypeMenu(player);
|
|
break;
|
|
case DAMAGE_100:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".damageChoice", 100);
|
|
elementalTypeMenu(player);
|
|
break;
|
|
case DAMAGE_500:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".damageChoice", 500);
|
|
elementalTypeMenu(player);
|
|
break;
|
|
case DAMAGE_1000:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".damageChoice", 1000);
|
|
elementalTypeMenu(player);
|
|
break;
|
|
case DAMAGE_5000:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".damageChoice", 5000);
|
|
elementalTypeMenu(player);
|
|
break;
|
|
default:
|
|
qa.removePlayer(player, SCRIPTVAR, "There was an error with your selection, Please try again.");
|
|
weaponTypeMenu(self);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public int handleWeaponElementalOptions(obj_id self, dictionary params) throws InterruptedException
|
|
{
|
|
if (isGod(self))
|
|
{
|
|
obj_id player = sui.getPlayerId(params);
|
|
int btn = sui.getIntButtonPressed(params);
|
|
if (btn == sui.BP_CANCEL)
|
|
{
|
|
qa.removePlayer(player, SCRIPTVAR, "");
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
if (btn == sui.BP_REVERT)
|
|
{
|
|
weaponDamageMenu(player);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
int idx = sui.getListboxSelectedRow(params);
|
|
if (idx < 0)
|
|
{
|
|
qa.removePlayer(player, SCRIPTVAR, "");
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
switch (idx)
|
|
{
|
|
case ELEMENT_0:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".elementChoice", 0);
|
|
createQAWeapon(player);
|
|
break;
|
|
case ELEMENT_32:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".elementChoice", 32);
|
|
elementalDamageMenu(player);
|
|
break;
|
|
case ELEMENT_64:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".elementChoice", 64);
|
|
elementalDamageMenu(player);
|
|
break;
|
|
case ELEMENT_128:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".elementChoice", 128);
|
|
elementalDamageMenu(player);
|
|
break;
|
|
case ELEMENT_256:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".elementChoice", 256);
|
|
elementalDamageMenu(player);
|
|
break;
|
|
default:
|
|
qa.removePlayer(player, SCRIPTVAR, "There was an error with your selection, Please try again.");
|
|
weaponTypeMenu(self);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public int handleWeaponElementalDamage(obj_id self, dictionary params) throws InterruptedException
|
|
{
|
|
if (isGod(self))
|
|
{
|
|
obj_id player = sui.getPlayerId(params);
|
|
int btn = sui.getIntButtonPressed(params);
|
|
if (btn == sui.BP_CANCEL)
|
|
{
|
|
qa.removePlayer(player, SCRIPTVAR, "");
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
if (btn == sui.BP_REVERT)
|
|
{
|
|
elementalTypeMenu(player);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
int idx = sui.getListboxSelectedRow(params);
|
|
if (idx < 0)
|
|
{
|
|
qa.removePlayer(player, SCRIPTVAR, "");
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
switch (idx)
|
|
{
|
|
case DAMAGE_1:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".elementalDamage", 1);
|
|
createQAWeapon(player);
|
|
break;
|
|
case DAMAGE_10:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".elementalDamage", 10);
|
|
createQAWeapon(player);
|
|
break;
|
|
case DAMAGE_50:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".elementalDamage", 50);
|
|
createQAWeapon(player);
|
|
break;
|
|
case DAMAGE_100:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".elementalDamage", 100);
|
|
createQAWeapon(player);
|
|
break;
|
|
case DAMAGE_500:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".elementalDamage", 500);
|
|
createQAWeapon(player);
|
|
break;
|
|
case DAMAGE_1000:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".elementalDamage", 1000);
|
|
createQAWeapon(player);
|
|
break;
|
|
case DAMAGE_5000:
|
|
utils.setScriptVar(player, SCRIPTVAR + ".elementalDamage", 5000);
|
|
createQAWeapon(player);
|
|
break;
|
|
default:
|
|
qa.removePlayer(player, SCRIPTVAR, "There was an error with your selection, Please try again.");
|
|
weaponTypeMenu(self);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public void weaponTypeMenu(obj_id player) throws InterruptedException
|
|
{
|
|
qa.refreshMenu(player, "-Weapon Type Select Menu-\nChoose the type of weapon you wish to use for testing.", "QA Test Weapon Tool", WEAPON_TYPE, "handleWeaponTypeOptions", SCRIPTVAR + ".pid", SCRIPTVAR + ".weaponTypeMenu", sui.OK_CANCEL_REFRESH);
|
|
}
|
|
public void weaponDamageMenu(obj_id player) throws InterruptedException
|
|
{
|
|
qa.refreshMenu(player, "-Weapon Damage Select Menu-\nSelect the amount of damage you want the weapon to have.\nNOTE: The Min/Max damage of all weapons will be the same.", "QA Test Weapon Tool", WEAPON_DAMAGE, "handleWeaponLevelOptions", SCRIPTVAR + ".pid", SCRIPTVAR + ".damageMenu", sui.OK_CANCEL_REFRESH);
|
|
}
|
|
public void elementalTypeMenu(obj_id player) throws InterruptedException
|
|
{
|
|
qa.refreshMenu(player, "-Weapon Damage Select Menu-\nSelect the elemental damage type you want the weapon to use.", "QA Test Weapon Tool", WEAPON_ELEMENT_TYPE, "handleWeaponElementalOptions", SCRIPTVAR + ".pid", SCRIPTVAR + ".elementalTypeMenu", sui.OK_CANCEL_REFRESH);
|
|
}
|
|
public void elementalDamageMenu(obj_id player) throws InterruptedException
|
|
{
|
|
qa.refreshMenu(player, "-Weapon Damage Select Menu-\nSelect the amount of elemental damage you want add to the weapon.\nNOTE: The Min/Max damage of all weapons will be the same.", "QA Test Weapon Tool", WEAPON_DAMAGE, "handleWeaponElementalDamage", SCRIPTVAR + ".pid", SCRIPTVAR + ".elementalTypeMenu", sui.OK_CANCEL_REFRESH);
|
|
}
|
|
public void checkInventory(obj_id player) throws InterruptedException
|
|
{
|
|
obj_id inventory = utils.getInventoryContainer(player);
|
|
obj_id[] invItems = getContents(inventory);
|
|
if (invItems.length > 79)
|
|
{
|
|
sendSystemMessageTestingOnly(player, "You do not have enough space in your inventory, please delete some items and try again.");
|
|
}
|
|
}
|
|
public void createQAWeapon(obj_id player) throws InterruptedException
|
|
{
|
|
if (utils.hasScriptVar(player, SCRIPTVAR + ".damageChoice") && utils.hasScriptVar(player, SCRIPTVAR + ".weaponTypeChoice"))
|
|
{
|
|
obj_id inventory = utils.getInventoryContainer(player);
|
|
checkInventory(player);
|
|
int intDamage = utils.getIntScriptVar(player, SCRIPTVAR + ".damageChoice");
|
|
int intElementalType = utils.getIntScriptVar(player, SCRIPTVAR + ".elementChoice");
|
|
int intElementalDamage = utils.getIntScriptVar(player, SCRIPTVAR + ".elementalDamage");
|
|
float speed = 0.00f;
|
|
String weaponObject = "";
|
|
String weaponType = utils.getStringScriptVar(player, SCRIPTVAR + ".weaponTypeChoice");
|
|
switch (weaponType) {
|
|
case "Pistol":
|
|
speed = 0.40f;
|
|
weaponObject = "object/weapon/ranged/pistol/pistol_cdef.iff";
|
|
break;
|
|
case "Carbine":
|
|
speed = 0.60f;
|
|
weaponObject = "object/weapon/ranged/carbine/carbine_cdef.iff";
|
|
break;
|
|
case "Rifle":
|
|
speed = 0.80f;
|
|
weaponObject = "object/weapon/ranged/rifle/rifle_cdef.iff";
|
|
break;
|
|
}
|
|
if (weaponType.equals("Flame Thrower"))
|
|
{
|
|
speed = 0.25f;
|
|
weaponObject = "object/weapon/ranged/rifle/rifle_flame_thrower.iff";
|
|
}
|
|
else if (weaponType.equals("Unarmed") || weaponType.equals("1-Handed") || weaponType.equals("2-Handed") || weaponType.equals("Polearm") || weaponType.equals("Heavy Weapon"))
|
|
{
|
|
speed = 1.00f;
|
|
switch (weaponType) {
|
|
case "Heavy Weapon":
|
|
weaponObject = "object/weapon/ranged/heavy/heavy_rocket_launcher.iff";
|
|
break;
|
|
case "Unarmed":
|
|
weaponObject = "object/weapon/melee/special/vibroknuckler.iff";
|
|
break;
|
|
case "1-Handed":
|
|
weaponObject = "object/weapon/melee/knife/knife_dagger.iff";
|
|
break;
|
|
case "2-Handed":
|
|
weaponObject = "object/weapon/melee/2h_sword/2h_sword_cleaver.iff";
|
|
break;
|
|
case "Polearm":
|
|
weaponObject = "object/weapon/melee/polearm/lance_staff_wood_s1.iff";
|
|
break;
|
|
}
|
|
}
|
|
obj_id newObj = createObject(weaponObject, inventory, "");
|
|
setObjVar(newObj, "dynamic_item.intLevelRequired", 1);
|
|
setObjVar(newObj, "noTrade", true);
|
|
setObjVar(newObj, "QAWeapon", 1);
|
|
setWeaponAttackSpeed(newObj, speed);
|
|
setWeaponMaxDamage(newObj, intDamage);
|
|
setWeaponMinDamage(newObj, intDamage);
|
|
setName(newObj, "QA Weapon - Testing Use Only");
|
|
if (intElementalType > 0)
|
|
{
|
|
setWeaponElementalDamage(newObj, intElementalType, intElementalDamage);
|
|
}
|
|
sendSystemMessageTestingOnly(player, "The QAWeapon has been placed in your backpack.");
|
|
qa.removePlayer(player, SCRIPTVAR, "");
|
|
}
|
|
else
|
|
{
|
|
sendSystemMessageTestingOnly(player, "There was an error with the QA Test Weapon Tool - Please Try Again.");
|
|
qa.removePlayer(player, SCRIPTVAR, "");
|
|
weaponTypeMenu(player);
|
|
}
|
|
}
|
|
}
|