Siga-nos em...
Follow us on Twitter Follow us on Facebook Watch us on YouTube
Registro

Alpha Servers
Resultados 1 a 1 de 1
  1. #1

    Avatar de Getulio
    Data de Ingresso
    Mar 2010
    Localização
    char
    Idade
    31
    Posts
    95
    Agradecido
    289
    Agradeceu
    92
    Peso da Avaliação
    0

    Padrão PvP e Level UP por Mapa

    Map.h:
    Código:
    #pragma once
    
    namespace Network
    {
    	struct PMSG_ATTACK
    	{
    		PBMSG_HEAD h;
    		BYTE NumberH;
    		BYTE NumberL;
    		BYTE AttackAction;
    		BYTE DirDis;
    	};
    
    	struct AttackStruct
    	{
    		unsigned char Map;
    	};
    
    	struct LevelUpStruct
    	{
    		unsigned char Map;
    	};
    
    	struct MapStruct
    	{
    		AttackStruct Attack;
    		LevelUpStruct LevelUp;
    	};
    
    	class Map
    	{
    	public:
    		static bool Init();
    		static void Attack(PMSG_ATTACK* lpMsg, DWORD dwIndex);
    		static bool LevelUp(OBJECTSTRUCT* lpObject, int AddExp, int MonsterType, int EventType);
    		static int MonsterExp(OBJECTSTRUCT* lpObject, OBJECTSTRUCT* lpTarget, int Damage, int TotalDamage, bool& SendExp);
    
    	public:
    		static MapStruct Struct[17];
    	};
    }
    Map.cpp:
    Código:
    #include "Map.h"
    
    namespace Network
    {
    	MapStruct Map::Struct[17];
    
    	bool Map::Init()
    	{
    		Tokenizer _map(".\\Network\\Map.ut");
    
    		if(_map.Loaded)
    		{
    			if(!_map.SectionExists(0) || !_map.SectionExists(1))
    			{
    				return false;
    			}
    			else
    			{
    				for(BYTE i = 0; i < 17; i++)
    				{
    					if(i > 10)
    					{
    						Struct[i].Attack.Map = (BYTE)_map[0][0][11].ToInteger();
    						Struct[i].LevelUp.Map = (BYTE)_map[1][0][11].ToInteger();
    					}
    					else
    					{
    						Struct[i].Attack.Map = (BYTE)_map[0][0][i].ToInteger();
    						Struct[i].LevelUp.Map = (BYTE)_map[1][0][i].ToInteger();
    					}
    				}
    
    				return true;
    			}
    		}
    
    		return false;
    	}
    
    	void Map::Attack(PMSG_ATTACK* lpMsg, DWORD dwIndex)
    	{
    		BYTE szMap = (BYTE)Object[dwIndex].Map;
    		
    		if(Struct[szMap].Attack.Map == 0)
    		{
    			return;
    		}
    		
    		ServerObjAttack(lpMsg, dwIndex);
    	}
    
    	bool Map::LevelUp(OBJECTSTRUCT* lpObject, int AddExp, int MonsterType, int EventType)
    	{
    		BYTE szMap = (BYTE)lpObject->Map;
    		
    		if(Struct[szMap].LevelUp.Map == 0)
    		{
    			return false;
    		}
    
    		return ServerLevelUp(lpObject, AddExp, MonsterType, EventType);
    	}
    
    	int Map::MonsterExp(OBJECTSTRUCT* lpObject, OBJECTSTRUCT* lpTarget, int Damage, int TotalDamage, bool& SendExp)
    	{
    		BYTE szMap = (BYTE)lpObject->Map;
    		
    		if(Struct[szMap].LevelUp.Map == 0)
    		{
    			return 0;
    		}
    
    		return ServerMonsterExp(lpObject, lpTarget, Damage, TotalDamage, SendExp);
    	}
    }
    Hook:
    Código:
    Hook((DWORD)&Network::Map::Attack, 0x4014E2);
    Hook((DWORD)&Network::Map::LevelUp, 0x401771);
    Hook((DWORD)&Network::Map::MonsterExp, 0x402022);
    Defines:
    Código:
    #define ServerObjAttack			((void(*)(Network::PMSG_ATTACK*, DWORD)) 0x4254D0)
    #define ServerLevelUp			((bool(*)(Network::OBJECTSTRUCT*, int, int, int)) 0x462A20)
    #define ServerMonsterExp		((int(*)(Network::OBJECTSTRUCT*, Network::OBJECTSTRUCT*, int, int, bool&)) 0x467970)
    Feito para 97d.


    Créditos:
    Network.
    Última edição por Getulio; 03-04-2012 às 08:55 PM.

 

 

Informações de Tópico

Usuários Navegando neste Tópico

Há 1 usuários navegando neste tópico. (0 registrados e 1 visitantes)

Tópicos Similares

  1. |Pedido| Mapa PVP
    Por lordlinx no fórum Pedidos
    Respostas: 0
    Último Post: 22-10-2013, 03:57 PM
  2. |Dúvida| Ranking de master level e level normal juntos
    Por Gaming no fórum Dúvidas
    Respostas: 3
    Último Post: 10-05-2012, 11:55 AM
  3. |Pedido| Ranking de Level e Master Level
    Por tiagobskt no fórum Dúvidas|Pedidos
    Respostas: 0
    Último Post: 02-11-2011, 08:56 PM
  4. Respostas: 2
    Último Post: 06-07-2010, 07:07 PM

Marcadores

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •