Heey iedereen, ik ben bezig met een scriptje voor een runescape server voor een vriend van me dit gaat allemaal prima alleen nu moet ik een manier vinden om een aantal dingen op te slaan.
dit is een timer met minimaal het X en het Y coordinaat en mogenlijk ook het object id
helaas is mijn java niet helemaal geweldig en ik zou dus echt niet weten hoe ik voor elk object+X+Y een apparte timer maak wanneer de timer is uitgevoerd.
p.s. heb je nog een opmerking hoe ik dit beter kan scripten hoor ik het ook graag want ik wil java goed aanleren :thumb:
dit is een timer met minimaal het X en het Y coordinaat en mogenlijk ook het object id
helaas is mijn java niet helemaal geweldig en ik zou dus echt niet weten hoe ik voor elk object+X+Y een apparte timer maak wanneer de timer is uitgevoerd.
p.s. heb je nog een opmerking hoe ik dit beter kan scripten hoor ik het ook graag want ik wil java goed aanleren :thumb:
Code:
package rs2.skills;
import java.io.BufferedWriter;
import java.io.FileWriter;
import rs2.Server;
import rs2.Engine;
import rs2.players.Player;
import rs2.players.items.*;
import rs2.util.Misc;
import rs2.io.Frames;
import java.util.ArrayList;
public class mining
{
public Player p;
public int anim;
public int oreTimer = -1;
private ArrayList s = new ArrayList(1200);
public int speed;
public int speed2;
public int time;
public int rockTimer = 12;
public int object_id;
public int miningPickaxe;
public int miningLevel;
public int rockId;
public int rockType = 11963;
public int rockDefault = 11965;
public int rockY;
public int rockX;
public int oreLevel = 0;
public int oreTime = 0;
public int oreGet = 1480;
public int oreXP = 0;
public mining(Player p2)
{
p = p2;
}
//MINING MAIN
public void startCutting(int object_id)
{
//propeties
miningPickaxe = hasPickaxe();
miningLevel = getPickaxeLevel(hasPickaxe());
rockId = createOreID(object_id);
getOreTypes(object_id);
getOreOptions(object_id);
rockX = p.clickX;
rockY = p.clickY;
//end propeties
if (p.doActions == false)
{
return;
}
if (miningPickaxe == -1) {
p.frames.sendMessage(p,"You need a Pickaxe to mine this rock.");
return;
}
if ((miningLevel < p.skillLvl[14]) == false)
{
p.frames.sendMessage(p,"You dont have the right mining level");
return;
}
if (oreLevel > p.skillLvl[14]) {
p.frames.setString(p, "You cant cut that ore", 740, 0);
p.frames.setString(p, "Level needed: " + oreLevel +"", 740, 1);
return;
}
else{}
p.frames.sendMessage(p, "You swing your pickaxe at the rock.");
createAnimAndSpeed(rockId, miningPickaxe, p.skillLvl[14]);
p.requestAnim(anim, 0);
p.isMining = true;
}
//PICKAXE OPTIONS
public int hasPickaxe()
{
if (hasItem(1265)) return 1265;
if (hasItem(1267)) return 1267;
if (hasItem(1269)) return 1269;
if (hasItem(1271)) return 1271;
if (hasItem(1273)) return 1273;
if (hasItem(1275)) return 1275;
if (p.equipment[3] == 1265) return 1265;
if (p.equipment[3] == 1267) return 1267;
if (p.equipment[3] == 1269) return 1269;
if (p.equipment[3] == 1271) return 1271;
if (p.equipment[3] == 1273) return 1273;
if (p.equipment[3] == 1275) return 1275;
return -1;
}
public int getPickaxeLevel (int pickaxe_id)
{
switch (pickaxe_id) {
case 1265://Bronze Pickaxe
return 0;
case 1267://Iron Pickaxe
return 0;
case 1269://Steel Pickaxe
return 5;
case 1271://Mithril Pickaxe
return 21;
case 1273://Adamant Pickaxe
return 31;
case 1275://Rune Pickaxe
return 41;
}
return -1;
}
//ORE OPTIONS
public int createOreID (int rock_id)
{
switch (rock_id) {
case 11955:/* Iron */
case 11956:
case 11954:
return 3;
}
return -1;
}
public int getOreOptions (int rock_id)
{
switch (rock_id) {
case 11955: /* Iron */
case 11956:
case 11954:
oreLevel = 15;
oreTime = 15;
oreGet = 440;
break;
}
return -1;
}
public int getOreTypes (int rock_id)
{
switch (rock_id) {
case 11955: /* Iron */
rockType = 11964;
rockDefault = 11955;
break;
case 11956:
rockType = 11965;
rockDefault = 11956;
break;
case 11954:
rockType = 11963;
rockDefault = 11954;
break;
}
return -1;
}
public void addOre() {
if (s == null || p == null) {
return;
}
p.frames.sendMessage(p, "You get some ore.");
p.frames.createGlobalObject(rockType , 0, rockX, rockY, 0, 10);
giveItem(oreGet);
p.requestAnim(-1, 0);
s.add(p.storageSlot, p.clickX);
s.add(p.storageSlot + 1, p.clickY);
s.add(p.storageSlot + 2, rockTimer);
s.add(p.storageSlot + 3, rockDefault);
p.storageSlot = s.size() + 1;
p.doActions = false;
p.actionTimer = 2;
resetMining();
}
//OTHER MINING OPTIONS
public boolean hasItem(int id)
{
PlayerItems pi = new PlayerItems();
return pi.invItemCount(p, id) > 0;
}
public void giveItem(int id)
{
PlayerItems pi = new PlayerItems();
pi.addItem(p, id,1);
pi = null;
}
public void resetMining() {
oreTimer = -1;
p.isMining = false;
}
public int createAnimAndSpeed(int ore ,int axe_id, int level) {
switch (axe_id) {
case 1265://Bronze Axe
anim = 625;
speed = 1;
speed2 = 8;
break;
case 1267://Iron Axe
anim = 626;
speed = 2;
speed2 = 9;
break;
case 1269://Steel Axe
anim = 627;
speed = 5;
speed2 = 10;
break;
case 1271://Mithril Axe
anim = 629;
speed = 15;
speed2 = 15;
break;
case 1273://Adamant Axe
anim = 628;
speed = 20;
speed2 = 20;
break;
case 1275://Rune Axe
anim = 624;
speed = 30;
speed2 = 30;
break;
}
oreTimer = 60 / speed2;
speed = (speed - (speed * 2)) / 10;
time = ( ( level / oreLevel )) - speed;
if (time < 0) {
time = 1;
}
if (time == 1) {
anim++;
}
return-1;
}
public void process()
{
if (p.isMining == true) {
if (oreTimer > 0) {
oreTimer--;
}
if (oreTimer == 0) {
addOre();
}
else {}
}
if (p.doActions == false ) {
if (p.actionTimer > 0) {
p.actionTimer--;
}
if (p.actionTimer == 0) {
p.actionTimer = -1;
p.doActions = true;
}
}
}
}