Sistema para controlar o dano dos skills pelo navicat sem precisar reiniciar o server

Ir em baixo

Sistema para controlar o dano dos skills pelo navicat sem precisar reiniciar o server

Mensagem por FelipeXP em Sex Jul 06, 2018 5:08 pm

Passo 1: Criar uma class
Primeiro você precisa criar uma class, em qualquer lugar do projeto, dando-lhe o nome de SkillsAttack, e adequando o código à namespace da sua source.
OBS: Como o código da nossa class é muito extenso, preferi coloca-lo em um rar que está disponível no final do nosso tutorial.
Passo 2: Program.cs
Essa parte é bem simples. Você só precisa fazer com que a source, ao ligar, reconheça a nossa class SkillsAttack:

O código que possibilita a source fazer isso é o seguinte, e deve ser adicionado na program.cs:
Código:
MOSTAFA.SkillsAttack.Load();

Vale ressaltar que esse código deve ficar na região certa, junto aos códigos que possuem a mesma função- Fazer com que a source carregue e leia as classes-. Caso você esteja perdido, aperte ctrl+f e pesquise por GuildTable.Load(); e adicione nosso código na linha seguinte.
Passo 3: Adicionar comando para atualizar o game


Nessa etapa, precisamos integrar um comando no console, que faça com que o jogo reconheça mudanças feitas na tabela do navicat, caso você as faça.
Para isso, usando ctrl+f, pesquise por "public static void CommandsAI(string command)", vá para o final do bloco ({}) e adicione nosso novo código:
                
Código:
case "@skillsattack":
                                {
                                    //Mostafa Mohamed
                                    //www.Facebook.Com/Dayalamar
                                    SkillsAttack.Load();
                                    break;
                                }  


Passo 4: Criando a tabela no navicat


Vá até a database do navicat, abra o console, e adicione:

Código:
-- ----------------------------
-- Table structure for skillsattack
-- ----------------------------
DROP TABLE IF EXISTS `skillsattack`;
CREATE TABLE `skillsattack` (
  `SkillName` char(255) NOT NULL DEFAULT '0',
  `Players` double(255,2) DEFAULT '1.00',
  `Monsters` double(255,2) DEFAULT '1.00',
  `Poles` double(255,2) DEFAULT '1.00',
  PRIMARY KEY (`SkillName`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of skillsattack
-- ----------------------------
INSERT INTO `skillsattack` VALUES ('TwilightDance', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('SuperTwofoldBlade', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('BloodyScythe', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('MortalDrag', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('Omnipotence', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('RageofWar', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('BurntFrost', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('SwirlingStorm', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('Thundercloud', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('Thunderbolt', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('TripleBlasts', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('ShadowofChaser', '0.70', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('AngerofStomper', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('HorrorofStomper', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('PeaceofStomper', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('Sector', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('Circle', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('Rectangle', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('DragonCyclone', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('DragonSlash', '0.70', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('CrackingSwipe', '0.70', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('SplittingSwipe', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('SpeedKick', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('ViolentKick', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('StormKick', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('AirKick', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('RadiantPalm', '0.80', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('WhirlwindKick', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('InfernalEcho', '0.65', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('WrathoftheEmperor', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('WaveofBlood', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('BladeTempest', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('GaleBomb', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('EagleEye', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('FastBlade', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('ScentSword', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('Rage', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('Hercules', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('FatalCross', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('Thunder', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('Fire', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('Tornado', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('DaggerStorm', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('Phoenix', '1.00', '1.00', '1.00');
INSERT INTO `skillsattack` VALUES ('Penetration', '1.00', '1.00', '1.00');  

Passo 5: Adequando os skills
Esse passo presume que você saiba como alterar o dano de um skill manualmente na source. Caso não saiba, assista esse vídeo primeiro:






Para submeter qualquer skill a esse sistema há a necessidade de, na linha que cuida do dano, adicionar um codigo que faça referencia ao sistema e a linha do navicat que vamos usar.
Exemplo utilizando um skill que possui mais de um dano:
Código:
uint damage = Calculate.Melee(attacker, attacked, ref attack, spell);
                                                        if (attacked.PlayerFlag == PlayerFlag.Player)
                                                        {
                                                            damage = (uint)(damage * SkillsAttack.SuperTwofoldBladePlayers);
                                                        }
                                                        if (attacked.PlayerFlag == PlayerFlag.Monster)
                                                        {
                                                            damage = (uint)(damage * SkillsAttack.SuperTwofoldBladeMonsters);
                                                        }  

Ex fastblade:
Código:
damage = (uint)(damage * SkillsAttack.FastBladePlayers);

Download do sistema: Clique aqui

_________________
Conquer XP = Entrar no site
Grupo do Criando um conquer no Facebook : Clique Aqui
Facebook: Criando um Conquer
Canal no youtube : Clique aqui
avatar
FelipeXP
Administrador
Administrador

Mensagens : 319
Data de inscrição : 28/05/2014

Ver perfil do usuário https://www.youtube.com/channel/UCOmLJd3M1OSrMmlcR7UGlhw

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum