A few changes (#362)

- Stalls now dissapear when thieving them
- Added the missing coal rock in barbarian village
- Added some height level checks for object spawns
This commit is contained in:
Mr Extremez
2020-01-13 06:53:18 -06:00
committed by Daniel Ginovker
parent 85a0406d9b
commit 60239a38cf
8 changed files with 42 additions and 30 deletions
@@ -58,7 +58,7 @@ public class Mining {
BLURITE(new int[] { 10574, 10583, 10584, 2110 }, 10, 20, 1, 42, new int[] { 668 }),
IRON(new int[] { 2093, 2092, 9717, 9718, 9719, 11962, 11956, 11954, 14856, 14857, 14858, 14914, 14913 }, 15, 35, 2, 9, new int[] { 440 }),
SILVER(new int[] { 2101, 11186, 11187, 11188, 2100 }, 20, 40, 3, 100, new int[] { 442 }),
COAL(new int[] { 2096, 2097, 11963, 11964, 14850, 14851, 14852, 11930, 11931 }, 30, 50, 4, 50, new int[] { 453 }),
COAL(new int[] { 2096, 2097, 11963, 11964, 14850, 14851, 14852, 11930, 11931, 11932 }, 30, 50, 4, 50, new int[] { 453 }),
GOLD(new int[] { 2099, 2098, 11183, 11184, 11185, 9720, 9722 }, 40, 65, 6, 100, new int[] { 444 }),
MITHRIL(new int[] { 2103, 2102, 14853, 14854, 14855 }, 55, 80, 8, 200, new int[] { 447 }),
ADAMANT(new int[] { 2104, 2105, 14862, 14863, 14864 }, 70, 95, 10, 400, new int[] { 449 }),
@@ -26,12 +26,14 @@ public class Stalls {
new int[] { i("cabbage seed"), 1 }, new int[] {i("tomato seed"), 1 }, new int[] { i("sweetcorn seed"), 1 }, new int[] { i("strawberry seed"), 1 },
new int[] {i("watermelon seed"), 1 }, new int[] {i("barley seed"), 1 }, new int[] { i("jute seed"), 1 }, new int[] { i("marigold seed"), 1 },
new int[] {i("rosemary seed"), 1 }, new int[] {i("hammerstone seed"), 1 }, new int[] {i("asgarnain seed"), 1 }, new int[] {i("yanillian seed"), 1 },
new int[] {i("krandorian seed"), 1 }, new int[] {i("wildblood seed"), 1 }), FUR_STALL(2563, 35, 36, 0, new int[] { 6814, 1 }, new int[] { 958, 1 }),
new int[] {i("krandorian seed"), 1 }, new int[] {i("wildblood seed"), 1 }),
FUR_STALL(2563, 35, 36, 0, new int[] { 6814, 1 }, new int[] { 958, 1 }),
FUR_STALL2(4278, 35, 36, 0, new int[] { 6814, 1 }, new int[] { 958, 1 }),
FISH_STALL(4705, 42, 42, 0, new int[] { 359, 1 }),
FISH_STALL2(4277, 42, 42, 0, new int[] { 359, 1 }),
SILVER_STALL(2565, 50, 54, 2, new int[] { 442, 1 }, new int[] { 2355, 1 }),
SPICE_STALL(2564, 65, 81.3, 0, new int[] { 2007, 1 }, new int[] { 946, 1 }, new int[] { 1550, 1 }), GEM_STALL(2562, 75, 160, 3,
SPICE_STALL(2564, 65, 81.3, 0, new int[] { 2007, 1 }, new int[] { 946, 1 }, new int[] { 1550, 1 }),
GEM_STALL(2562, 75, 160, 3,
new int[] { 1617, 1 }, new int[] { 1619, 1 }, new int[] { 1621, 1 }, new int[] { 1623, 1 }),
MAGIC_STALL(4877, 65, 100, 0, new int[] {i("air rune"), 1}, new int[] {i("water rune"), 1}, new int[] {i("fire rune"), 1}, new int[] {i("law rune"), 1}),
SCIMITAR_STALL(4878, 65, 100, 0, new int[] {i("iron scimitar"), 1}, new int[] {i("steel scimitar"), 1});
@@ -140,9 +142,8 @@ public class Stalls {
}
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);
int respawnTime = getRespawnTime(s.getObject());
GameEngine.objectHandler.createAnObject(p, 634, x, y, 0, getSpecialFace(p, s));
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);
@@ -152,8 +153,7 @@ public class Stalls {
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));
GameEngine.objectHandler.createAnObject(p, s.getObject(), x, y, 0, getSpecialFace(p, s));
p.setHasThievedStall(false);
container.stop();
}
@@ -164,6 +164,20 @@ public class Stalls {
}
}
}
private static int getSpecialFace(Player player, stallData s) {
int face;
if (player.objectX == 3083 && player.objectY == 3251) {
face = 3;
} else if (player.objectX == 3075 && player.objectY == 3249) {
face = 1;
} else if (player.objectX == 3079 && player.objectY == 3253) {
face = 2;
} else {
face = s.getFace();
}
return face;
}
private static int getRespawnTime(int i) {
switch (i) {
@@ -87,7 +87,7 @@ public class Desert {
}
c.startAnimation(CUTTING_ANIMATION);
c.getPacketSender().sendMessage("You slash away the cactus.");
GameEngine.objectHandler.createAnObject(c, DRY_CACTUS, obX, obY, -1);
GameEngine.objectHandler.createAnObject(c, DRY_CACTUS, obX, obY, c.heightLevel, -1);
for (int element[] : FILLS) {
if (c.getItemAssistant().playerHasItem(element[0])) {
c.getItemAssistant().deleteItem(element[0], c.getItemAssistant().getItemSlot(element[0]), 1);
@@ -118,7 +118,7 @@ public class Desert {
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
GameEngine.objectHandler.createAnObject(c, objectId, obX, obY, -1);
GameEngine.objectHandler.createAnObject(c, objectId, obX, obY, c.heightLevel, -1);
container.stop();
}
@Override
@@ -77,7 +77,7 @@ public class Flowers {
coords[0] = c.absX;
coords[1] = c.absY;
updateConstants(newFlower, c);
GameEngine.objectHandler.createAnObject(c, newFlower, coords[0], coords[1],
GameEngine.objectHandler.createAnObject(c, newFlower, coords[0], coords[1], c.heightLevel,
1);
deleteSeeds(c);
sendOptions(c);
@@ -87,7 +87,7 @@ public class Flowers {
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
GameEngine.objectHandler.createAnObject(c, -1, coords[0], coords[1], 1);
GameEngine.objectHandler.createAnObject(c, -1, coords[0], coords[1], c.heightLevel, 1);
c.getPacketSender().sendMessage( "Your flower is no longer flourishing.");
container.stop();
}
@@ -165,7 +165,7 @@ public class Flowers {
player.startAnimation(827);
// c.getPA().checkObjectSpawn(c,-1, c.getX()+1, c.getY(), 1, 10);
// c.getPA().object(c,-1, c.getX()+1, c.getY(), 1, 10);
GameEngine.objectHandler.createAnObject(player, -1, player.getX() + 1, player.getY(), 1);
GameEngine.objectHandler.createAnObject(player, -1, player.getX() + 1, player.getY(), player.getH(), 1);
player.turnPlayerTo(player.getX() + 1, player.getY());
}
@@ -70,7 +70,6 @@ public class ObjectsActions {
if (player.stopPlayerPacket) {
return;
}
//LogCutting.resetFletching(player);
if (player.getGnomeStrongHold().gnomeCourse(objectType)) {
return;
}
@@ -114,6 +113,10 @@ public class ObjectsActions {
// if its a rock we can mine, mine it
if (Mining.rockExists(objectType))
player.getMining().startMining(player, objectType, player.objectX, player.objectY, player.clickObjectType);
if (Stalls.isObject(objectType)) {
Stalls.attemptStall(player, objectType, objectX, objectY);
return;
}
switch (objectType) {
case 6:
player.getCannon().clickCannon(objectX, objectY);
@@ -2091,7 +2094,7 @@ public class ObjectsActions {
case 2403:// should be 2418 but not working
if (player.shieldArrav >= 6 && player.getItemAssistant().playerHasItem(759)) {
GameEngine.objectHandler.createAnObject(player, 2604, objectX, objectY, 0);
GameEngine.objectHandler.createAnObject(player, 2604, objectX, objectY, player.heightLevel, 0);
Region.addObject(2604, objectX, objectY, 0, 0, 0, false);
}
else {
@@ -2115,7 +2118,7 @@ public class ObjectsActions {
player.getPacketSender().object(3194, 3381, 3269, 0, 2, 10);
Region.addObject(3194, 3381, 3269, 0, 10, 2, false);
} else {
GameEngine.objectHandler.createAnObject(player, 3194, objectX, objectY, -1);
GameEngine.objectHandler.createAnObject(player, 3194, objectX, objectY, player.heightLevel, -1);
}
break;
@@ -2555,6 +2558,10 @@ public class ObjectsActions {
if (!Region.objectExists(objectType, obX, obY, player.heightLevel)) {
return;
}
if (Stalls.isObject(objectType)) {
Stalls.attemptStall(player, objectType, obX, obY);
return;
}
switch (objectType) {
case 6:
player.getCannon().loadCannon(obX, obY);
@@ -54,9 +54,9 @@ public class SpecialObjects {
public static void openShantayChest(Player player, int objectId, int obX,
int obY, String type) {
if (type == "open") {
GameEngine.objectHandler.createAnObject(player, 104, obX, obY, -1);
GameEngine.objectHandler.createAnObject(player, 104, obX, obY, player.heightLevel, -1);
} else if (type == "shut") {
GameEngine.objectHandler.createAnObject(player, 2693, obX, obY, -1);
GameEngine.objectHandler.createAnObject(player, 2693, obX, obY, player.heightLevel, -1);
}
}
@@ -66,7 +66,7 @@ public class SpecialObjects {
player.nextChat = 0;
return;
}
GameEngine.objectHandler.createAnObject(player, -1, player.objectX, player.objectY, -1);
GameEngine.objectHandler.createAnObject(player, -1, player.objectX, player.objectY, player.heightLevel, -1);
final int[] coords = new int[2];
openKharid(player, objectId);
if (player.absX == 3267) {
@@ -126,11 +126,6 @@ public class ClickObject implements PacketType {
//todo: check if it's a door before fire handle
Doors.getSingleton().handleDoor(p, p.objectId, p.objectX, p.objectY, p.heightLevel);
if (Stalls.isObject(p.objectId)) {
Stalls.attemptStall(p, p.objectId, p.objectX, p.objectX);
return;
}
if (p.teleTimer > 0) {
p.getPacketSender().sendMessage("You cannot use objects while teleporting.");
return;
@@ -394,10 +389,6 @@ public class ClickObject implements PacketType {
if (p.playerRights == 3) {
p.getPacketSender().sendMessage("ObjectId: " + p.objectId + " ObjectX: " + p.objectX + " ObjectY: " + p.objectY + " Objectclick = 2, Xoff: " + (p.getX() - p.objectX) + " Yoff: " + (p.getY() - p.objectY));
}
if (Stalls.isObject(p.objectId)) {
Stalls.attemptStall(p, p.objectId, p.objectX, p.objectX);
return;
}
p.getObjects().secondClickObject(p.objectId, p.objectX, p.objectY);
break;
@@ -63,8 +63,8 @@ public class ObjectHandler {
GameEngine.objectHandler.placeObject(OBJECT);
}
public void createAnObject(Player player, int id, int x, int y, int face) {
Objects OBJECT = new Objects(id, x, y, 0, face, 10, 0);
public void createAnObject(Player player, int id, int x, int y, int h, int face) {
Objects OBJECT = new Objects(id, x, y, h, face, 10, 0);
if (id == -1) {
removeObject(OBJECT);
} else {