Some fixes (#231)

* Some fixes

- Changed lumbridge teleport to require 31 magic instead of 32
- Added back gaining items from thieving stalls
- Fixed dialgoue issue after leveling up skill (such as smithing)
- Made god capes untradable
- Removed cannon balls from shop (they werent supposed to be in there)

* refactor pickpocketing slightly

* more refactoring, actual random

* refactor, each stall has it's own respawn timer

* refactor argument names

* Update Stalls.java
This commit is contained in:
Mr Extremez
2019-12-04 20:13:47 -06:00
committed by Daniel Ginovker
parent 256452114c
commit 402d732975
11 changed files with 217 additions and 167 deletions
+1 -2
View File
@@ -141,10 +141,9 @@ shop = 140 William's_Wilderness_Cape_Shop 2 2 4315 10 4335 10 4355 10 4375 10 43
shop = 141 Edward's_Wilderness_Cape_Shop 2 2 4323 10 4343 10 4363 10 4383 10 4403 10
shop = 142 Blurberry's_Bar 2 2 2028 10 2030 10 2032 10 2034 10 2036 10 2038 10 2040 10
shop = 143 Shop_of_Distaste 2 2 2518 100
shop = 144 Nulodion's_Multicannon_Parts 2 2 2 10000000 6 100 8 100 10 100 12 100
shop = 144 Nulodion's_Multicannon_Parts 2 2 6 100 8 100 10 100 12 100
shop = 145 Legends_Guild_Shop_of_Useful_Items 2 2 299 6 1590 5 1542 3 2368 1 1052 3
shop = 192 Legends'_Guild_General_Store 1 1 373 20 2323 5 121 3 886 500
// Npc not added yet, Shop may not be 317
shop = 146 Martin_Thwait's_Lost_and_Found 2 2 954 50 1523 25 1755 30 946 20 5560 25 864 15 863 10 865 5 3095 3 3096 2 3097 1
shop = 147 Grace's_Graceful_Clothing 2 2
-1
View File
@@ -833,7 +833,6 @@
1530 3234 3156 1 0 0
1530 3235 3198 1 0 0
1530 3247 3193 0 0 0
2406 3202 3169 0 0 0
1530 3208 3211 1 0 0
1530 3226 3214 2 0 0
1530 3226 3223 2 0 0
@@ -1,2 +1,3 @@
[2019/11/21] 18:52 andrew5 used command: bank
[2019/11/21] 19:04 andrew5 used command: bank
[2019/12/04] 13:26 andrew5 used command: bank
@@ -127,7 +127,8 @@ public class GameConstants {
775, 776, 777, 300, 88, 2415, 2416, 2417, 4214, 4215, 4216, 4217,
4218, 4219, 4220, 4221, 4222, 4223, 4224, 1555, 1556, 1557, 1558,
1559, 1560, 1561, 1562, 1563, 1564, 1565, 7585, 7584, 2714, 432,
433, 290, 5075, 5074, 5073, 5071, 5070, 7413, 6529, 4067, 2996, 1464, 666, 667 };
433, 290, 5075, 5074, 5073, 5071, 5070, 7413, 6529, 4067, 2996, 1464, 666, 667,
2412, 2413, 2414 };
public final static int[] ITEM_UNALCHABLE = { 995, 1555, 1556, 1557, 1558,
1559, 1560, 1561, 1562, 1563, 1564, 1565, 7583, 1566, 7585, 2528,
@@ -272,8 +272,8 @@ public class MagicTeleports {
}
}
if (MAGIC_LEVEL_REQUIRED) {
if (player.playerLevel[player.playerMagic] < 32) {
player.getPacketSender().sendMessage("You need a magic level of 32 to cast this spell.");
if (player.playerLevel[player.playerMagic] < 31) {
player.getPacketSender().sendMessage("You need a magic level of 31 to cast this spell.");
return;
}
}
@@ -426,8 +426,8 @@ public class Woodcutting {
1306, 8396, 8397, 8398, 8399, 8400, 8401, 8402, 8403, 8404, 8405,
8406, 8407, 8408, 8409, 13417, 13424, } };
public static void cutDownTree(int respawnTime, int objectX, int objectY, int type, int i, int objectId) {
new Object(i, objectX, objectY, 0, type, 10, objectId, respawnTime);
public static void cutDownTree(int respawnTime, int objectX, int objectY, int type, int stumpID, int treeID) {
new Object(stumpID, objectX, objectY, 0, type, 10, treeID, respawnTime);
for (int t = 0; t < PlayerHandler.players.length; t++) {
if (PlayerHandler.players[t] != null) {
if (PlayerHandler.players[t].treeX == objectX && PlayerHandler.players[t].treeY == objectY) {
@@ -20,77 +20,126 @@ public class Pickpocket extends SkillHandler {
public static enum npcData {
MAN(new int[] { 1, 2, 3, 3222 }, 1, 8.0, 1, 5, new int[] { 995, 3 }), WOMEN(
new int[] { 4, 5, 6 }, 1, 8.0, 1, 5, new int[] { 995, 3 }), FARMER(
new int[] { 7, 1757 }, 10, 14.5, 1, 5, new int[] { 995, 9 },
new int[] { 5318, 4 }), HAM_FEMALE(new int[] { 1715 }, 15,
18.5, 2, 4, new int[] { 995, 2 + r(19) },
new int[] { 4302, 1 }, new int[] { 4304, 1 }, new int[] { 4298,
1 }, new int[] { 4308, 1 }, new int[] { 4300, 1 },
new int[] { 4310, 1 }, new int[] { 4306, 1 }), HAM_MALE(
new int[] { 1714 }, 20, 22.5, 2, 4,
new int[] { 995, 2 + r(19) }, new int[] { 4302, 1 }, new int[] {
4304, 1 }, new int[] { 4298, 1 },
new int[] { 4308, 1 }, new int[] { 4300, 1 }, new int[] { 4310,
1 }, new int[] { 4306, 1 }), WARRIOR(
new int[] { 15, 18 }, 25, 26.0, 2, 5, new int[] { 995, 18 }), ROGUE(
new int[] { 187 }, 32, 35.5, 2, 5, new int[] { 995, 25 },
new int[] { 995, 40 }, new int[] { 7919, 1 }, new int[] { 556,
6 }, new int[] { 5686, 1 }, new int[] { 1523, 1 },
new int[] { 1944, 1 }), MASTER_FARMER(new int[] { 2234, 2235 },
38, 43.0, 2, 5, new int[] { i("potato seed"), 1 + r(2) },
new int[] { i("onion seed"), 1 + r(2) }, new int[] {
i("cabbage seed"), 1 + r(2) }, new int[] {
i("tomato seed"), 1 + r(1) }, new int[] {
i("sweetcorn seedseed"), 1 + r(1) }, new int[] {
i("strawberry seed"), 1 }, new int[] {
i("watermelon seed"), 1 }, new int[] {
i("barely seed"), 1 + r(3) }, new int[] {
i("hammerstone seed"), 1 + r(2) }, new int[] {
i("asgarnian seed"), 1 + r(1) }, new int[] {
i("jute seed"), 1 + r(2) }, new int[] {
i("yanillian seed"), 1 + r(1) }, new int[] {
i("krandorian seed"), 1 }, new int[] {
i("wildblood seed"), 1 }, new int[] {
i("redberry seed"), 1 }, new int[] {
i("cadavaberry seed"), 1 }, new int[] {
i("dwellberry seed"), 1 }, new int[] {
i("jangerberry seed"), 1 }, new int[] {
i("whiteberry seed"), 1 }, new int[] {
i("poison ivy seed"), 1 }, new int[] {
i("marigold seed"), 1 }, new int[] {
i("rosemarry seed"), 1 }, new int[] {
i("nasturtium seed"), 1 }, new int[] { i("woad seed"),
1 }, new int[] { i("limpwurt seed"), 1 }, new int[] {
i("guam seed"), 1 },
new int[] { i("marentill seed"), 1 }, new int[] {
i("tarromin seed"), 1 }, new int[] {
i("harralander seed"), 1 }, new int[] {
i("ranarr seed"), 1 }, new int[] { i("toadflax seed"),
1 }, new int[] { i("irit seed"), 1 }, new int[] {
i("avantoe seed"), 1 },
new int[] { i("kwuarm seed"), 1 }, new int[] {
i("snapdragon seed"), 1 }, new int[] {
i("cadantine seed"), 1 }, new int[] {
i("lantadyme seed"), 1 }, new int[] {
i("dwarf weed seed"), 1 }, new int[] {
i("torstol seed"), 1 }, new int[] {
i("bittercap mushroom spore"), 1 }, new int[] {
i("belladonna seed"), 1 }, new int[] {
i("cactus seed"), 1 }), GUARD(new int[] { 9, 32 }, 40,
46.8, 2, 5, new int[] { 995, 30 }), KNIGHT(new int[] { 26 },
55, 84.3, 3, 5, new int[] { 995, 50 }), MENAPHITE_THUG(
new int[] { 1904 }, 65, 137.5, 5, 5, new int[] { 995, 60 }), WATCHMAN(
new int[] { 431 }, 65, 137.5, 3, 5, new int[] { 995, 60 },
new int[] { 4593, 1 }), PALADIN(new int[] { 20 }, 70, 151.8, 5,
4, new int[] { 995, 80 }, new int[] { 562, 2 }), GNOME(
new int[] { 66 }, 75, 198.3, 1, 6, new int[] { 995, 300 },
new int[] { 557, 1 }, new int[] { 444, 1 },
new int[] { 569, 1 }, new int[] { 2150 }, new int[] { 2162 }), HERO(
new int[] { 21 }, 80, 273.3, 4, 6, new int[] { 995, 300 },
new int[] { 560, 2 }, new int[] { 565, 1 },
new int[] { 569, 1 }, new int[] { 1617, 1 },
new int[] { 444, 1 }, new int[] { 1993 });
MAN(new int[] { 1, 2, 3, 3222 }, 1, 8.0, 1, 5, new int[][] {
{995, 3},
}),
WOMEN(new int[] { 4, 5, 6 }, 1, 8.0, 1, 5, new int[][] {
{995, 3},
}),
FARMER(new int[] { 7, 1757 }, 10, 14.5, 1, 5, new int[][]{
{995, 9},
{5318, 4},
}),
HAM_FEMALE(new int[] { 1714, 1715 }, 15, 18.5, 2, 4, new int[][]{
{995, 2, 19},
{4302, 1},
{4304, 1},
{4298, 1},
{4308, 1},
{4300, 1},
{4310, 1},
{4306, 1},
}),
HAM_MALE(new int[] { 1714 }, 20, 22.5, 2, 4, new int[][]{
{995, 2, 19},
{4302, 1},
{4304, 1},
{4298, 1},
{4308, 1},
{4300, 1},
{4310, 1},
{4306, 1},
}),
WARRIOR(new int[] { 15, 18 }, 25, 26.0, 2, 5, new int[][] {
{995, 18},
}),
ROGUE(new int[] { 187 }, 32, 35.5, 2, 5, new int[][]{
{995, 25},
{995, 40},
{7919, 1},
{556, 6},
{5686, 1},
{1523, 1},
{1944, 1},
}),
MASTER_FARMER(new int[] { 2234, 2235 }, 38, 43.0, 2, 5, new int[][] {
{i("potato seed"), 1, 2},
{i("onion seed"), 1, 2},
{i("cabbage seed"), 1, 2},
{i("tomato seed"), 1, 1},
{i("sweetcorn seedseed"), 1, 1},
{i("strawberry seed"), 1},
{i("watermelon seed"), 1},
{i("barely seed"), 1, 3},
{i("hammerstone seed"), 1, 2},
{i("asgarnian seed"), 1, 1},
{i("jute seed"), 1, 2},
{i("yanillian seed"), 1, 1},
{i("krandorian seed"), 1},
{i("wildblood seed"), 1},
{i("redberry seed"), 1},
{i("cadavaberry seed"), 1},
{i("dwellberry seed"), 1},
{i("jangerberry seed"), 1},
{i("whiteberry seed"), 1},
{i("poison ivy seed"), 1},
{i("marigold seed"), 1},
{i("rosemarry seed"), 1},
{i("nasturtium seed"), 1},
{i("woad seed"), 1},
{i("limpwurt seed"), 1},
{i("guam seed"), 1},
{i("marentill seed"), 1},
{i("tarromin seed"), 1},
{i("harralander seed"), 1},
{i("ranarr seed"), 1},
{i("toadflax seed"), 1},
{i("irit seed"), 1},
{i("avantoe seed"), 1},
{i("kwuarm seed"), 1},
{i("snapdragon seed"), 1},
{i("cadantine seed"), 1},
{i("lantadyme seed"), 1},
{i("dwarf weed seed"), 1},
{i("torstol seed"), 1},
{i("bittercap mushroom spore"), 1},
{i("belladonna seed"), 1},
{i("cactus seed"), 1},
}),
GUARD(new int[] { 9, 32 }, 40, 46.8, 2, 5, new int[][] {
{995, 30},
}),
KNIGHT(new int[] { 26 }, 55, 84.3, 3, 5, new int[][] {
{995, 50},
}),
MENAPHITE_THUG(new int[] { 1904 }, 65, 137.5, 5, 5, new int[][] {
{995, 60},
}),
WATCHMAN(new int[] { 431 }, 65, 137.5, 3, 5, new int[][] {
{995, 60},
{4593, 1},
}),
PALADIN(new int[] { 20 }, 70, 151.8, 5, 4, new int[][]{
{995, 80},
{562, 2},
}),
GNOME(new int[] { 66 }, 75, 198.3, 1, 6, new int[][] {
{995, 300},
{557, 1},
{444, 1},
{569, 1},
{2150, 1},
{2162, 1},
}),
HERO(new int[] { 21 }, 80, 273.3, 4, 6, new int[][]{
{995, 300},
{560, 2},
{565, 1},
{569, 1},
{1617, 1},
{444, 1},
{1993, 1},
});
private final int levelReq, damage, stun;
private final int[] npcId;
@@ -98,7 +147,7 @@ public class Pickpocket extends SkillHandler {
private final double xp;
private npcData(final int[] npcId, final int levelReq, final double xp,
final int damage, final int stun, final int[]... pickpockets) {
final int damage, final int stun, final int[][] pickpockets) {
this.npcId = npcId;
this.levelReq = levelReq;
this.xp = xp;
@@ -238,13 +287,8 @@ public class Pickpocket extends SkillHandler {
c.getPacketSender().sendMessage(message2);
c.getPlayerAssistant().addSkillXP((int) n.getXp(),
c.playerThieving);
int[] random = n.getPickPockets()[Misc.random(n
.getPickPockets().length - 1)];
c.getItemAssistant().addItem(
random[0],
random[1]
+ (random.length > 2 ? Misc
.random(random[2]) : 0));
int[] random = n.getPickPockets()[Misc.random(n.getPickPockets().length - 1)];
c.getItemAssistant().addItem(random[0], random[1] + (random.length > 2 ? Misc.random(random[2]) : 0));
container.stop();
}
@Override
@@ -1,5 +1,6 @@
package com.rebotted.game.content.skills.thieving;
import com.rebotted.GameConstants;
import com.rebotted.GameEngine;
import com.rebotted.event.CycleEvent;
import com.rebotted.event.CycleEventContainer;
@@ -9,6 +10,7 @@ import com.rebotted.game.content.skills.SkillHandler;
import com.rebotted.game.items.ItemAssistant;
import com.rebotted.game.items.ItemList;
import com.rebotted.game.npcs.NpcHandler;
import com.rebotted.game.objects.Object;
import com.rebotted.game.players.Player;
import com.rebotted.util.Misc;
@@ -38,6 +40,7 @@ public class Stalls {
private int objectId, levelReq, face;
private int[][] stalls;
private double xp;
private long respawnTime;
private stallData(final int objectId, final int levelReq, final double xp, final int face, final int[]... stalls) {
this.objectId = objectId;
@@ -45,6 +48,7 @@ public class Stalls {
this.xp = xp;
this.face = face;
this.stalls = stalls;
this.respawnTime = System.currentTimeMillis();
}
public int getObject() {
@@ -98,84 +102,89 @@ public class Stalls {
}
public static void attemptStall(final Player p, final int objectId, final int x, final int y) {
// Skill is disabled on this server
if (!SkillHandler.THIEVING) {
p.getPacketSender().sendMessage("This skill is currently disabled.");
return;
}
// In combat
if(p.underAttackBy > 0 || p.underAttackBy2 > 0) {
p.getPacketSender().sendMessage("You can't steal from a stall while in combat!");
return;
}
// No inventory space
if (p.getItemAssistant().freeSlots() == 0) {
p.getPacketSender().sendMessage("Not enough space in your inventory.");
return;
}
for (final stallData s : stallData.values()) {
if (System.currentTimeMillis() - p.lastThieve < 2500 + r(2500)) {
p.getPacketSender().sendMessage("You need to wait longer before you can thieve this stall!");
return;
}
if (!SkillHandler.THIEVING) {
p.getPacketSender().sendMessage("This skill is currently disabled.");
return;
}
if(p.underAttackBy > 0 || p.underAttackBy2 > 0) {
p.getPacketSender().sendMessage("You can't steal from a stall while in combat!");
return;
}
if (p.getItemAssistant().freeSlots() == 0) {
p.getPacketSender().sendMessage("Not enough space in your inventory.");
return;
}
if(objectId == s.getObject()) {
if (p.playerLevel[p.playerThieving] >= s.getLevel()) {
if(Misc.random(4) == 1 && p.playerLevel[p.playerThieving] < 99) {
failGuards(p);
return;
}
if (p.getItemAssistant().freeSlots() == 0) {
p.getPacketSender().sendMessage("Not enough space in your inventory.");
return;
}
p.startAnimation(832);
RandomEventHandler.addRandom(p);
GameEngine.objectHandler.createAnObject(p, 634, x, y, s.getFace());
p.getPlayerAssistant().addSkillXP((int) s.getXp(), p.playerThieving);
int[] random = s.getStalls()[Misc.random(s.getStalls().length-1)];
p.lastThieve = System.currentTimeMillis();
p.getPacketSender().sendMessage("You steal a "+ItemAssistant.getItemName(random[0])+" from the stall.");
CycleEventHandler.getSingleton().addEvent(p, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
GameEngine.objectHandler.createAnObject(p, s.getObject(), x, y, s.getFace());
//new Object(s.getObject(), x, y, 0, s.getFace(), 10, j, getRespawnTime(c, s.getObject()));
container.stop();
}
@Override
public void stop() {
}
}, getRespawnTime(p, s.getObject()));
} else {
p.getDialogueHandler().sendStatement("You must have a thieving level of " + s.getLevel() + " to steal from this stall.");
// Wait for respawn
if (System.currentTimeMillis() < s.respawnTime) {
p.getPacketSender().sendMessage("You need to wait longer before you can thieve this stall!");
return;
}
// Thieving level too low
if (p.playerLevel[p.playerThieving] < s.getLevel()) {
p.getDialogueHandler().sendStatement("You must have a thieving level of " + s.getLevel() + " to steal from this stall.");
return;
}
// Failed, was caught red handed
if(Misc.random(4) == 1 && p.playerLevel[p.playerThieving] < 99) {
failGuards(p);
return;
}
p.startAnimation(832);
RandomEventHandler.addRandom(p);
int respawnTime = getRespawnTime(objectId);
GameEngine.objectHandler.createAnObject(p, 634, x, y, s.getFace());
//new Object(634, x, y, 0, s.getFace(), 10, objectId, respawnTime);
p.getPlayerAssistant().addSkillXP((int) s.getXp(), p.playerThieving);
int[] random = s.getStalls()[Misc.random(s.getStalls().length-1)];
s.respawnTime = System.currentTimeMillis() + (respawnTime * GameConstants.CYCLE_TIME);
p.getPacketSender().sendMessage("You steal a " + ItemAssistant.getItemName(random[0]) + " from the stall.");
p.getItemAssistant().addItem(random[0], random[1]);
CycleEventHandler.getSingleton().addEvent(p, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
GameEngine.objectHandler.createAnObject(p, s.getObject(), x, y, s.getFace());
//new Object(objectId, x, y, 0, s.getFace(), 10, j, getRespawnTime(objectId));
container.stop();
}
@Override
public void stop() {
}
}, respawnTime);
}
}
}
private static int getRespawnTime(Player p, int i) {
private static int getRespawnTime(int i) {
switch (i) {
case 4706:
return 3;// veg
case 2561:
return 4;// baker
case 635:
return 12;// tea
case 2560:
return 13;// silk
case 14011:
return 27;// wine
case 7053:
return 18;// seed
case 2563:
return 25;// fur
case 4705:
return 27;// fish
case 2565:
return 50;// silver
case 2564:
case 4877:
case 4878:
return 133;// spice, scimitar, magic
case 2562:
return 300;// gem
case 4706:
return 3;// veg
case 2561:
return 4;// baker
case 635:
return 12;// tea
case 2560:
return 13;// silk
case 14011:
return 27;// wine
case 7053:
return 18;// seed
case 2563:
return 25;// fur
case 4705:
return 27;// fish
case 2565:
return 50;// silver
case 2564:
case 4877:
case 4878:
return 133;// spice, scimitar, magic
case 2562:
return 300;// gem
}
return 5;
}
@@ -2489,9 +2489,6 @@ public class ItemAssistant {
c.playerItemsN[i] = 0;
}
resetItems(3214);
/*
* c.weight = 0; Weight.updateWeight(c);
*/
}
public int freeSlots() {
@@ -1876,14 +1876,13 @@ public class ObjectsActions {
break;
case 2406:
if (player.playerEquipment[player.playerWeapon] != 772) {
player.getPacketSender().sendMessage("This door is locked.");
return;
}
if (player.playerEquipment[player.playerWeapon] == 772) {
player.getPlayerAssistant().startTeleport(2452, 4470, 0,
"modern");
player.getPacketSender().sendMessage(
"You are suddenly teleported away.");
} else {
player.getPacketSender()
.sendMessage("This door is locked.");
player.getPlayerAssistant().startTeleport(2452, 4470, 0, "modern");
player.getPacketSender().sendMessage("You are suddenly teleported away.");
}
break;
@@ -2051,6 +2051,7 @@ public class PlayerAssistant {
player.getPacketSender().sendFrame126("Your " +data.get().toString()+ " level is now " + getLevelForXP(player.playerXP[skill]) + ".", data.get().getFrame3());
player.getPacketSender().sendChatInterface(data.get().getFrame1());
player.dialogueAction = 0;
player.nextChat = 0;
}
public void refreshSkill(int skill) {