Timer maken

Status
Niet open voor verdere reacties.

slabbetje

Gebruiker
Lid geworden
5 mei 2007
Berichten
290
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:

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;
			}
		}
		
	}
	
}
 
Zou je die bestanden van runescape kunnen doorsturen ^^? (ik ben vooral geïnteresseerd in de engine) Zoja, stuur dan een mailtje naar stijnsallets [at] gmail [punt] com
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan