Thread: [Emulous] Vengeance

Results 1 to 8 of 8
  1. #1 [Emulous] Vengeance 
    Runeblade912
    Guest
    I'm usingthis Vengance tutorial and trying to make it work on Emulous. I'm also getting errors with an if() { line of code. Its confusing me.

    Code that I've already converted and works:
    Code:
    	public boolean Vengeance = false;
    	public boolean CanVen = false;
    	public int vengtimer = 0;
    	public int VengeanceTimer = 0;
    	public int VenTimer = 0;
    
    	public void CastVengeance() {
    		if (playerLevel[6] < 94)
    		{
    			sendMessage("You need a magic level of 94 or higher to cast this spell.");
    		}
    			else if (Vengeance == true) {
    			sendMessage("You already have Vengeance casted.");
    		}
    			else if (vengtimer > 0) {
    			sendMessage("You need to wait "+vengtimer/2+" seconds to cast Vengeance again.");
    		}
    			else if (!getItems().playerHasItem(560, 2) || !getItems().playerHasItem(557, 10) || !getItems().playerHasItem(553, 4)) {
    			sendMessage("You do not have have enough runes to cast this spell.");
    		}
    			else if (getItems().playerHasItem(560, 2) || getItems().playerHasItem(557, 10) || getItems().playerHasItem(553, 4) && playerLevel[6] > 93 || vengtimer == 0) { 
    			updateRequired = true; 
    			appearanceUpdateRequired = true; 
    			vengtimer = 60;
    			VengeanceTimer = 240;
    			Vengeance = true;
    			getItems().deleteItem(560, getItems().getItemSlot(560), 2);
    			getItems().deleteItem(557, getItems().getItemSlot(557), 10);
    			getItems().deleteItem(553, getItems().getItemSlot(553), 4);  
    			startAnimation(609);
    			gfx100(607);
    			getPA().addSkillXP(playerLevel[6] * Config.MAGIC_EXP_RATE, 15);
    			getPA().removeAllWindows();
    		} 
    	}
    in process()
    Code:
    if (VenTimer == 0) {
    		CanVen = true;
    		} else if (VenTimer > 0) {
    		VenTimer--;
    		}
    in ClickingButtons.java
    Code:
    /*Veng Spell on Lunar Interface*/
    			case 73168:
    			c.CastVengeance();
    			break;
    Code I'm having trouble with in client class.
    Code:
    	Client AO2 = (Client) Server.playerHandler.players[playerId];
    	Client p = (Client) Server.playerHandler.players[playerId];
    	if(hitDiff > 0 && Vengeance == true) {
    	p.hitDiff = (int)(hitDiff / 1.2);
    	p.playerLevel[3] -= (int)(hitDiff / 1.2);
    	p.hitUpdateRequired = true;
    	p.updateRequired = true;
    	p.appearanceUpdateRequired = true;
    	Vengeance = false;
    	forcedChat("Taste Vengance!");
    	//AO2.string4UpdateRequired = true; // Donno what this does?
    	}
    Errors:
    Code:
    .\server\model\players\Client.java:115: illegal start of type
            if(hitDiff > 0 && Vengeance == true) {
            ^
    .\server\model\players\Client.java:115: <identifier> expected
            if(hitDiff > 0 && Vengeance == true) {
                      ^
    .\server\model\players\Client.java:115: ';' expected
            if(hitDiff > 0 && Vengeance == true) {
                        ^
    .\server\model\players\Client.java:115: illegal start of type
            if(hitDiff > 0 && Vengeance == true) {
                           ^
    .\server\model\players\Client.java:115: ';' expected
            if(hitDiff > 0 && Vengeance == true) {
                                       ^
    .\server\model\players\Client.java:115: cannot find symbol
    symbol  : class hitDiff
    location: class server.model.players.Client
            if(hitDiff > 0 && Vengeance == true) {
               ^
    6 errors
    Press any key to continue . . .
    Reply With Quote  
     

  2. #2  
    Runeblade912
    Guest
    Done a lot to it, now I need to figure out the variable for the damage delt, any ideas for Emulous?

    In CombatAssistant.java under the attackPlayer method:
    Code:
    				if(hitDiff >= 1 && c.Veng == true) {
    					//damage = (int)(damage / 1.2);
    					//c.playerLevel[3] -= (int)(damage / 1.2);
    					c.vengHit = (int) (hitDiff * 0.75);
    					applyPlayerMeleeDamage(c.vengHit, 1);
    					c.hitUpdateRequired = true;
    					c.updateRequired = true;
    					c.appearanceUpdateRequired = true;
    					c.Veng = false;
    					c.forcedChat("Taste Vengance!");
    				}
    Errors:
    Code:
    .\server\model\players\CombatAssistant.java:649: cannot find symbol
    symbol  : variable hitDiff
    location: class server.model.players.CombatAssistant
                                    if(hitDiff >= 1 && c.Veng == true) {
                                       ^
    .\server\model\players\CombatAssistant.java:652: cannot find symbol
    symbol  : variable hitDiff
    location: class server.model.players.CombatAssistant
                                            c.vengHit = (int) (hitDiff * 0.75);
                                                               ^
    2 errors
    Press any key to continue . . .

    Edit:

    New stuff in Client.java:
    Ints:
    Code:
    	public boolean Veng = false;
    	public boolean CanVen = false;
    	public int vengtimer = 0;
    	public int VengeanceTimer = 0;
    	public int VenTimer = 0;
    	public int vengHit = 0;
    CastVengeance Method:
    Code:
    	public void CastVengeance() {
    		if (playerLevel[6] < 94)
    		{
    			sendMessage("You need a magic level of 94 or higher to cast this spell.");
    		}
    			else if (Veng == true) {
    			sendMessage("You already have Vengeance casted.");
    		}
    			else if (vengtimer > 0) {
    			sendMessage("You need to wait "+vengtimer/2+" seconds to cast Vengeance again.");
    		}
    			else if (!getItems().playerHasItem(560, 2) || !getItems().playerHasItem(557, 10) || !getItems().playerHasItem(553, 4)) {
    			sendMessage("You do not have have enough runes to cast this spell.");
    		}
    			else if (getItems().playerHasItem(560, 2) || getItems().playerHasItem(557, 10) || getItems().playerHasItem(553, 4) && playerLevel[6] > 93 || vengtimer == 0) { 
    			updateRequired = true; 
    			appearanceUpdateRequired = true; 
    			vengtimer = 60;
    			VengeanceTimer = 240;
    			Veng = true;
    			getItems().deleteItem(560, getItems().getItemSlot(560), 2);
    			getItems().deleteItem(557, getItems().getItemSlot(557), 10);
    			getItems().deleteItem(553, getItems().getItemSlot(553), 4);  
    			startAnimation(609);
    			gfx100(607);
    			getPA().addSkillXP(playerLevel[6] * Config.MAGIC_EXP_RATE, 15);
    			getPA().removeAllWindows();
    		} 
    	}
    Reply With Quote  
     

  3. #3  
    Runeblade912
    Guest
    bump
    Reply With Quote  
     

  4. #4  
    Registered Member TopeltBoost's Avatar
    Join Date
    Feb 2009
    Age
    28
    Posts
    108
    Thanks given
    3
    Thanks received
    2
    Rep Power
    11
    Change
    Code:
    hitDiff
    to
    Code:
    c.hitDiff
    Btw, can you please give me your applyPlayerMeleeDamage method?

    Thanks,
    TopeltBoost
    Reply With Quote  
     

  5. #5  
    Runeblade912
    Guest
    Thanks, no more errors.

    Heres the method.

    Code:
    	public void applyPlayerMeleeDamage(int i, int damageMask){
    		Client o = (Client) Server.playerHandler.players[i];
    		if(o == null) {
    			return;
    		}
    		int damage = Misc.random(calculateMeleeMaxHit());			
    		if(Misc.random(10+o.getCombat().calculateMeleeDefence()) > Misc.random(10+calculateMeleeAttack())) {
    			damage = 0;
    		}	
    		if(o.prayerActive[14]) { // if prayer active reduce damage by half 
    			damage = damage / 2;
    		}	
    		if (Server.playerHandler.players[i].playerLevel[3] - damage < 0) { 
    			damage = Server.playerHandler.players[i].playerLevel[3];
    		}
    
    		switch(c.specEffect) {
    			case 1: // dragon scimmy special
    			if(damage > 0) {
    				if(o.prayerActive[12] || o.prayerActive[13] || o.prayerActive[14]) {
    					o.headIcon = 0;
    					o.getPA().sendFrame36(c.PRAYER_GLOW[12], 0);
    					o.getPA().sendFrame36(c.PRAYER_GLOW[13], 0);
    					o.getPA().sendFrame36(c.PRAYER_GLOW[14], 0);					
    				}
    				o.sendMessage("You have been injured!");
    				o.stopPrayerDelay = System.currentTimeMillis();
    				o.prayerActive[12] = false;
    				o.prayerActive[13] = false;
    				o.prayerActive[14] = false;
    				o.getPA().requestUpdates();
    			
    			}
    			break;
    		}
    		c.specEffect = 0;
    		if(c.fightMode == 3) {
    			c.getPA().addSkillXP((damage*Config.MELEE_EXP_RATE/3), 0); 
    			c.getPA().addSkillXP((damage*Config.MELEE_EXP_RATE/3), 1);
    			c.getPA().addSkillXP((damage*Config.MELEE_EXP_RATE/3), 2); 				
    			c.getPA().addSkillXP((damage*Config.MELEE_EXP_RATE/3), 3);
    			c.getPA().refreshSkill(0);
    			c.getPA().refreshSkill(1);
    			c.getPA().refreshSkill(2);
    			c.getPA().refreshSkill(3);
    		} else {
    			c.getPA().addSkillXP((damage*Config.MELEE_EXP_RATE), c.fightMode); 
    			c.getPA().addSkillXP((damage*Config.MELEE_EXP_RATE/4), 3);
    			c.getPA().refreshSkill(c.fightMode);
    			c.getPA().refreshSkill(3);
    		}
    		Server.playerHandler.players[i].logoutDelay = System.currentTimeMillis();
    		Server.playerHandler.players[i].underAttackBy = c.playerId;
    		Server.playerHandler.players[i].killerId = c.playerId;	
    		Server.playerHandler.players[i].singleCombatDelay = System.currentTimeMillis();
    		c.killedBy = Server.playerHandler.players[i].playerId;
    		
    		switch(damageMask) {
    			case 1:
    			Server.playerHandler.players[i].hitDiff = damage;
    			Server.playerHandler.players[i].playerLevel[3] -= damage;
    			c.totalPlayerDamageDealt += damage;
    			Server.playerHandler.players[i].hitUpdateRequired = true;	
    			Server.playerHandler.players[i].updateRequired = true;
    			o.getPA().refreshSkill(3);
    			break;
    		
    			case 2:
    			Server.playerHandler.players[i].hitDiff2 = damage;
    			Server.playerHandler.players[i].playerLevel[3] -= damage;
    			c.totalPlayerDamageDealt += damage;
    			Server.playerHandler.players[i].hitUpdateRequired2 = true;	
    			Server.playerHandler.players[i].updateRequired = true;	
    			c.doubleHit = false;
    			o.getPA().refreshSkill(3);
    			break;
    			
    		}		
    	}
    Reply With Quote  
     

  6. #6  
    Runeblade912
    Guest
    Where do I throw this piece of code in CombatAssistant.java?

    Code:
    				int damage = Misc.random(calculateMeleeMaxHit());
    				if(c.hitDiff >= 1 && c.Veng == true) {
    					c.vengHit = (int) (c.hitDiff * 0.75);
    					applyPlayerMeleeDamage(c.vengHit, 1);
    					c.hitUpdateRequired = true;
    					c.updateRequired = true;
    					c.appearanceUpdateRequired = true;
    					c.Veng = false;
    					c.forcedChat("Taste Vengance!");
    				}
    Reply With Quote  
     

  7. #7  
    Registered Member TopeltBoost's Avatar
    Join Date
    Feb 2009
    Age
    28
    Posts
    108
    Thanks given
    3
    Thanks received
    2
    Rep Power
    11
    Quote Originally Posted by Runeblade912 View Post
    In CombatAssistant.java under the attackPlayer method:

    Maybe there?
    Reply With Quote  
     

  8. #8  
    Runeblade912
    Guest
    Quote Originally Posted by TopeltBoost View Post
    Maybe there?
    When I get hit, it does nothing. Nothing, no hitback, no forcedChat.
    Reply With Quote  
     


Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •