All pastes #551374 Raw Edit

Untitled

public text v1 · immutable
·published 2007-06-08 19:39 UTC
rendered paste body
[b]Purpose :[/b] Making a working Hunting Skill!

[b]Difficulty :[/b] 5

[b]Assumed Knowledge :[/b] Copy & Paste and search.

[b]Server Base :[/b] Pimpscape (Should work for others also, havn't tried)

[b]Classes Modified : [/b] Client.java


[b]Procedure[/b]

[b]Step one:[/b]

Add these voids:
[code]public void squash(int emote, int gfx)
{
	setAnimation(emote);
	stillgfx(gfx, absY, absX);
}

    public void flee(int NPCID) {
        int follow = npcHandler.npcs[NPCID].followPlayer;
	int playerX = server.playerHandler.players[follow].absX;
	int playerY = server.playerHandler.players[follow].absY;
        npcHandler.npcs[NPCID].RandomWalk = false;
    if(server.playerHandler.players[follow] != null)
     {
      if(playerY > npcHandler.npcs[NPCID].absY) {
      npcHandler.npcs[NPCID].moveX = npcHandler.GetMove(npcHandler.npcs[NPCID].absX, playerX);
      npcHandler.npcs[NPCID].moveY = npcHandler.GetMove(npcs[NPCID].absY, playerY+1);
      }
      else if(playerY < npcHandler.npcs[NPCID].absY) {
      npcHandler.npcs[NPCID].moveX = npcHandler.GetMove(npcHandler.npcs[NPCID].absX, playerX);
      npcHandler.npcs[NPCID].moveY = npcHandler.GetMove(npcHandler.npcs[NPCID].absY, playerY-1);
      }
      else if(playerX > npcHandler.npcs[NPCID].absX) {
      npcHandler.npcs[NPCID].moveX = npcHandler.GetMove(npcHandler.npcs[NPCID].absX, playerX+1);
      npcHandler.npcs[NPCID].moveY = npcHandler.GetMove(npcHandler.npcs[NPCID].absY, playerY);
      }
      else if(playerX < npcHandler.npcs[NPCID].absX) {
      npcHandler.npcs[NPCID].moveX = npcHandler.GetMove(npcHandler.npcs[NPCID].absX, playerX-1);
      npcHandler.npcs[NPCID].moveY = npcHandler.GetMove(npcHandler.npcs[NPCID].absY, playerY);
      }
      npcHandler.npcs[NPCID].getNextNPCMovement();                                              
      npcHandler.npcs[NPCID].updateRequired = true;
     }
    }

public void hunt(int lvlreq, int npctype, int expgain, int itemgain, int amount, int requiredweapon, int hit)
{
	int chance = 135 - misc.random(playerLevel[30];
	if(requiredweapon != -1)
	{
		if(playerEquipment[playerWeapon] == requiredweapon && playerLevel[30] == lvlreq)
		{
			if(absX == npcHandler.npcs[npctype].absX && absY == npcHandler.npcs[npctype].absY)
			{
				if(chance == 0)
				{
					addItem(itemgain, amount);
					addXP(30, expgain);
					squash(406, 341);
					npcHandler.npcs[npctype].IsDead = true;
					sendMessage("You kill the " + GetNpcName(npctype) + ", and manage to rip " + GetItemName(requiredweapon) + " off of it!";
				else
				{
					playerLevel[3] -= hit;
					updateRequired = true;
					sendMessage("You fail to capture and kill the " + GetNpcName(npctype) + ", next time try harder!";
				}
			}
		}
		else
		{
			sendMessage("You aren't wearing a " + GetItemName(requiredweapon) + " please go equip one!";
		}
	}
	else
	{
		if(absX == npcHandler.npcs[npctype].absX && absY == npcHandler.npcs[npctype].absY)
		{
			if(chance == 0)
			{
				addItem(itemgain, amount);
				addXP(30, expgain);
				squash(406, 341);
				npcHandler.npcs[npctype].IsDead = true;
			else	
			{
                        	currentHealth -= hit;
				updateRequired = true;
				hitUpdateRequired = true;
				sendMessage("You fail to capture and kill the " + GetNpcName(npctype) + ", next time try harder!";
			}
		}
	}
	if(npcHandler.npcs[npctype].absX >= absX - 10 && npcHandler.npcs[npctype].absX <= absX + 10 && npcHandler.npcs[npctype].absY >= absY - 10 && npcHandler.npcs[npctype].absY <= absY + 10)
	{
		flee(npctype);
	}
} 

public void hunting()
{
hunt(0, 1192, 30, 1037, 1, -1, 2); //rabbits
}[/code]

[b]Step two:[/b]

Find [code]public boolean process[/code] and add this right below it [code]hunting();[/code]	

[b]Step three:[/b]

Search for [code]public void saveStats()[/code] and add this [code]int hunting = playerLevel[30];
int Hunting = playerXP[30];[/code] under [code]int Farmingxp = playerXP[19];[/code]


Now search for this [code]int pIndex2 = inStream.readUnsignedWordBigEndian();
client p2 = (client) server.playerHandler.players[pIndex2];[/code] and below [code]int Farminglvl = p2.playerLevel[19];[/code]
add this [code]int huntinglvl = p2.playerLevel[30];[/code]

Now search for this [code]public boolean addSkillXP(int amount, int skill){[/code] and add this [code]	  int hunting = getLevelForXP(playerXP[30]);[/code]
under [code]int Runecrafting = getLevelForXP(playerXP[20]); [/code]

Search for this [code]if (Attack < getLevelForXP(playerXP[0])) {[/code] and then add this	[code]	if (hunting < getLevelForXP(playerXP[24])) {
			playerLevel[24] = getLevelForXP(playerXP[24]);
			levelup(24);
			stillgfx(199, absX, absY);
			updateRequired = true;
			appearanceUpdateRequired = true;
		}[/code] above [code]if (Defence < getLevelForXP(playerXP[1])) {[/code]

[b]Step four:[/b]

Search for [code]case 20: //Runecrafting[/code] and right after the [code]break;[/code] add this [code]		case 30: //Rarecrafting (Made 100% by Mod Taharok and it is a test skill)
			sendFrame164(4882);
			stillgfx(199, absX, absY);
			sendFrame126("Congratulations, you just advanced a Hunting level!", 4884);
			sendFrame126("Your Hunting level is now "+playerLevel[24]+" .", 4885);
			sendMessage("Congratulations, you just advanced a Hunting level.");
			NpcDialogueSend = true;
			break;[/code]

[b]Step five:[/b]

Search for [code]public class client extends Player implements Runnable[/code] and add these under it [code]public String npcHandler;
public String npcHandler.npcs;[/code]


[b]Credits:[/b] 5% Mod Taharok for his tutorial on how to make a new skill, 5% billysmither for the first tutorial on how to make hunting (This isn't a spin off from his, this is totally different) and 90% me (Eh Pretty Easy). :)