Jump to content

chojuro

Members
  • Content Count

    46
  • Joined

  • Last visited

Posts posted by chojuro


  1. ALTER TABLE `char` ADD `achievement_points` INT
    
    CREATE TABLE IF NOT EXISTS `achievement_log` (
      `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `ach_id` int(11) unsigned NOT NULL,
      `char_id` int(11) unsigned NOT NULL,
      `crdate` int(11) unsigned NOT NULL,
      PRIMARY KEY (`id`),
      KEY `ach_id` (`ach_id`,`char_id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=91 ;
    
    CREATE TABLE IF NOT EXISTS `achievement_force` (
      `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `ach_id` int(11) unsigned NOT NULL,
      `char_id` int(11) unsigned NOT NULL,
      `mode` enum('add','del') NOT NULL DEFAULT 'add',
      `done` enum('y','n') NOT NULL DEFAULT 'n',
      PRIMARY KEY (`id`),
      KEY `ach_id` (`ach_id`,`char_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
    
    CREATE TABLE IF NOT EXISTS `achievement` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(256) NOT NULL,
      `title` varchar(256) NOT NULL,
      `desc` text COMMENT 'Just for your overview scripts',
      `mode` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0=no trigger, 1=item, 2= mob, 3=mvp, 4=pvp, 5=blvl, 6=jlvl, 7=lvldiff, 8=map, 9=damage, 10=set',
      `type` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'see achievement_script for details',
      `deleted` enum('y','n') NOT NULL DEFAULT 'n',
      `cutin` varchar(256) DEFAULT NULL,
      `points` int(11) unsigned NOT NULL DEFAULT '0',
      `single_val` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'pvp,mvp,lvl,jlvl need this column',
      `mapname` varchar(256) NOT NULL,
      `val1` int(11) unsigned NOT NULL DEFAULT '0',
      `val1amount` int(11) unsigned NOT NULL DEFAULT '0',
      `val2` int(11) unsigned NOT NULL DEFAULT '0',
      `val2amount` int(11) unsigned NOT NULL DEFAULT '0',
      `val3` int(11) unsigned NOT NULL DEFAULT '0',
      `val3amount` int(11) unsigned NOT NULL DEFAULT '0',
      `val4` int(11) unsigned NOT NULL DEFAULT '0',
      `val4amount` int(11) unsigned NOT NULL DEFAULT '0',
      `val5` int(11) unsigned NOT NULL DEFAULT '0',
      `val5amount` int(11) unsigned NOT NULL DEFAULT '0',
      `val6` int(11) unsigned NOT NULL DEFAULT '0',
      `val6amount` int(11) unsigned NOT NULL DEFAULT '0',
      `val7` int(11) unsigned NOT NULL DEFAULT '0',
      `val7amount` int(11) unsigned NOT NULL DEFAULT '0',
      `val8` int(11) unsigned NOT NULL DEFAULT '0',
      `val8amount` int(11) unsigned NOT NULL DEFAULT '0',
      `val9` int(11) unsigned NOT NULL DEFAULT '0',
      `val9amount` int(11) unsigned NOT NULL DEFAULT '0',
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=103 ;
    
    INSERT INTO `achievement` (`id`, `name`, `title`, `desc`, `mode`, `type`, `deleted`, `cutin`, `points`, `single_val`, `mapname`, `val1`, `val1amount`, `val2`, `val2amount`, `val3`, `val3amount`, `val4`, `val4amount`, `val5`, `val5amount`, `val6`, `val6amount`, `val7`, `val7amount`, `val8`, `val8amount`, `val9`, `val9amount`) VALUES
    (1, 'Poring Hunter', 'PoringHunter', 'Kill 500 Porings without any mercy.\r\n*Boing Boing*\r\n', 2, 0, 'n', 'ach_0001', 100, 0, '', 1002, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (2, 'Poring Slayer', 'PoringSlayer', 'Kill 1000 Porings without any mercy.\r\n*Boing Boing*', 2, 0, 'n', 'ach_0002', 200, 0, '', 1002, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (3, 'Poring Nemesis', 'PoringNemesis', 'Kill 5000 Porings without any mercy.\r\n*Boing Boing*', 2, 0, 'n', 'ach_0003', 500, 0, '', 1002, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (4, 'Ultimate', 'Ultimate', 'Reach base level 99 and rock the community.', 5, 0, 'n', 'ach_0004', 500, 99, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (5, 'PvP Madness', 'PvPMadness', 'Win 1x PvP Fight. You will never be the one!', 4, 0, 'n', 'ach_0005', 50, 1, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (6, 'PvP Hunter', 'PvPHunter', 'Win 15x PvP Fight. You are not the one!', 4, 0, 'n', 'ach_0006', 100, 25, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (7, 'Dead or Alive', 'DoA', 'Win 100x PvP Fight. You can be the one!', 4, 0, 'n', 'ach_0007', 250, 100, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (8, 'Most Wanted', 'MostWanted', 'Win 666x PvP Fight. You are the one!', 4, 0, 'n', 'ach_0008', 600, 666, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (9, 'Emperium Breaker', 'Breaker', 'Destroy 1 Emperium and bring glory to your guild!', 2, 0, 'n', 'ach_0009', 50, 0, '', 1288, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (10, 'Guild Despair', 'GuildDespair', 'Destroy 10 Emperium and bring glory to your guild!', 2, 0, 'n', 'ach_0010', 100, 0, '', 1288, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (11, 'Emperium Madness', 'EmpMadness', 'Destroy 50 Emperium and bring glory to your guild!', 2, 0, 'n', 'ach_0011', 250, 0, '', 1288, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (12, 'Rune Midgard, here I come', 'Novice', 'Reach job level 10, then you can finally change your job', 6, 0, 'n', 'ach_0012', 50, 10, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (13, 'MvP Hunter', 'MvPHunter', 'Bring 1x MvP down and be the MvP.', 3, 0, 'n', 'ach_0013', 50, 1, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (14, 'MvP Seeker', 'MvPSeeker', 'Bring 15x MvP down and be the MvP.', 3, 0, 'n', 'ach_0014', 100, 15, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (15, 'MvP Sweeper', 'MvpSweeper', 'Bring 50x MvP down and be the MvP.', 3, 0, 'n', 'ach_0015', 100, 50, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (16, 'MvP Bringer', 'MvPBringer', 'Bring 150x MvP down and be the MvP.', 3, 0, 'n', 'ach_0016', 150, 150, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (17, 'Rags-to-Riches', 'Riches', 'Get 1.000.000 zeny and be one of the richest persons in Rune Midgard.', 0, 0, 'n', 'ach_0017', 100, 1000000, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (18, 'Magnate', 'Magnate', 'Get 50.000.000 zeny and be the richest persons in Rune Midgard.', 0, 0, 'n', 'ach_0017', 250, 50000000, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (19, 'Thanatos Killer', 'Thanatos', 'Kill Thanatos one time.', 3, 0, 'n', 'ach_0001', 300, 0, '', 1708, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (20, 'Valkyrie Killer', 'Valkyrie', 'Kill Valkyrie Randgris one time.', 3, 0, 'n', 'ach_0001', 500, 0, '', 1751, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (21, 'Beelzebub Killer', 'Beelzebub', 'Kill Beelzebub one time.', 3, 0, 'n', 'ach_0001', 500, 0, '', 1873, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (22, 'Ifrit Killer', 'Ifrit', 'Kill Ifrit one time.', 3, 0, 'n', 'ach_0001', 600, 0, '', 1832, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (23, 'Fallen Bishop Killer', 'Fallen', 'Kill Fallen Bishop Hibram one time.', 3, 0, 'n', 'ach_0001', 300, 0, '', 1871, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (24, 'Gloom Under Night Killer', 'Gloom', 'Kill Gloom Under Night one time.', 3, 0, 'n', 'ach_0001', 250, 0, '', 1768, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (25, 'Orcs Killer', 'Orcs', 'Kill Orc Lord and Orc Hero one time each.', 3, 0, 'n', 'ach_0001', 200, 0, '', 1190, 1, 1087, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (26, 'Wounded Killer', 'Wounded', 'Kill Wounded Morroc one time.', 3, 0, 'n', 'ach_0001', 1000, 0, '', 1917, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (27, 'Baphomet Killer', 'Baphomet', 'Kill Baphomet one time.', 3, 0, 'n', 'ach_0001', 200, 0, '', 1848, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (28, 'Ktullanux Killer', 'Ktullanux', 'Kill Ktullanux one time.', 3, 0, 'n', 'ach_0001', 400, 0, '', 1779, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (29, 'Nacht Sieger Killer', 'Nacht', 'Kill Nacht Sieger one time.', 3, 0, 'n', 'ach_0001', 700, 0, '', 1956, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (30, 'Nidhoggur Shadow Killer', 'Nidhoggur', 'Kill Nidhoggur Shadow one time.', 3, 0, 'n', 'ach_0001', 500, 0, '', 2022, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (31, 'Survivor', 'Survivor', 'Die 10 times.', 0, 0, 'n', 'ach_0001', 100, 10, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (32, 'Dead Raising', 'DeadRaising', 'Die 30 times.', 0, 0, 'n', 'ach_0001', 200, 30, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (33, 'The Undying', 'Undying', 'Die 50 times.', 0, 0, 'n', 'ach_0001', 300, 50, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (34, 'Neutrality at it''s best', 'Neutrality', 'Kill 500 Neutral monsters.', 2, 1, 'n', 'ach_0001', 300, 0, '', 0, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (35, 'Waterbender', 'Waterbender', 'Kill 500 Water monsters.', 2, 1, 'n', 'ach_0001', 300, 0, '', 1, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (36, 'Earthbender', 'Earthbender', 'Kill 500 Earth monsters.', 2, 1, 'n', 'ach_0001', 300, 0, '', 2, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (37, 'Firebender', 'Firebender', 'Kill 500 Fire monsters.', 2, 1, 'n', 'ach_0001', 300, 0, '', 3, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (38, 'Windbender', 'Windbender', 'Kill 500 Wind monsters.', 2, 1, 'n', 'ach_0001', 300, 0, '', 4, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (39, 'Poisonner', 'Poisonner', 'Kill 500 Poison monsters.', 2, 1, 'n', 'ach_0001', 300, 0, '', 5, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (40, 'Evil', 'Evil', 'Kill 500 Holy monsters.', 2, 1, 'n', 'ach_0001', 300, 0, '', 6, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (41, 'Saint', 'Saint', 'Kill 500 Shadow monsters.', 2, 1, 'n', 'ach_0001', 300, 0, '', 7, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (42, 'Ghost Buster', 'GhostBuster', 'Kill 500 Ghost monsters.', 2, 1, 'n', 'ach_0001', 300, 0, '', 8, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (43, 'Zombie Hunter', 'ZombieHunter', 'Kill 500 Undead monsters.', 2, 1, 'n', 'ach_0001', 300, 0, '', 9, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (44, 'Bully', 'Bully', 'Kill 250 Small monsters.', 2, 3, 'n', 'ach_0001', 200, 0, '', 0, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (45, 'Just like me', 'LikeMe', 'Kill 250 Medium monsters.', 2, 3, 'n', 'ach_0001', 200, 0, '', 1, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (46, 'Size doesn''t matter', 'SizeMatter', 'Kill 250 Large monsters.', 2, 3, 'n', 'ach_0001', 200, 0, '', 2, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (47, 'Serial Killer', 'SerialKiller', 'Kill 1000 Demi Human monsters.', 2, 2, 'n', 'ach_0001', 400, 0, '', 7, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (48, 'Brute Master', 'Brute', 'Kill 1000 Brute monsters.', 2, 2, 'n', 'ach_0001', 400, 0, '', 2, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (49, 'Debugger', 'Debugger', 'Kill 1000 Insect monsters.', 2, 2, 'n', 'ach_0001', 400, 0, '', 4, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (50, 'Fisherman', 'Fisherman', 'Kill 1000 Fish monsters.', 2, 2, 'n', 'ach_0001', 400, 0, '', 5, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (51, 'Dragonisher', 'Dragonisher', 'Kill 1000 Dragon monsters.', 2, 2, 'n', 'ach_0001', 400, 0, '', 9, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (52, 'Gardener', 'Gardener', 'Kill 1000 Plant monsters.', 2, 2, 'n', 'ach_0001', 400, 0, '', 3, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (53, 'Now you see me', 'Formless', 'Kill 1000 Formless monsters.', 2, 2, 'n', 'ach_0001', 400, 0, '', 0, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (54, 'Demon', 'Demon', 'Kill 1000 Angel monsters.', 2, 2, 'n', 'ach_0001', 400, 0, '', 8, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (55, 'Archangel', 'Archangel', 'Kill 1000 Demon monsters.', 2, 2, 'n', 'ach_0001', 400, 0, '', 6, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (56, 'Zombie Slaughter', 'Slaughter', 'Kill 1000 Undead monsters.', 2, 2, 'n', 'ach_0001', 400, 0, '', 1, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (57, 'Pronterer', 'Pronterer', 'Visit Prontera.', 8, 0, 'n', 'ach_0001', 150, 0, 'prontera', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (58, 'Geffener', 'Geffener', 'Visit Geffen.', 8, 0, 'n', 'ach_0001', 150, 0, 'geffen', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (59, 'Moroccer', 'Moroccer', 'Visit Morocc.', 8, 0, 'n', 'ach_0001', 150, 0, 'morocc', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (60, 'Hugeler', 'Hugeler', 'Visit Hugel.', 8, 0, 'n', 'ach_0001', 150, 0, 'hugel', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (61, 'Payoner', 'Payoner', 'Visit Payon.', 8, 0, 'n', 'ach_0001', 150, 0, 'payon', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (62, 'Lutier', 'Lutier', 'Visit Lutie.', 8, 0, 'n', 'ach_0001', 150, 0, 'xmas', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (63, 'Aldebarer', 'Aldebarer', 'Visit Aldebaran.', 8, 0, 'n', 'ach_0001', 150, 0, 'aldebaran', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (64, 'Alberter', 'Alberter', 'Visit Alberta.', 8, 0, 'n', 'ach_0001', 150, 0, 'alberta', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (65, 'Comodor', 'Comodor', 'Visit Comodo.', 8, 0, 'n', 'ach_0001', 150, 0, 'comodo', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (66, 'Amatser', 'Amatser', 'Visit Amatsu.', 8, 0, 'n', 'ach_0001', 150, 0, 'amatsu', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (67, 'Ayothayer', 'Ayothayer', 'Visit Ayothaya.', 8, 0, 'n', 'ach_0001', 150, 0, 'ayothaya', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (68, 'Brasiliser', 'Brasiliser', 'Visit Brasilis.', 8, 0, 'n', 'ach_0001', 150, 0, 'brasilis', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (69, 'Niflheimer', 'Niflheimer', 'Visit Niflheim.', 8, 0, 'n', 'ach_0001', 150, 0, 'niflheim', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (70, 'Izluder', 'Izluder', 'Visit Izlude.', 8, 0, 'n', 'ach_0001', 150, 0, 'izlude', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (71, 'Morer', 'Morer', 'Visit Mora.', 8, 0, 'n', 'ach_0001', 150, 0, 'mora', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (72, 'El Dicaster', 'Dicaster', 'Visit El Dicastes.', 8, 0, 'n', 'ach_0001', 150, 0, 'dicastes01', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (73, 'Einbecher', 'Einbecher', 'Visit Einbech.', 8, 0, 'n', 'ach_0001', 150, 0, 'einbech', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (74, 'Einbrocher', 'Einbrocher', 'Visit Einbroch.', 8, 0, 'n', 'ach_0001', 150, 0, 'einbroch', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (75, 'Eclager', 'Eclager', 'Visit Eclage.', 8, 0, 'n', 'ach_0001', 150, 0, 'eclage', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (76, 'Gonryuner', 'Gonryuner', 'Visit Gonryun.', 8, 0, 'n', 'ach_0001', 150, 0, 'gonryun', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (77, 'Dewater', 'Dewater', 'Visit Dewata.', 8, 0, 'n', 'ach_0001', 150, 0, 'dewata', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (78, 'Jawaiier', 'Jawaiier', 'Visit Jawaii.', 8, 0, 'n', 'ach_0001', 150, 0, 'jawaii', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (79, 'Lighthazelner', 'Lighthazelner', 'Visit Lighthazeln.', 8, 0, 'n', 'ach_0001', 150, 0, 'lighthazeln', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (80, 'Louyanger', 'Louyanger', 'Visit Louyang.', 8, 0, 'n', 'ach_0001', 150, 0, 'louyang', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (81, 'Malangder', 'Malangder', 'Visit Malangdo.', 8, 0, 'n', 'ach_0001', 150, 0, 'malangdo', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (82, 'Manuker', 'Manuker', 'Visit Manuk.', 8, 0, 'n', 'ach_0001', 150, 0, 'manuk', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (83, 'Racheler', 'Racheler', 'Visit Rachel.', 8, 0, 'n', 'ach_0001', 150, 0, 'rachel', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (84, 'Splendider', 'Splendider', 'Visit Splendid.', 8, 0, 'n', 'ach_0001', 150, 0, 'splendid', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (85, 'Umbala', 'Umbala', 'Visit Umbala.', 8, 0, 'n', 'ach_0001', 150, 0, 'umbala', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (86, 'Veinser', 'Veinser', 'Visit Veins.', 8, 0, 'n', 'ach_0001', 150, 0, 'veins', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (87, 'Yunoer', 'Yunoer', 'Visit Yuno.', 8, 0, 'n', 'ach_0001', 150, 0, 'yuno', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (88, 'Midgardien', 'Midgardien', 'Visit all cities in Midgard.', 10, 0, 'n', 'ach_0001', 50, 8, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (89, 'Monster Nemesis', 'Nemesis', 'Obtain all monsters achievements.', 10, 0, 'n', 'ach_0001', 15000, 2, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (90, 'MvP', 'MvP', 'Obtain all MvP achievements.', 10, 0, 'n', 'ach_0001', 15000, 3, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (91, 'PvP Highly Wanted', 'HighWanted', 'Obtain all PvP achievements.', 10, 0, 'n', 'ach_0001', 17000, 4, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (92, 'Bully', 'Bully', 'Kill a monster with 10 lvl lower than you.', 7, 0, 'n', 'ach_0001', 200, 10, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (93, 'Big Bully', 'BigBully', 'Kill a monster with 20 lvl lower than you.', 7, 0, 'n', 'ach_0001', 700, 20, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (94, 'Be Brave', 'Brave', 'Kill a monster with 10 lvl higher than you.', 7, 1, 'n', 'ach_0001', 200, 10, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (95, 'Suicidal', 'Suicidal', 'Kill a monster with 20 lvl higher than you.', 7, 1, 'n', 'ach_0001', 700, 20, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (96, 'Kill the Weak', 'KillTheWeak', 'Kill a player with 10 lvl lower than you.', 7, 2, 'n', 'ach_0001', 200, 10, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (97, 'Coward', 'Coward', 'Kill a player with 20 lvl lower than you.', 7, 2, 'n', 'ach_0001', 700, 20, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (98, 'Foolish', 'Foolish', 'Kill a player with 10 lvl higher than you.', 7, 3, 'n', 'ach_0001', 200, 10, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (99, 'Master', 'Master', 'Kill a player with 20 lvl higher than you.', 7, 3, 'n', 'ach_0001', 700, 20, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (100, 'Doomed', 'Doomed', 'Obtain all doomed sword.', 1, 0, 'n', 'ach_0001', 500, 0, '', 1139, 1, 1169, 1, 1138, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (101, 'Collectionner', 'Collectionner', 'Obtain all item achievements.', 10, 0, 'n', 'ach_0001', 700, 1, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (102, 'Achiever', 'Achiever', 'Obtain all achievements.', 10, 0, 'n', 'ach_0001', 5000, 10, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (103, 'Class Master', 'Class Master', 'Reach base level 175 without dying! What a challenge.', 5, 0, 'n', 'ach_0004', 1500, 175, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (104, 'Doomed', 'Doomed', 'Obtain all doomed sword.', 1, 0, 'n', 'ach_0001', 500, 0, '', 1139, 1, 1169, 1, 1138, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (105, 'Class Master', 'Class Master', 'Reach base level 175 without dying! What a challenge.', 5, 0, 'n', 'ach_0004', 1500, 175, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (106, 'Golden Magic Knight', 'Golden Magic Knight', 'Kill Golden Thief Bug one time.', 3, 0, 'n', 'ach_0001', 300, 0, '', 1086, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (107, 'Liche King', 'Liche King', 'Kill Angeling and Arc Angeling one time each.', 3, 0, 'n', 'ach_0001', 500, 0, '', 1388, 1, 1096, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (108, 'Angel Redeemer', 'Angel Redeemer', 'Kill Deviling one time.', 3, 0, 'n', 'ach_0001', 300, 0, '', 1582, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (109, 'Reaper', 'Reaper', 'Kill Lord of the Dead one time.', 3, 0, 'n', 'ach_0001', 500, 0, '', 1373, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (110, 'Lucky Boy', 'Lucky Boy', 'Obtain one Emperium.', 1, 0, 'n', 'ach_0001', 200, 0, '', 714, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (111, 'Cooker', 'Cooker', 'Obtain one exmplary of each lvl 1 cooked plate.', 1, 0, 'n', 'ach_0001', 200, 0, '', 12041, 1, 12051, 1, 12046, 1, 12056, 1, 12066, 1, 0, 0, 0, 0, 0, 0, 0, 0),
    (112, 'The Picker', 'The Picker', 'Collect Stones. Lots of Stones.', 1, 0, 'n', 'ach_0001', 100, 0, '', 7049, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (113, 'Raise Machine', 'Raise Machine', 'Collect 10 Yggdrasil Leafs.', 1, 0, 'n', 'ach_0001', 1000, 0, '', 610, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (114, 'What is that?!', 'Golder', 'Obtain 15 Gold Coins.', 1, 0, 'n', 'ach_0001', 100, 0, '', 7517, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (115, 'Celebrity Gathering', 'Celebrity Gathering', 'Hunt for the reknown items: Gungnir, Murasama, Alca Bringer, Brionac', 1, 0, 'n', 'ach_0001', 900, 0, '', 1413, 1, 1191, 1, 1470, 1, 1164, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);

    how to fix this error im using old achievement system

    image.png


  2. /root/server$ make sql
    	MAKE	mt19937ar
    make[1]: Entering directory `/root/server/3rdparty/mt19937ar'
    	CC	mt19937ar.c
    make[1]: Leaving directory `/root/server/3rdparty/mt19937ar'
    	MAKE	libconfig
    make[1]: Entering directory `/root/server/3rdparty/libconfig'
    	CC	libconfig.c
    	CC	grammar.c
    	CC	scanctx.c
    	CC	scanner.c
    	CC	strbuf.c
    make[1]: Leaving directory `/root/server/3rdparty/libconfig'
    	MAKE	common_sql
    make[1]: Entering directory `/root/server/src/common'
    	MKDIR	obj_all
    	CC	conf.c
    	CC	db.c
    	CC	des.c
    	CC	ers.c
    	CC	grfio.c
    	CC	HPM.c
    	CC	mapindex.c
    	CC	md5calc.c
    	CC	mutex.c
    	CC	nullpo.c
    	CC	random.c
    	CC	showmsg.c
    	CC	strlib.c
    	CC	sysinfo.c
    	CC	thread.c
    	CC	timer.c
    	CC	utils.c
    	CC	console.c
    	CC	core.c
    	CC	memmgr.c
    	CC	socket.c
    	AR	obj_all/common.a
    	MKDIR	obj_sql
    	CC	sql.c
    sql.c: In function ‘sql_defaults’:
    sql.c:1059:21: warning: assignment from incompatible pointer type [enabled by default]
      SQL->StmtBindParam = SqlStmt_BindParam;
                         ^
    	AR	obj_sql/common_sql.a
    	CC	console.c
    	CC	core.c
    	CC	memmgr.c
    	CC	socket.c
    	AR	obj_all/common_mini.a
    make[1]: Leaving directory `/root/server/src/common'
    	MAKE	login_sql
    make[1]: Entering directory `/root/server/src/login'
    	MKDIR	obj_sql
    account_sql.c: In function ‘mmo_auth_tosql’:
    account_sql.c:791:65: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
       ||  SQL_SUCCESS != SQL->StmtBindParam(stmt,  0, SQLDT_INT,    (void*)&acc->account_id,      sizeof(acc->account_id))
                                                                     ^
    account_sql.c:792:65: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
       ||  SQL_SUCCESS != SQL->StmtBindParam(stmt,  1, SQLDT_STRING, (void*)acc->userid,           strlen(acc->userid))
                                                                     ^
    account_sql.c:793:65: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
       ||  SQL_SUCCESS != SQL->StmtBindParam(stmt,  2, SQLDT_STRING, (void*)acc->pass,             strlen(acc->pass))
                                                                     ^
    account_sql.c:794:65: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
       ||  SQL_SUCCESS != SQL->StmtBindParam(stmt,  3, SQLDT_ENUM,   (void*)&acc->sex,             sizeof(acc->sex))
                                                                     ^
    account_sql.c:796:65: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
       ||  SQL_SUCCESS != SQL->StmtBindParam(stmt,  5, SQLDT_INT,    (void*)&acc->group_id,        sizeof(acc->group_id))
                                                                     ^
    account_sql.c:797:65: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
       ||  SQL_SUCCESS != SQL->StmtBindParam(stmt,  6, SQLDT_UINT,   (void*)&acc->state,           sizeof(acc->state))
                                                                     ^
    account_sql.c:798:65: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
       ||  SQL_SUCCESS != SQL->StmtBindParam(stmt,  7, SQLDT_LONG,   (void*)&acc->unban_time,      sizeof(acc->unban_time))
                                                                     ^
    account_sql.c:799:65: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
       ||  SQL_SUCCESS != SQL->StmtBindParam(stmt,  8, SQLDT_INT,    (void*)&acc->expiration_time, sizeof(acc->expiration_time))
                                                                     ^
    account_sql.c:800:65: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
       ||  SQL_SUCCESS != SQL->StmtBindParam(stmt,  9, SQLDT_UINT,   (void*)&acc->logincount,      sizeof(acc->logincount))
                                                                     ^
    account_sql.c:810:65: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
       ||  SQL_SUCCESS != SQL->StmtBindParam(stmt, 13, SQLDT_UCHAR,  (void*)&acc->char_slots,      sizeof(acc->char_slots))
                                                                     ^
    account_sql.c:812:65: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
       ||  SQL_SUCCESS != SQL->StmtBindParam(stmt, 15, SQLDT_LONG,   (void*)&acc->pincode_change,  sizeof(acc->pincode_change))
                                                                     ^
    account_sql.c:820:65: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
       ||  SQL_SUCCESS != SQL->StmtBindParam(stmt,  0, SQLDT_STRING, (void*)acc->userid,           strlen(acc->userid))
                                                                     ^
    account_sql.c:821:65: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
       ||  SQL_SUCCESS != SQL->StmtBindParam(stmt,  1, SQLDT_STRING, (void*)acc->pass,             strlen(acc->pass))
                                                                     ^
    account_sql.c:822:65: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
       ||  SQL_SUCCESS != SQL->StmtBindParam(stmt,  2, SQLDT_ENUM,   (void*)&acc->sex,             sizeof(acc->sex))
                                                                     ^
    	CC	account_sql.c
    account_sql.c:823:65: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
       ||  SQL_SUCCESS != SQL->StmtBindParam(stmt,  3, SQLDT_STRING, (void*)acc->email,            strlen(acc->email))
                                                                     ^
    account_sql.c:824:65: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
       ||  SQL_SUCCESS != SQL->StmtBindParam(stmt,  4, SQLDT_INT,    (void*)&acc->group_id,        sizeof(acc->group_id))
                                                                     ^
    account_sql.c:825:65: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
       ||  SQL_SUCCESS != SQL->StmtBindParam(stmt,  5, SQLDT_UINT,   (void*)&acc->state,           sizeof(acc->state))
                                                                     ^
    account_sql.c:826:65: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
       ||  SQL_SUCCESS != SQL->StmtBindParam(stmt,  6, SQLDT_LONG,   (void*)&acc->unban_time,      sizeof(acc->unban_time))
                                                                     ^
    account_sql.c:827:65: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
       ||  SQL_SUCCESS != SQL->StmtBindParam(stmt,  7, SQLDT_LONG,   (void*)&acc->expiration_time, sizeof(acc->expiration_time))
                                                                     ^
    account_sql.c:828:65: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
       ||  SQL_SUCCESS != SQL->StmtBindParam(stmt,  8, SQLDT_UINT,   (void*)&acc->logincount,      sizeof(acc->logincount))
                                                                     ^
    account_sql.c:838:65: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
       ||  SQL_SUCCESS != SQL->StmtBindParam(stmt, 12, SQLDT_UCHAR,  (void*)&acc->char_slots,      sizeof(acc->char_slots))
                                                                     ^
    account_sql.c:840:65: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
       ||  SQL_SUCCESS != SQL->StmtBindParam(stmt, 14, SQLDT_LONG,   (void*)&acc->pincode_change,  sizeof(acc->pincode_change))
                                                                     ^
    	CC	HPMlogin.c
    	CC	ipban_sql.c
    	CC	lclif.c
    	CC	login.c
    	CC	loginlog_sql.c
    loginlog_sql.c: In function ‘loginlog_gepard_init’:
    loginlog_sql.c:122:6: warning: old-style function definition [-Wold-style-definition]
     void loginlog_gepard_init() {
          ^
    	LD	login-server
    make[1]: Leaving directory `/root/server/src/login'
    	MAKE	char_sql
    make[1]: Entering directory `/root/server/src/char'
    	MKDIR	obj_sql
    	CC	char.c
    	CC	HPMchar.c
    	CC	loginif.c
    	CC	mapif.c
    	CC	geoip.c
    	CC	inter.c
    	CC	int_auction.c
    	CC	int_elemental.c
    	CC	int_guild.c
    	CC	int_homun.c
    int_homun.c: In function ‘mapif_homunculus_save’:
    int_homun.c:174:48: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
          SQL->StmtBindParam(stmt, 0, SQLDT_USHORT, (void*)&hd->hskill[i].id, 0); // FIXME: StmtBindParam should take const void
                                                    ^
    int_homun.c:175:48: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
          SQL->StmtBindParam(stmt, 1, SQLDT_USHORT, (void*)&hd->hskill[i].lv, 0); // FIXME: StmtBindParam should take const void
                                                    ^
    	CC	int_mail.c
    	CC	int_mercenary.c
    	CC	int_party.c
    	CC	int_pet.c
    	CC	int_quest.c
    	CC	int_storage.c
    	CC	pincode.c
    	LD	char-server
    make[1]: Leaving directory `/root/server/src/char'
    	MAKE	map_sql
    make[1]: Entering directory `/root/server/src/map'
    	MKDIR	obj_sql
    	CC	adelays.c
    adelays.c: In function ‘adelays_init’:
    adelays.c:124:5: warning: old-style function definition [-Wold-style-definition]
     int adelays_init() {
         ^
    adelays.c: In function ‘adelays_battle_config_read’:
    adelays.c:131:5: warning: old-style function definition [-Wold-style-definition]
     int adelays_battle_config_read() {
         ^
    adelays.c: In function ‘adelays_set_defaults’:
    adelays.c:156:6: warning: old-style function definition [-Wold-style-definition]
     void adelays_set_defaults() {
          ^
    adelays.c: In function ‘adelays_getVersion’:
    adelays.c:162:7: warning: old-style function definition [-Wold-style-definition]
     float adelays_getVersion() {
           ^
    adelays.c: In function ‘adelays_read_db’:
    adelays.c:223:5: warning: old-style function definition [-Wold-style-definition]
     int adelays_read_db() {
         ^
    adelays.c: In function ‘adelays_is_enabled’:
    adelays.c:1222:5: warning: old-style function definition [-Wold-style-definition]
     int adelays_is_enabled(){
         ^
    	CC	atcommand.c
    atcommand.c: In function ‘atcommand_doom’:
    atcommand.c:2997:4: warning: passing argument 2 of ‘status->percent_change’ discards ‘const’ qualifier from pointer target type [enabled by default]
        status_kill(&pl_sd->bl);
        ^
    atcommand.c:2997:4: note: expected ‘struct block_list *’ but argument is of type ‘const struct block_list *’
    atcommand.c:2998:4: warning: passing argument 1 of ‘clif->specialeffect’ discards ‘const’ qualifier from pointer target type [enabled by default]
        clif->specialeffect(&pl_sd->bl,450,AREA);
        ^
    atcommand.c:2998:4: note: expected ‘struct block_list *’ but argument is of type ‘const struct block_list *’
    atcommand.c: In function ‘atcommand_leader’:
    atcommand.c:9492:33: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
      else if ((pl_sd = map->nick2sd((char *)message)) == NULL)
                                     ^
    atcommand.c: In function ‘atcommand_reportafk’:
    atcommand.c:9522:33: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
      else if ((pl_sd = map->nick2sd((char *)message)) == NULL)
                                     ^
    atcommand.c: In function ‘atcommand_shove’:
    atcommand.c:10038:28: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
      if ((pl_sd = map->nick2sd((char*)message)) == NULL && (pl_sd = map->charid2sd(atoi(message))) == NULL) {
                                ^
    	CC	battle.c
    battle.c: In function ‘battle_calc_skillratio’:
    battle.c:2747:10: warning: declaration of ‘i’ shadows a previous local [-Wshadow]
          int i;
              ^
    battle.c:1529:6: warning: shadowed declaration is here [-Wshadow]
      int i;
          ^
    battle.c: In function ‘battle_weapon_attack’:
    battle.c:6369:29: warning: unused variable ‘d_sd’ [-Wunused-variable]
        struct map_session_data *d_sd = BL_CAST(BL_PC, d_bl);
                                 ^
    battle.c:6368:27: warning: unused variable ‘d_md’ [-Wunused-variable]
        struct mercenary_data *d_md = BL_CAST(BL_MER, d_bl);
                               ^
    	CC	battleground.c
    battleground.c: In function ‘bg_checkskill’:
    battleground.c:96:45: warning: declaration of ‘bg’ shadows a global declaration [-Wshadow]
     int bg_checkskill(struct battleground_data *bg, int id) {
                                                 ^
    battleground.c:55:32: warning: shadowed declaration is here [-Wshadow]
     struct battleground_interface *bg;
                                    ^
    battleground.c: In function ‘bg_block_skill_end’:
    battleground.c:122:2: warning: passing argument 4 of ‘clif->bg_message’ makes pointer from integer without a cast [enabled by default]
      clif->bg_message(bgd, bgd->bg_id, bgd->g->name, strlen(output) + 1);
      ^
    battleground.c:122:2: note: expected ‘const char *’ but argument is of type ‘size_t’
    battleground.c: In function ‘bg_block_skill_status’:
    battleground.c:142:2: warning: passing argument 4 of ‘clif->bg_message’ makes pointer from integer without a cast [enabled by default]
      clif->bg_message(bgd, bgd->bg_id, bgd->g->name, strlen(output) + 1);
      ^
    battleground.c:142:2: note: expected ‘const char *’ but argument is of type ‘size_t’
    battleground.c: In function ‘bg_team_leave’:
    battleground.c:404:4: warning: passing argument 4 of ‘clif->bg_message’ makes pointer from integer without a cast [enabled by default]
        clif->bg_message(bgd, bgd->bg_id, bgd->g->name, strlen(output) + 1);
        ^
    battleground.c:404:4: note: expected ‘const char *’ but argument is of type ‘size_t’
    battleground.c: In function ‘bg_create2’:
    battleground.c:472:31: warning: declaration of ‘mapindex’ shadows a global declaration [-Wshadow]
     int bg_create2(unsigned short mapindex, short rx, short ry, int guild_index, const char *ev, const char *dev){
                                   ^
    In file included from ../map/map.h:28:0,
                     from battleground.h:24,
                     from battleground.c:23:
    ../common/mapindex.h:121:37: warning: shadowed declaration is here [-Wshadow]
     HPShared struct mapindex_interface *mapindex;
                                         ^
    battleground.c: In function ‘bg_send_xy_timer_sub’:
    battleground.c:589:4: error: too many arguments to function ‘clif->bg_message’
        clif->bg_message(bgd, bgd->bg_id, bgd->g->name, output, strlen(output) + 1);
        ^
    battleground.c: In function ‘bg_guild_build_data’:
    battleground.c:601:15: warning: declaration of ‘skill’ shadows a global declaration [-Wshadow]
      int i, j, k, skill;
                   ^
    In file included from ../map/unit.h:26:0,
                     from ../map/homunculus.h:25,
                     from battleground.c:28:
    ../map/skill.h:2171:34: warning: shadowed declaration is here [-Wshadow]
     HPShared struct skill_interface *skill;
                                      ^
    battleground.c:605:8: warning: declaration of ‘path’ shadows a global declaration [-Wshadow]
       char path[256];
            ^
    In file included from ../map/unit.h:25:0,
                     from ../map/homunculus.h:25,
                     from battleground.c:28:
    ../map/path.h:76:33: warning: shadowed declaration is here [-Wshadow]
     HPShared struct path_interface *path;
                                     ^
    battleground.c: In function ‘bg_team_getitem’:
    battleground.c:685:28: warning: declaration of ‘bg’ shadows a global declaration [-Wshadow]
      struct battleground_data *bg;
                                ^
    battleground.c:55:32: warning: shadowed declaration is here [-Wshadow]
     struct battleground_interface *bg;
                                    ^
    make[1]: *** [obj_sql/battleground.o] Error 1
    make: *** [map_sql] Error 2

     


  3. On 5/14/2023 at 8:35 PM, 4144 said:

    39141 is not version, but look like some random number? commits with this not exists missing. If you using this id from svn emulation, it really random number and mean nothing.

    You can see version at start hercules. it show date with number after it like this

     

    Try disable plugins, and may be it will fix your drops

     

    i tried to disable all plugins nothing happen still no drop

    On 5/14/2023 at 10:09 PM, KirieZ said:

    The reason I mentioned enabling/disabling plugins, and also trying a clean hercules is to help you find where the issue is. There is no way to fix without knowing where the issue is.

     

    If you can find the hercules version (follow 4144 advice above), try creating a separate folder and cloning hercules in this version and build and run it with no further customization (just change client date and set pre-re). Make a totally new server, should take you only a few minutes. This will tell whether it is an hercules bug or a bug in your changes (most likely, at least I don't remember hercules having this issue in the last few years).

     

    If it is an hercules issue, you may search the fix in herc repo and apply manually, or update your emulator, or fix it yourself. I don't think there is another way around it. Hercules changelog may help find what to look for in this case.

     

    If it is an issue with your custom changes, disabling your plugins and scripts can help you pin point where to dig further.

    - If you disable all plugins and scripts and the issue persists: The issue is changes in source itself (so you are limited to src/ folder)

    - If it works, try to enable 1 plugin, test, 1 more plugin, test, and so on, until you find the culprit (or find that it is not a plugin issue)

    - If all plugins are loaded and drops are still working, enable a few scripts per time, test, enable more, until you find the culprit (so you have only a few scripts, which you can them do the reverse process: disable 1 per time until it works again: you found the actual culprit)

     

    If the issue is in source, you can use a debugger (Btw, what you pasted above is NOT a debugger, it is just the build log). A debugger allows you to step through each line of code and check values there, this will help you find some line that is no behaving as expected. You seem to be using Windows and Visual Studio, so you can see a bit about debugging here:

    https://github.com/HerculesWS/Hercules/wiki/MSVC-Crash-Debugging (This will give the steps to run the debugger -- you won't get into the "crash step" though)

    https://learn.microsoft.com/en-us/visualstudio/debugger/getting-started-with-the-debugger-cpp?view=vs-2022

     

    i tried to diagnose 1 by 1 i think the problem is the source code

    ill try this debugger then ill feedback here what happen


  4. 5 hours ago, KirieZ said:

    I will add some ideas and questions here

     

    - Are you on latest herc?

    - Renewal or Pre-renewal?

    - Have you tried a clean herc? (This will help solve the question whether it is an Hercules issue or a customization issue)

     

    If you change rates back to the original, does something drops?

    - If it does, maybe there is a bug there...

    - If it doesn't, ok -- rates shouldn't be the problem

     

    Does using mobinfo shows the drops? If it doesn´t, there might be something wrong with your drop loading

     

    If a clean herc also shows this problem, we would have to look the entire drop logic (or in case last test is "yes", something specific for bonus calculation), I don't think there are other ways.

     

    If a clean herc works fine, you have to debug your customizations. Things to consider:

    1. Do you have any installed plugins that affects drops?

    2. Do you have scripts that affects drops?

    3. If you disable every plugin, does it solve?

    4. If you disable your custom NPCs, does it solve?

    5. Do you have source changes? If yes, any of them touches drops? this may be the culprit.

    6. If none of the above helps, I guess the only way will be to really go into the drop logic and try to find where something is going wrong (debugger may help here)

     

    Hope this helps

    Answeer:

    - Not latest hercules to be exact 39141 not sure if this revision start this problem until i test it

    - Pre-renewal onfiguration

    - since my planned it to update my old emulator with manny modification up to latest the answer is not clean

     

    - it never been touch the rate since i start updating my revision

     

    - mobinfo show droprate high i think there's no problem here

     

    i dont disable any plugins and npc and there is alot of changes in sources

    Rebuild started...
    1>------ Rebuild All started: Project: plugin-change_weapon_skin, Configuration: Release Win32 ------
    2>------ Rebuild All started: Project: plugin-viewhg, Configuration: Release Win32 ------
    3>------ Rebuild All started: Project: plugin-whosell, Configuration: Release Win32 ------
    4>------ Rebuild All started: Project: plugin-whobuy, Configuration: Release Win32 ------
    5>------ Rebuild All started: Project: plugin-market, Configuration: Release Win32 ------
    6>------ Rebuild All started: Project: plugin-mapflags, Configuration: Release Win32 ------
    7>------ Rebuild All started: Project: plugin-itemmap, Configuration: Release Win32 ------
    8>------ Rebuild All started: Project: plugin-HPMHooking_login, Configuration: Release Win32 ------
    1>change_weapon_skin.c
    2>viewhg.c
    6>mapflags.c
    3>whosell.c
    4>whobuy.c
    8>HPMHooking.c
    5>market.c
    5>G:\ragnarok\experiment\2. Update\39141\src\plugins\market.c(342,30): warning C4267: '=': conversion from 'size_t' to 'short', possible loss of data
    7>itemmap.c
    1>   Creating library plugin-change_weapon_skin\Release\change_weapon_skin.lib and object plugin-change_weapon_skin\Release\change_weapon_skin.exp
    4>   Creating library plugin-whobuy\Release\whobuy.lib and object plugin-whobuy\Release\whobuy.exp
    2>   Creating library plugin-viewhg\Release\viewhg.lib and object plugin-viewhg\Release\viewhg.exp
    3>   Creating library plugin-whosell\Release\whosell.lib and object plugin-whosell\Release\whosell.exp
    5>   Creating library plugin-market\Release\market.lib and object plugin-market\Release\market.exp
    7>   Creating library plugin-itemmap\Release\itemmap.lib and object plugin-itemmap\Release\itemmap.exp
    1>plugin-change_weapon_skin.vcxproj -> G:\ragnarok\experiment\2. Update\39141\plugins\change_weapon_skin.dll
    2>plugin-viewhg.vcxproj -> G:\ragnarok\experiment\2. Update\39141\plugins\viewhg.dll
    3>plugin-whosell.vcxproj -> G:\ragnarok\experiment\2. Update\39141\plugins\whosell.dll
    9>------ Rebuild All started: Project: plugin-HPMHooking_char, Configuration: Release Win32 ------
    4>plugin-whobuy.vcxproj -> G:\ragnarok\experiment\2. Update\39141\plugins\whobuy.dll
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.h(39): warning C6244: Local declaration of 'guild' hides previous declaration at line '192' of 'g:\ragnarok\experiment\2. update\39141\src\map\guild.h'.
    G:\ragnarok\experiment\2. Update\39141\src\plugins\viewhg.c(347): warning C6011: Dereferencing NULL pointer 'bl'. See line 296 for an earlier location where this can occur
    5>plugin-market.vcxproj -> G:\ragnarok\experiment\2. Update\39141\plugins\market.dll
    7>plugin-itemmap.vcxproj -> G:\ragnarok\experiment\2. Update\39141\plugins\itemmap.dll
    G:\ragnarok\experiment\2. Update\39141\src\plugins\whosell.c(34): warning C6340: Mismatch on sign: 'unsigned int' passed as _Param_(3) when some signed type is required in call to 'sprintf'.
    G:\ragnarok\experiment\2. Update\39141\src\plugins\whosell.c(95): warning C6326: Potential comparison of a constant with another constant.
    G:\ragnarok\experiment\2. Update\39141\src\plugins\whosell.c(107): warning C6326: Potential comparison of a constant with another constant.
    G:\ragnarok\experiment\2. Update\39141\src\plugins\whosell.c(112): warning C6326: Potential comparison of a constant with another constant.
    G:\ragnarok\experiment\2. Update\39141\src\plugins\whosell.c(118): warning C6326: Potential comparison of a constant with another constant.
    G:\ragnarok\experiment\2. Update\39141\src\plugins\whosell.c(156): warning C6340: Mismatch on sign: 'unsigned short' passed as _Param_(3) when some signed type is required in call to 'sprintf'.
    6>   Creating library plugin-mapflags\Release\mapflags.lib and object plugin-mapflags\Release\mapflags.exp
    G:\ragnarok\experiment\2. Update\39141\src\plugins\whobuy.c(60): warning C6340: Mismatch on sign: 'unsigned short' passed as _Param_(5) when some signed type is required in call to 'snprintf'.
    G:\ragnarok\experiment\2. Update\39141\src\plugins\itemmap.c(223): warning C6001: Using uninitialized memory 'amount'.
    2>Done building project "plugin-viewhg.vcxproj".
    3>Done building project "plugin-whosell.vcxproj".
    10>------ Rebuild All started: Project: plugin-HPMHooking_map, Configuration: Release Win32 ------
    4>Done building project "plugin-whobuy.vcxproj".
    5>Done building project "plugin-market.vcxproj".
    11>------ Rebuild All started: Project: plugin-sample, Configuration: Release Win32 ------
    12>------ Rebuild All started: Project: map-server, Configuration: Release Win32 ------
    13>------ Rebuild All started: Project: mapcache, Configuration: Release Win32 ------
    7>Done building project "plugin-itemmap.vcxproj".
    14>------ Rebuild All started: Project: login-server, Configuration: Release Win32 ------
    11>sample.c
    10>HPMHooking.c
    12>grammar.c
    12>libconfig.c
    12>scanctx.c
    12>scanner.c
    12>strbuf.c
    12>mt19937ar.c
    6>plugin-mapflags.vcxproj -> G:\ragnarok\experiment\2. Update\39141\plugins\mapflags.dll
    12>conf.c
    12>core.c
    12>console.c
    12>db.c
    13>core.c
    13>console.c
    13>des.c
    13>grfio.c
    10>G:\ragnarok\experiment\2. Update\39141\src\plugins\HPMHooking\HPMHooking_map.Hooks.inc(41759,35): warning C4090: 'function': different 'const' qualifiers
    13>memmgr.c
    10>G:\ragnarok\experiment\2. Update\39141\src\plugins\HPMHooking\HPMHooking_map.Hooks.inc(62642,37): warning C4090: 'function': different 'const' qualifiers
    10>G:\ragnarok\experiment\2. Update\39141\src\plugins\HPMHooking\HPMHooking_map.Hooks.inc(62642,42): warning C4047: 'function': 'int **' differs in levels of indirection from 'int *'
    10>G:\ragnarok\experiment\2. Update\39141\src\plugins\HPMHooking\HPMHooking_map.Hooks.inc(62642,39): warning C4024: 'preHookFunc': different types for formal and actual parameter 2
    10>G:\ragnarok\experiment\2. Update\39141\src\plugins\HPMHooking\HPMHooking_map.Hooks.inc(62669,37): warning C4090: 'function': different 'const' qualifiers
    10>G:\ragnarok\experiment\2. Update\39141\src\plugins\HPMHooking\HPMHooking_map.Hooks.inc(62669,42): warning C4047: 'function': 'int **' differs in levels of indirection from 'int *'
    13>showmsg.c
    10>G:\ragnarok\experiment\2. Update\39141\src\plugins\HPMHooking\HPMHooking_map.Hooks.inc(62669,39): warning C4024: 'preHookFunc': different types for formal and actual parameter 2
    13>strlib.c
    9>HPMHooking.c
    13>sysinfo.c
    14>grammar.c
    12>des.c
    15>------ Rebuild All started: Project: char-server, Configuration: Release Win32 ------
    13>utils.c
    12>ers.c
    13>nullpo.c
    14>libconfig.c
    14>scanctx.c
    14>scanner.c
    14>strbuf.c
    14>des.c
    12>grfio.c
    14>mutex.c
    14>thread.c
    13>mapcache.c
    12>HPM.c
    12>memmgr.c
    14>account_sql.c
    14>HPMlogin.c
    12>mapindex.c
    12>md5calc.c
    12>mutex.c
    12>nullpo.c
    12>random.c
    12>showmsg.c
    12>socket.c
    11>   Creating library plugin-sample\Release\sample.lib and object plugin-sample\Release\sample.exp
    12>sql.c
    15>grammar.c
    12>strlib.c
    12>sysinfo.c
    15>libconfig.c
    8>   Creating library plugin-HPMHooking_login\Release\HPMHooking_login.lib and object plugin-HPMHooking_login\Release\HPMHooking_login.exp
    15>scanctx.c
    14>ipban_sql.c
    15>scanner.c
    12>G:\ragnarok\experiment\2. Update\39141\src\common\sql.c(1059,40): warning C4090: 'function': different 'const' qualifiers
    12>G:\ragnarok\experiment\2. Update\39141\src\common\sql.c(1059,40): warning C4113: 'int (__cdecl *)(SqlStmt *,size_t,SqlDataType,void *,size_t)' differs in parameter lists from 'int (__cdecl *)(SqlStmt *,size_t,SqlDataType,const void *,size_t)'
    15>strbuf.c
    15>mt19937ar.c
    14>lclif.c
    14>login.c
    14>loginlog_sql.c
    15>conf.c
    14>conf.c
    15>core.c
    14>core.c
    12>thread.c
    15>console.c
    14>console.c
    15>db.c
    15>des.c
    12>timer.c
    12>utils.c
    12>adelays.c
    14>db.c
    15>ers.c
    12>G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(403,37): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
    12>G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(427,23): warning C4244: '=': conversion from 'int' to 'float', possible loss of data
    12>G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(431,44): warning C4244: '=': conversion from 'float' to 'int', possible loss of data
    12>G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(492,22): warning C4244: '=': conversion from 'int' to 'float', possible loss of data
    15>grfio.c
    12>G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(496,43): warning C4244: '=': conversion from 'float' to 'int', possible loss of data
    12>G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(522,22): warning C4244: '=': conversion from 'int' to 'float', possible loss of data
    12>G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(526,28): warning C4244: '=': conversion from 'float' to 'int', possible loss of data
    14>ers.c
    12>G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(530,21): warning C4244: 'return': conversion from 'float' to 'int', possible loss of data
    12>G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(534,33): warning C4244: 'return': conversion from 'float' to 'int', possible loss of data
    12>G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(584,56): warning C4244: '*=': conversion from 'float' to 'int', possible loss of data
    15>HPM.c
    12>G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(597,32): warning C4244: '*=': conversion from 'double' to 'int', possible loss of data
    12>G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(604,32): warning C4244: '*=': conversion from 'double' to 'int', possible loss of data
    12>G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(709,75): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
    12>G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(717,75): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
    12>G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(740,51): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
    15>memmgr.c
    12>G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(858,21): warning C4244: '=': conversion from 'int64' to 'int', possible loss of data
    12>G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(1008,13): warning C4244: '*=': conversion from 'double' to 'int', possible loss of data
    12>G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(1086,36): warning C4244: '-=': conversion from 'double' to 'int', possible loss of data
    12>G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(1118,34): warning C4244: '+=': conversion from 'double' to 'int', possible loss of data
    12>G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(1120,34): warning C4244: '+=': conversion from 'double' to 'int', possible loss of data
    12>atcommand.c
    12>battle.c
    15>mapindex.c
    14>grfio.c
    14>HPM.c
    12>G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(2997,4): warning C4090: 'function': different 'const' qualifiers
    12>G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(2998,34): warning C4090: 'function': different 'const' qualifiers
    14>memmgr.c
    12>battleground.c
    14>md5calc.c
    15>md5calc.c
    15>mutex.c
    15>nullpo.c
    15>random.c
    15>showmsg.c
    11>plugin-sample.vcxproj -> G:\ragnarok\experiment\2. Update\39141\plugins\sample.dll
    8>plugin-HPMHooking_login.vcxproj -> G:\ragnarok\experiment\2. Update\39141\plugins\HPMHooking_login.dll
    12>G:\ragnarok\experiment\2. Update\39141\src\map\battleground.c(122,73): warning C4020: 'function through pointer': too many actual parameters
    12>G:\ragnarok\experiment\2. Update\39141\src\map\battleground.c(142,73): warning C4020: 'function through pointer': too many actual parameters
    12>G:\ragnarok\experiment\2. Update\39141\src\map\battleground.c(404,75): warning C4020: 'function through pointer': too many actual parameters
    12>G:\ragnarok\experiment\2. Update\39141\src\map\battleground.c(589,75): warning C4020: 'function through pointer': too many actual parameters
    14>nullpo.c
    14>random.c
    12>buyingstore.c
    14>showmsg.c
    15>socket.c
    14>socket.c
    14>sql.c
    15>sql.c
    12>channel.c
    12>chat.c
    14>strlib.c
    15>strlib.c
    14>G:\ragnarok\experiment\2. Update\39141\src\common\sql.c(1059,40): warning C4090: 'function': different 'const' qualifiers
    14>G:\ragnarok\experiment\2. Update\39141\src\common\sql.c(1059,40): warning C4113: 'int (__cdecl *)(SqlStmt *,size_t,SqlDataType,void *,size_t)' differs in parameter lists from 'int (__cdecl *)(SqlStmt *,size_t,SqlDataType,const void *,size_t)'
    14>sysinfo.c
    15>sysinfo.c
    15>G:\ragnarok\experiment\2. Update\39141\src\common\sql.c(1059,40): warning C4090: 'function': different 'const' qualifiers
    15>G:\ragnarok\experiment\2. Update\39141\src\common\sql.c(1059,40): warning C4113: 'int (__cdecl *)(SqlStmt *,size_t,SqlDataType,void *,size_t)' differs in parameter lists from 'int (__cdecl *)(SqlStmt *,size_t,SqlDataType,const void *,size_t)'
    14>timer.c
    12>chrif.c
    12>clif.c
    15>thread.c
    12>G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(3284,43): warning C4133: 'function': incompatible types - from 'int *' to 'unsigned short *'
    12>G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(3284,56): warning C4133: 'function': incompatible types - from 'int *' to 'unsigned short *'
    12>G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(3292,43): warning C4133: 'function': incompatible types - from 'int *' to 'unsigned short *'
    12>G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(3292,56): warning C4133: 'function': incompatible types - from 'int *' to 'unsigned short *'
    13>Generating code
    12>G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(13612,38): warning C4020: 'function through pointer': too many actual parameters
    14>utils.c
    15>timer.c
    15>utils.c
    15>HPMchar.c
    15>char.c
    14>mt19937ar.c
    13>Finished generating code
    12>date.c
    12>duel.c
    12>elemental.c
    12>guild.c
    15>geoip.c
    15>int_auction.c
    12>intif.c
    15>int_elemental.c
    12>irc-bot.c
    15>int_guild.c
    12>itemdb.c
    12>log.c
    15>int_homun.c
    12>G:\ragnarok\experiment\2. Update\39141\src\map\itemdb.c(553,34): warning C4293: '<<': shift count negative or too big, undefined behavior
    12>G:\ragnarok\experiment\2. Update\39141\src\map\itemdb.c(555,34): warning C4293: '<<': shift count negative or too big, undefined behavior
    15>int_mail.c
    15>int_mercenary.c
    13>mapcache.vcxproj -> G:\ragnarok\experiment\2. Update\39141\mapcache.exe
    G:\ragnarok\experiment\2. Update\39141\src\common\grfio.c(770): warning C6054: String 'w2' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\common\grfio.c(917): warning C6054: String 'w1' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\common\sysinfo.c(384): warning C28159: Consider using 'IsWindows*' instead of 'GetVersionExA'. Reason: Deprecated. Use VerifyVersionInfo* or IsWindows* macros from VersionHelpers.
    G:\ragnarok\experiment\2. Update\39141\src\common\sysinfo.c(423): warning C6387: 'Temp_value_#690' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\src\common\sysinfo.c(609): warning C6387: 'Temp_value_#3043' could be '0'.
    12>mail.c
    13>Done building project "mapcache.vcxproj".
    15>int_party.c
    15>G:\ragnarok\experiment\2. Update\39141\src\char\int_party.c(320,54): warning C4018: '<=': signed/unsigned mismatch
    15>int_pet.c
    15>int_quest.c
    12>map.c
    12>mapreg_sql.c
    12>homunculus.c
    15>int_storage.c
    15>inter.c
    12>HPMmap.c
    9>   Creating library plugin-HPMHooking_char\Release\HPMHooking_char.lib and object plugin-HPMHooking_char\Release\HPMHooking_char.exp
    15>loginif.c
    15>mapif.c
    15>pincode.c
    14>   Creating library ..\login-server.lib and object ..\login-server.exp
    14>Generating code
    12>instance.c
    12>mercenary.c
    12>mob.c
    12>npc.c
    14>Finished generating code
    9>plugin-HPMHooking_char.vcxproj -> G:\ragnarok\experiment\2. Update\39141\plugins\HPMHooking_char.dll
    12>npc_chat.c
    12>party.c
    12>path.c
    12>pc.c
    12>pc_groups.c
    12>G:\ragnarok\experiment\2. Update\39141\src\map\pc.c(101,74): warning C4020: 'function through pointer': too many actual parameters
    12>G:\ragnarok\experiment\2. Update\39141\src\map\pc.c(7852,4): warning C4002: too many arguments for function-like macro invocation 'clif_disp_onlyself'
    12>G:\ragnarok\experiment\2. Update\39141\src\map\pc.c(7856,4): warning C4002: too many arguments for function-like macro invocation 'clif_disp_onlyself'
    12>pet.c
    14>login-server.vcxproj -> G:\ragnarok\experiment\2. Update\39141\login-server.exe
    12>quest.c
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\libconfig.c(228): warning C6053: The prior call to '_snprintf' might not zero-terminate string 'fbuf'.
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\libconfig.c(409): warning C6308: 'realloc' might return null pointer: assigning null pointer to 'list->elements', which is passed as an argument to 'realloc', will cause the original memory block to be leaked.
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\libconfig.c(414): warning C28182: Dereferencing NULL pointer. 'list->elements' contains the same NULL value as 'realloc()`409' did. 
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\libconfig.c(766): warning C6011: Dereferencing NULL pointer 'config->root'. 
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\libconfig.c(819): warning C6011: Dereferencing NULL pointer 'setting'. 
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\scanctx.c(57): warning C6308: 'realloc' might return null pointer: assigning null pointer to 'ctx->filenames', which is passed as an argument to 'realloc', will cause the original memory block to be leaked.
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\scanctx.c(60): warning C28182: Dereferencing NULL pointer. 'ctx->filenames' contains the same NULL value as 'realloc()`57' did. 
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\scanctx.c(112): warning C6387: 'full_file' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\scanctx.c(113): warning C6387: 'full_file' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1516): warning C6011: Dereferencing NULL pointer 'b->yy_ch_buf'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1561): warning C6011: Dereferencing NULL pointer 'yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_ch_buf'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1728): warning C6011: Dereferencing NULL pointer 'yyg->yy_buffer_stack'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1761): warning C6011: Dereferencing NULL pointer 'yyg->yy_buffer_stack'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1795): warning C6011: Dereferencing NULL pointer 'b'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1855): warning C6011: Dereferencing NULL pointer 'b'. See line 1843 for an earlier location where this can occur
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1914): warning C6011: Dereferencing NULL pointer 'yyg->yy_buffer_stack'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1963): warning C6387: 'yyg->yy_buffer_stack' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(2009): warning C6011: Dereferencing NULL pointer 'b'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(2061): warning C6011: Dereferencing NULL pointer 'buf'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(2070): warning C6011: Dereferencing NULL pointer 'b'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(2200): warning C6011: Dereferencing NULL pointer 'yyg->yy_buffer_stack'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(2215): warning C6011: Dereferencing NULL pointer 'yyg->yy_buffer_stack'. 
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\strbuf.c(50): warning C6308: 'realloc' might return null pointer: assigning null pointer to 'buf->string', which is passed as an argument to 'realloc', will cause the original memory block to be leaked.
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\strbuf.c(53): warning C6387: 'buf->string+buf->length' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\src\common\mutex.c(76): warning C28125: The function 'InitializeCriticalSection' must be called from within a try/except block.
    G:\ragnarok\experiment\2. Update\39141\src\common\mutex.c(144): warning C28125: The function 'InitializeCriticalSection' must be called from within a try/except block.
    G:\ragnarok\experiment\2. Update\39141\src\common\thread.c(232): warning C6258: Using TerminateThread does not allow proper thread clean up.
    G:\ragnarok\experiment\2. Update\39141\src\login\account_sql.c(242): warning C6031: Return value ignored: 'sscanf'.
    G:\ragnarok\experiment\2. Update\39141\src\login\login.c(1046): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\login\login.c(1095): warning C6385: Reading invalid data from 'sd->userid'.
    G:\ragnarok\experiment\2. Update\39141\src\login\login.c(1101): warning C6386: Buffer overrun while writing to 'sd->userid'.
    G:\ragnarok\experiment\2. Update\39141\src\login\login.c(1672): warning C6031: Return value ignored: 'sscanf'.
    G:\ragnarok\experiment\2. Update\39141\src\common\db.c(615): warning C28182: Dereferencing NULL pointer. 'w' contains the same NULL value as 'x_parent->left' did. 
    G:\ragnarok\experiment\2. Update\39141\src\common\grfio.c(770): warning C6054: String 'w2' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\common\grfio.c(917): warning C6054: String 'w1' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\common\HPM.c(121): warning C6031: Return value ignored: 'sscanf'.
    G:\ragnarok\experiment\2. Update\39141\src\common\HPM.c(430): warning C33010: Unchecked lower bound for enum type used as index..
    G:\ragnarok\experiment\2. Update\39141\src\common\HPM.c(796): warning C6308: 'realloc' might return null pointer: assigning null pointer to 'HPM->filenames.data', which is passed as an argument to 'realloc', will cause the original memory block to be leaked.
    G:\ragnarok\experiment\2. Update\39141\src\common\HPM.c(798): warning C28182: Dereferencing NULL pointer. 'HPM->filenames.data' contains the same NULL value as 'realloc()`796' did. 
    G:\ragnarok\experiment\2. Update\39141\src\common\HPM.c(980): warning C6031: Return value ignored: 'sscanf'.
    G:\ragnarok\experiment\2. Update\39141\src\common\HPM.c(1011): warning C6001: Using uninitialized memory '**HPM.filenames.data.name'.
    G:\ragnarok\experiment\2. Update\39141\src\common\random.c(96): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\common\random.c(96): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\common\socket.c(380): warning C6054: String 'w1' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\common\socket.c(1198): warning C6262: Function uses '16412' bytes of stack.  Consider moving some data to heap.
    G:\ragnarok\experiment\2. Update\39141\src\common\socket.c(1524): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\common\sql.c(215): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\common\sysinfo.c(384): warning C28159: Consider using 'IsWindows*' instead of 'GetVersionExA'. Reason: Deprecated. Use VerifyVersionInfo* or IsWindows* macros from VersionHelpers.
    G:\ragnarok\experiment\2. Update\39141\src\common\sysinfo.c(423): warning C6387: 'Temp_value_#690' could be '0'.
    12>script.c
    G:\ragnarok\experiment\2. Update\39141\src\common\sysinfo.c(609): warning C6387: 'Temp_value_#3043' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\src\common\timer.c(193): warning C28159: Consider using 'GetTickCount64' instead of 'GetTickCount'. Reason: GetTickCount overflows roughly every 49 days.  Code that does not take that into account can loop indefinitely.  GetTickCount64 operates on 64 bit values and does not have that problem
    12>G:\ragnarok\experiment\2. Update\39141\src\map\script.c(8612,36): warning C4090: 'function': different 'const' qualifiers
    12>searchstore.c
    12>skill.c
    12>status.c
    12>G:\ragnarok\experiment\2. Update\39141\src\map\status.c(6524,35): warning C4090: 'function': different 'const' qualifiers
    12>G:\ragnarok\experiment\2. Update\39141\src\map\status.c(6756,44): warning C4133: 'function': incompatible types - from 'int *' to 'unsigned short *'
    12>G:\ragnarok\experiment\2. Update\39141\src\map\status.c(6756,60): warning C4133: 'function': incompatible types - from 'int *' to 'unsigned short *'
    12>G:\ragnarok\experiment\2. Update\39141\src\map\status.c(11167,44): warning C4133: 'function': incompatible types - from 'int *' to 'unsigned short *'
    12>G:\ragnarok\experiment\2. Update\39141\src\map\status.c(11167,60): warning C4133: 'function': incompatible types - from 'int *' to 'unsigned short *'
    12>G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(20187,32): warning C4293: '<<': shift count negative or too big, undefined behavior
    12>G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(20189,34): warning C4293: '<<': shift count negative or too big, undefined behavior
    12>G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(20193,33): warning C4293: '<<': shift count negative or too big, undefined behavior
    12>G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(20195,35): warning C4293: '<<': shift count negative or too big, undefined behavior
    12>G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(20199,35): warning C4293: '<<': shift count negative or too big, undefined behavior
    12>G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(20201,37): warning C4293: '<<': shift count negative or too big, undefined behavior
    15>   Creating library ..\char-server.lib and object ..\char-server.exp
    15>Generating code
    12>storage.c
    14>Done building project "login-server.vcxproj".
    12>trade.c
    12>unit.c
    12>vending.c
    15>Finished generating code
    15>char-server.vcxproj -> G:\ragnarok\experiment\2. Update\39141\char-server.exe
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\libconfig.c(228): warning C6053: The prior call to '_snprintf' might not zero-terminate string 'fbuf'.
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\libconfig.c(409): warning C6308: 'realloc' might return null pointer: assigning null pointer to 'list->elements', which is passed as an argument to 'realloc', will cause the original memory block to be leaked.
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\libconfig.c(414): warning C28182: Dereferencing NULL pointer. 'list->elements' contains the same NULL value as 'realloc()`409' did. 
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\libconfig.c(766): warning C6011: Dereferencing NULL pointer 'config->root'. 
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\libconfig.c(819): warning C6011: Dereferencing NULL pointer 'setting'. 
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\scanctx.c(57): warning C6308: 'realloc' might return null pointer: assigning null pointer to 'ctx->filenames', which is passed as an argument to 'realloc', will cause the original memory block to be leaked.
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\scanctx.c(60): warning C28182: Dereferencing NULL pointer. 'ctx->filenames' contains the same NULL value as 'realloc()`57' did. 
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\scanctx.c(112): warning C6387: 'full_file' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\scanctx.c(113): warning C6387: 'full_file' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1516): warning C6011: Dereferencing NULL pointer 'b->yy_ch_buf'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1561): warning C6011: Dereferencing NULL pointer 'yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_ch_buf'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1728): warning C6011: Dereferencing NULL pointer 'yyg->yy_buffer_stack'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1761): warning C6011: Dereferencing NULL pointer 'yyg->yy_buffer_stack'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1795): warning C6011: Dereferencing NULL pointer 'b'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1855): warning C6011: Dereferencing NULL pointer 'b'. See line 1843 for an earlier location where this can occur
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1914): warning C6011: Dereferencing NULL pointer 'yyg->yy_buffer_stack'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1963): warning C6387: 'yyg->yy_buffer_stack' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(2009): warning C6011: Dereferencing NULL pointer 'b'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(2061): warning C6011: Dereferencing NULL pointer 'buf'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(2070): warning C6011: Dereferencing NULL pointer 'b'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(2200): warning C6011: Dereferencing NULL pointer 'yyg->yy_buffer_stack'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(2215): warning C6011: Dereferencing NULL pointer 'yyg->yy_buffer_stack'. 
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\strbuf.c(50): warning C6308: 'realloc' might return null pointer: assigning null pointer to 'buf->string', which is passed as an argument to 'realloc', will cause the original memory block to be leaked.
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\strbuf.c(53): warning C6387: 'buf->string+buf->length' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\src\common\db.c(615): warning C28182: Dereferencing NULL pointer. 'w' contains the same NULL value as 'x_parent->left' did. 
    G:\ragnarok\experiment\2. Update\39141\src\common\grfio.c(770): warning C6054: String 'w2' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\common\grfio.c(917): warning C6054: String 'w1' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\common\HPM.c(121): warning C6031: Return value ignored: 'sscanf'.
    G:\ragnarok\experiment\2. Update\39141\src\common\HPM.c(430): warning C33010: Unchecked lower bound for enum type used as index..
    G:\ragnarok\experiment\2. Update\39141\src\common\HPM.c(796): warning C6308: 'realloc' might return null pointer: assigning null pointer to 'HPM->filenames.data', which is passed as an argument to 'realloc', will cause the original memory block to be leaked.
    G:\ragnarok\experiment\2. Update\39141\src\common\HPM.c(798): warning C28182: Dereferencing NULL pointer. 'HPM->filenames.data' contains the same NULL value as 'realloc()`796' did. 
    G:\ragnarok\experiment\2. Update\39141\src\common\HPM.c(980): warning C6031: Return value ignored: 'sscanf'.
    G:\ragnarok\experiment\2. Update\39141\src\common\HPM.c(1011): warning C6001: Using uninitialized memory '**HPM.filenames.data.name'.
    G:\ragnarok\experiment\2. Update\39141\src\common\mapindex.c(68): warning C6031: Return value ignored: 'sscanf'.
    G:\ragnarok\experiment\2. Update\39141\src\common\mutex.c(76): warning C28125: The function 'InitializeCriticalSection' must be called from within a try/except block.
    G:\ragnarok\experiment\2. Update\39141\src\common\mutex.c(144): warning C28125: The function 'InitializeCriticalSection' must be called from within a try/except block.
    G:\ragnarok\experiment\2. Update\39141\src\common\random.c(96): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\common\random.c(96): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\common\socket.c(380): warning C6054: String 'w1' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\common\socket.c(1198): warning C6262: Function uses '16412' bytes of stack.  Consider moving some data to heap.
    G:\ragnarok\experiment\2. Update\39141\src\common\socket.c(1524): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\common\sql.c(215): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\common\sysinfo.c(384): warning C28159: Consider using 'IsWindows*' instead of 'GetVersionExA'. Reason: Deprecated. Use VerifyVersionInfo* or IsWindows* macros from VersionHelpers.
    G:\ragnarok\experiment\2. Update\39141\src\common\sysinfo.c(423): warning C6387: 'Temp_value_#690' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\src\common\sysinfo.c(609): warning C6387: 'Temp_value_#3043' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\src\common\thread.c(232): warning C6258: Using TerminateThread does not allow proper thread clean up.
    G:\ragnarok\experiment\2. Update\39141\src\common\timer.c(193): warning C28159: Consider using 'GetTickCount64' instead of 'GetTickCount'. Reason: GetTickCount overflows roughly every 49 days.  Code that does not take that into account can loop indefinitely.  GetTickCount64 operates on 64 bit values and does not have that problem
    G:\ragnarok\experiment\2. Update\39141\src\char\char.c(1187): warning C6262: Function uses '55824' bytes of stack.  Consider moving some data to heap.
    G:\ragnarok\experiment\2. Update\39141\src\char\char.c(1637): warning C6262: Function uses '55800' bytes of stack.  Consider moving some data to heap.
    G:\ragnarok\experiment\2. Update\39141\src\char\char.c(1689): warning C6262: Function uses '55836' bytes of stack.  Consider moving some data to heap.
    G:\ragnarok\experiment\2. Update\39141\src\char\char.c(3035): warning C6262: Function uses '32012' bytes of stack.  Consider moving some data to heap.
    G:\ragnarok\experiment\2. Update\39141\src\char\char.c(3120): warning C6262: Function uses '16404' bytes of stack.  Consider moving some data to heap.
    G:\ragnarok\experiment\2. Update\39141\src\char\char.c(3184): warning C6386: Buffer overrun while writing to 'skillid2idx'.
    G:\ragnarok\experiment\2. Update\39141\src\char\char.c(3198): warning C6262: Function uses '16408' bytes of stack.  Consider moving some data to heap.
    G:\ragnarok\experiment\2. Update\39141\src\char\char.c(3361): warning C6262: Function uses '55800' bytes of stack.  Consider moving some data to heap.
    G:\ragnarok\experiment\2. Update\39141\src\char\char.c(3451): warning C6262: Function uses '55800' bytes of stack.  Consider moving some data to heap.
    G:\ragnarok\experiment\2. Update\39141\src\char\char.c(3927): warning C6262: Function uses '55816' bytes of stack.  Consider moving some data to heap.
    G:\ragnarok\experiment\2. Update\39141\src\char\char.c(4731): warning C6262: Function uses '55884' bytes of stack.  Consider moving some data to heap.
    G:\ragnarok\experiment\2. Update\39141\src\char\char.c(4896): warning C6262: Function uses '55788' bytes of stack.  Consider moving some data to heap.
    G:\ragnarok\experiment\2. Update\39141\src\char\char.c(4970): warning C6054: String 'email' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\char\int_auction.c(101): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\char\int_auction.c(297): warning C6054: String 'searchtext' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\char\inter.c(134): warning C6054: String 'w1' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\char\inter.c(150): warning C6054: String 'w2' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\char\pincode.c(55): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    15>Done building project "char-server.vcxproj".
    10>   Creating library plugin-HPMHooking_map\Release\HPMHooking_map.lib and object plugin-HPMHooking_map\Release\HPMHooking_map.exp
    10>plugin-HPMHooking_map.vcxproj -> G:\ragnarok\experiment\2. Update\39141\plugins\HPMHooking_map.dll
    G:\ragnarok\experiment\2. Update\39141\src\plugins\HPMHooking.c(233): warning C6262: Function uses '48404' bytes of stack.  Consider moving some data to heap.
    10>Done building project "plugin-HPMHooking_map.vcxproj".
    12>   Creating library ..\map-server.lib and object ..\map-server.exp
    12>Generating code
    12>Finished generating code
    12>map-server.vcxproj -> G:\ragnarok\experiment\2. Update\39141\map-server.exe
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\libconfig.c(228): warning C6053: The prior call to '_snprintf' might not zero-terminate string 'fbuf'.
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\libconfig.c(409): warning C6308: 'realloc' might return null pointer: assigning null pointer to 'list->elements', which is passed as an argument to 'realloc', will cause the original memory block to be leaked.
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\libconfig.c(414): warning C28182: Dereferencing NULL pointer. 'list->elements' contains the same NULL value as 'realloc()`409' did. 
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\libconfig.c(766): warning C6011: Dereferencing NULL pointer 'config->root'. 
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\libconfig.c(819): warning C6011: Dereferencing NULL pointer 'setting'. 
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\scanctx.c(57): warning C6308: 'realloc' might return null pointer: assigning null pointer to 'ctx->filenames', which is passed as an argument to 'realloc', will cause the original memory block to be leaked.
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\scanctx.c(60): warning C28182: Dereferencing NULL pointer. 'ctx->filenames' contains the same NULL value as 'realloc()`57' did. 
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\scanctx.c(112): warning C6387: 'full_file' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\scanctx.c(113): warning C6387: 'full_file' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1516): warning C6011: Dereferencing NULL pointer 'b->yy_ch_buf'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1561): warning C6011: Dereferencing NULL pointer 'yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_ch_buf'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1728): warning C6011: Dereferencing NULL pointer 'yyg->yy_buffer_stack'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1761): warning C6011: Dereferencing NULL pointer 'yyg->yy_buffer_stack'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1795): warning C6011: Dereferencing NULL pointer 'b'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1855): warning C6011: Dereferencing NULL pointer 'b'. See line 1843 for an earlier location where this can occur
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1914): warning C6011: Dereferencing NULL pointer 'yyg->yy_buffer_stack'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(1963): warning C6387: 'yyg->yy_buffer_stack' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(2009): warning C6011: Dereferencing NULL pointer 'b'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(2061): warning C6011: Dereferencing NULL pointer 'buf'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(2070): warning C6011: Dereferencing NULL pointer 'b'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(2200): warning C6011: Dereferencing NULL pointer 'yyg->yy_buffer_stack'. 
    G:\ragnarok\experiment\2. Update\39141\vcproj-14\scanner.c(2215): warning C6011: Dereferencing NULL pointer 'yyg->yy_buffer_stack'. 
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\strbuf.c(50): warning C6308: 'realloc' might return null pointer: assigning null pointer to 'buf->string', which is passed as an argument to 'realloc', will cause the original memory block to be leaked.
    G:\ragnarok\experiment\2. Update\39141\3rdparty\libconfig\strbuf.c(53): warning C6387: 'buf->string+buf->length' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\src\common\db.c(615): warning C28182: Dereferencing NULL pointer. 'w' contains the same NULL value as 'x_parent->left' did. 
    G:\ragnarok\experiment\2. Update\39141\src\common\grfio.c(770): warning C6054: String 'w2' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\common\grfio.c(917): warning C6054: String 'w1' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\common\HPM.c(121): warning C6031: Return value ignored: 'sscanf'.
    G:\ragnarok\experiment\2. Update\39141\src\common\HPM.c(430): warning C33010: Unchecked lower bound for enum type used as index..
    G:\ragnarok\experiment\2. Update\39141\src\common\HPM.c(796): warning C6308: 'realloc' might return null pointer: assigning null pointer to 'HPM->filenames.data', which is passed as an argument to 'realloc', will cause the original memory block to be leaked.
    G:\ragnarok\experiment\2. Update\39141\src\common\HPM.c(798): warning C28182: Dereferencing NULL pointer. 'HPM->filenames.data' contains the same NULL value as 'realloc()`796' did. 
    G:\ragnarok\experiment\2. Update\39141\src\common\HPM.c(980): warning C6031: Return value ignored: 'sscanf'.
    G:\ragnarok\experiment\2. Update\39141\src\common\HPM.c(1011): warning C6001: Using uninitialized memory '**HPM.filenames.data.name'.
    G:\ragnarok\experiment\2. Update\39141\src\common\mapindex.c(68): warning C6031: Return value ignored: 'sscanf'.
    G:\ragnarok\experiment\2. Update\39141\src\common\mutex.c(76): warning C28125: The function 'InitializeCriticalSection' must be called from within a try/except block.
    G:\ragnarok\experiment\2. Update\39141\src\common\mutex.c(144): warning C28125: The function 'InitializeCriticalSection' must be called from within a try/except block.
    G:\ragnarok\experiment\2. Update\39141\src\common\random.c(96): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\common\random.c(96): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\common\socket.c(380): warning C6054: String 'w1' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\common\socket.c(1198): warning C6262: Function uses '16412' bytes of stack.  Consider moving some data to heap.
    G:\ragnarok\experiment\2. Update\39141\src\common\socket.c(1524): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\common\sql.c(215): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\common\sysinfo.c(384): warning C28159: Consider using 'IsWindows*' instead of 'GetVersionExA'. Reason: Deprecated. Use VerifyVersionInfo* or IsWindows* macros from VersionHelpers.
    G:\ragnarok\experiment\2. Update\39141\src\common\sysinfo.c(423): warning C6387: 'Temp_value_#690' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\src\common\sysinfo.c(609): warning C6387: 'Temp_value_#3043' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\src\common\thread.c(232): warning C6258: Using TerminateThread does not allow proper thread clean up.
    G:\ragnarok\experiment\2. Update\39141\src\common\timer.c(193): warning C28159: Consider using 'GetTickCount64' instead of 'GetTickCount'. Reason: GetTickCount overflows roughly every 49 days.  Code that does not take that into account can loop indefinitely.  GetTickCount64 operates on 64 bit values and does not have that problem
    G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(778): warning C28183: 'timestr' could be '0', and is a copy of the value found in 'asctime()`777'.
    G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(778): warning C28182: Dereferencing NULL pointer. 'timestr' contains the same NULL value as 'asctime()`777' did. See line 778 for an earlier location where this can occur
    G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(709): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(717): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\adelays.c(1212): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(153): warning C6054: String 'w1' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(167): warning C6054: String 'w2' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(585): warning C6031: Return value ignored: 'sscanf'.
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(639): warning C6031: Return value ignored: 'sscanf'.
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(1096): warning C6031: Return value ignored: 'sscanf'.
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(1123): warning C6031: Return value ignored: 'sscanf'.
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(3788): warning C6031: Return value ignored: 'sscanf'.
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(4804): warning C6054: String 'monster' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(5377): warning C6287: Redundant code.
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(5363): warning C6054: String 'target' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(6079): warning C6054: String 'sound_file' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(6103): warning C6054: String 'mob_name' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(6200): warning C6031: Return value ignored: 'strtok'.
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(6347): warning C6054: String 'name' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(6362): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(6781): warning C6054: String 'mob_name' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(6942): warning C6287: Redundant code.
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(7194): warning C28182: Dereferencing NULL pointer. 'item_data' contains the same NULL value as 'item_array[0]=*itemdb->exists(atoi(message))' did. 
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(7245): warning C28182: Dereferencing NULL pointer. 'item_data' contains the same NULL value as 'item_array[0]=*itemdb->exists(atoi(message))' did. 
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(8540): warning C6054: String 'val' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(8849): warning C6054: String 'subcmd' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(9731): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(9727): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(9723): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(9788): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(9784): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(9780): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(9843): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(9839): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(9835): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\atcommand.c(10064): warning C6262: Function uses '21100' bytes of stack.  Consider moving some data to heap.
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(435): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(437): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(547): warning C6011: Dereferencing NULL pointer 'src'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(607): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(632): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(637): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(682): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(684): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(686): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(692): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(768): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(764): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(760): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(756): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(748): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(752): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(742): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(744): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(735): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(737): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(725): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(727): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(729): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(719): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(709): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(711): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(826): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(823): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(809): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(835): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(837): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(891): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(944): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(1501): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(1503): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(1414): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(1456): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(1458): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(3006): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(3145): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(3220): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(3460): warning C6011: Dereferencing NULL pointer 'md'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(3777): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(3777): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(3770): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(3765): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(3765): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(3813): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(3899): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(3899): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(3910): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4232): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4219): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4219): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4219): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4220): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4220): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4216): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4216): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4213): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4207): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4207): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4207): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4209): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4194): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4180): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4169): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4169): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4171): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4161): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4144): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4144): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4122): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4064): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4061): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4057): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4057): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4046): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4048): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4029): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4029): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4029): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4029): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4039): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4958): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4925): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(4925): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5057): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5061): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5076): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5100): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5279): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5274): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5265): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5269): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5259): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5261): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5243): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5245): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5235): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5238): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5232): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5228): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5224): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5216): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5206): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5290): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5306): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5474): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5495): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5556): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5558): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5560): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5572): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5618): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5626): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5637): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(5871): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battle.c(7720): warning C6054: String 'w1' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\map\battleground.c(332): warning C28182: Dereferencing NULL pointer. 'sd' contains the same NULL value as 'pl_sd' did. See line 284 for an earlier location where this can occur
    G:\ragnarok\experiment\2. Update\39141\src\map\battleground.c(356): warning C6011: Dereferencing NULL pointer 'bg'. See line 348 for an earlier location where this can occur
    G:\ragnarok\experiment\2. Update\39141\src\map\battleground.c(404): warning C6054: String 'output' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\map\battleground.c(404): warning C6001: Using uninitialized memory 'output'.
    G:\ragnarok\experiment\2. Update\39141\src\map\battleground.c(1393): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battleground.c(1415): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\battleground.c(1490): warning C28182: Dereferencing NULL pointer. 'arena' contains the same NULL value as 'sd->guild->member[i].sd->bg_queue.arena' did. See line 1425 for an earlier location where this can occur
    G:\ragnarok\experiment\2. Update\39141\src\map\channel.c(277): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\chrif.c(457): warning C6287: Redundant code.
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(1186): warning C6011: Dereferencing NULL pointer 'bl'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(1323): warning C6011: Dereferencing NULL pointer 'bl'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(1374): warning C6011: Dereferencing NULL pointer 'sd'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(1409): warning C6011: Dereferencing NULL pointer 'bl'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(1837): warning C6011: Dereferencing NULL pointer 'sd'. See line 1828 for an earlier location where this can occur
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(2432): warning C6237: (<zero> && <expression>) is always zero.  <expression> is never evaluated and might have side effects.
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(2482): warning C6237: (<zero> && <expression>) is always zero.  <expression> is never evaluated and might have side effects.
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(2975): warning C6011: Dereferencing NULL pointer 'tsd'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(3405): warning C6011: Dereferencing NULL pointer 'vd'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(3689): warning C6011: Dereferencing NULL pointer 'bl'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(4158): warning C6011: Dereferencing NULL pointer 'sd->inventory_data[index]'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(4864): warning C6011: Dereferencing NULL pointer 'bl'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(4865): warning C6011: Dereferencing NULL pointer 'sd'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(4895): warning C6011: Dereferencing NULL pointer 'tbl'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(4921): warning C6011: Dereferencing NULL pointer 'bl'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(5734): warning C6011: Dereferencing NULL pointer 'bl'. See line 5727 for an earlier location where this can occur
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(5765): warning C6011: Dereferencing NULL pointer 'bl'. See line 5755 for an earlier location where this can occur
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(7328): warning C6011: Dereferencing NULL pointer 'bl'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(7331): warning C6011: Dereferencing NULL pointer 'sd'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(7332): warning C6011: Dereferencing NULL pointer 'hd'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(7901): warning C6385: Reading invalid data from '"AFK"'.
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(9444): warning C6385: Reading invalid data from 'packet->name'.
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(10267): warning C6001: Using uninitialized memory 'full_message'.
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(10267): warning C6054: String 'full_message' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(10267): warning C6387: 'message' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(14623): warning C6287: Redundant code.
    G:\ragnarok\experiment\2. Update\39141\src\map\clif.c(18223): warning C6011: Dereferencing NULL pointer 'bl'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\irc-bot.c(347): warning C6031: Return value ignored: 'sscanf'.
    G:\ragnarok\experiment\2. Update\39141\src\map\itemdb.c(215): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\itemdb.c(215): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\itemdb.c(259): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\itemdb.c(259): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\itemdb.c(553): warning C26452: Arithmetic overflow: Left shift count is negative or greater than or equal to the operand size which is undefined behavior (io.3).
    G:\ragnarok\experiment\2. Update\39141\src\map\itemdb.c(555): warning C26452: Arithmetic overflow: Left shift count is negative or greater than or equal to the operand size which is undefined behavior (io.3).
    G:\ragnarok\experiment\2. Update\39141\src\map\itemdb.c(2063): warning C6262: Function uses '33092' bytes of stack.  Consider moving some data to heap.
    G:\ragnarok\experiment\2. Update\39141\src\map\map.c(1472): warning C6011: Dereferencing NULL pointer 'fitem'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\map.c(2882): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\map.c(2926): warning C6262: Function uses '262164' bytes of stack.  Consider moving some data to heap.
    G:\ragnarok\experiment\2. Update\39141\src\map\instance.c(656): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\instance.c(678): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\mob.c(203): warning C6385: Reading invalid data from 'map->list[m].npc'.
    G:\ragnarok\experiment\2. Update\39141\src\map\mob.c(204): warning C6386: Buffer overrun while writing to 'map->list[m].npc'.
    G:\ragnarok\experiment\2. Update\39141\src\map\mob.c(938): warning C6011: Dereferencing NULL pointer 'md'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\mob.c(2295): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\mob.c(2295): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\mob.c(2315): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\mob.c(2435): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\mob.c(2435): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\mob.c(2443): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\mob.c(2445): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\mob.c(3408): warning C6031: Return value ignored: 'strtok'.
    G:\ragnarok\experiment\2. Update\39141\src\map\npc.c(356): warning C6385: Reading invalid data from 'sd->eventqueue[1]'.
    G:\ragnarok\experiment\2. Update\39141\src\map\npc.c(356): warning C6386: Buffer overrun while writing to 'sd->eventqueue[0]'.
    G:\ragnarok\experiment\2. Update\39141\src\map\npc.c(2269): warning C6385: Reading invalid data from 'map->list[m].npc'.
    G:\ragnarok\experiment\2. Update\39141\src\map\npc.c(2270): warning C6386: Buffer overrun while writing to 'map->list[m].npc'.
    G:\ragnarok\experiment\2. Update\39141\src\map\npc.c(4208): warning C6387: 'w4' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\src\map\npc.c(4210): warning C6054: String 'drop_arg1' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\map\npc.c(4214): warning C6054: String 'drop_arg2' might not be zero-terminated.
    G:\ragnarok\experiment\2. Update\39141\src\map\npc.c(4565): warning C6387: 'w4' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\src\map\npc.c(4721): warning C6031: Return value ignored: 'sscanf'.
    G:\ragnarok\experiment\2. Update\39141\src\map\npc.c(4782): warning C6031: Return value ignored: 'sscanf'.
    G:\ragnarok\experiment\2. Update\39141\src\map\party.c(979): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\party.c(985): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\path.c(258): warning C6262: Function uses '16548' bytes of stack.  Consider moving some data to heap.
    G:\ragnarok\experiment\2. Update\39141\src\map\path.c(499): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\path.c(499): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\pc.c(6902): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\pc.c(6902): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\pc.c(8461): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\pc.c(8638): warning C33011: Unchecked upper bound for enum sc used as index..
    G:\ragnarok\experiment\2. Update\39141\src\map\pc.c(11147): warning C6262: Function uses '25152' bytes of stack.  Consider moving some data to heap.
    G:\ragnarok\experiment\2. Update\39141\src\map\pet.c(204): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\pet.c(431): warning C6011: Dereferencing NULL pointer 'sd->pd'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\pet.c(714): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\pet.c(717): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\pet.c(1168): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\pet.c(1174): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(1353): warning C6260: sizeof * sizeof is usually wrong.  Did you intend to use a character count or a byte count?
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(1354): warning C6260: sizeof * sizeof is usually wrong.  Did you intend to use a character count or a byte count?
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(1361): warning C6260: sizeof * sizeof is usually wrong.  Did you intend to use a character count or a byte count?
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(1362): warning C6260: sizeof * sizeof is usually wrong.  Did you intend to use a character count or a byte count?
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(6235): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(7010): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(7011): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(7018): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(7019): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(7028): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(7132): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(7514): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(7517): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(10161): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(10210): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(10207): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(10204): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(10686): warning C6011: Dereferencing NULL pointer 'md'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(11163): warning C6387: 'fontColor' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(11175): warning C6387: 'fontColor' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(11187): warning C6387: 'fontColor' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(11199): warning C6387: 'fontColor' could be '0'.
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(12013): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(13852): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(14325): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(14759): warning C6031: Return value ignored: 'strtok'.
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(15839): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(15848): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(15852): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(17177): warning C28182: Dereferencing NULL pointer. 'items[i]' contains the same NULL value as 'items[0]=*itemdb->exists(atoi(itemname))' did. 
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(18554): warning C6011: Dereferencing NULL pointer 'data'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(19159): warning C6031: Return value ignored: 'strtok'.
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(21338): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(22773): warning C6011: Dereferencing NULL pointer 'nd->u.scr.shop'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\script.c(23260): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(2361): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(2829): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(2917): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(3219): warning C6011: Dereferencing NULL pointer 'hd'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(4620): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(4557): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(4557): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(4251): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(3943): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(9648): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(7506): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(7203): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(7203): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(7211): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(7213): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(7250): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(7251): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(7253): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(11435): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(11339): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(11067): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(11073): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(12493): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(12603): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(12526): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(14604): warning C6236: (<expression> || <non-zero constant>) is always a non-zero constant.
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(14780): warning C6236: (<expression> || <non-zero constant>) is always a non-zero constant.
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(17031): warning C6011: Dereferencing NULL pointer 'group->unit.data'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(18376): warning C6001: Using uninitialized memory 'class_'.
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(20199): warning C26452: Arithmetic overflow: Left shift count is negative or greater than or equal to the operand size which is undefined behavior (io.3).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(20193): warning C26452: Arithmetic overflow: Left shift count is negative or greater than or equal to the operand size which is undefined behavior (io.3).
    G:\ragnarok\experiment\2. Update\39141\src\map\skill.c(20187): warning C26452: Arithmetic overflow: Left shift count is negative or greater than or equal to the operand size which is undefined behavior (io.3).
    G:\ragnarok\experiment\2. Update\39141\src\map\status.c(2721): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\status.c(2746): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\status.c(4151): warning C6011: Dereferencing NULL pointer 'ed'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\status.c(6129): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\status.c(6131): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\status.c(6133): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\status.c(6135): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\status.c(6165): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\status.c(6167): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\status.c(10807): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\status.c(11984): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\status.c(11917): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\status.c(11911): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\status.c(11805): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\status.c(11796): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\status.c(11788): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\status.c(11780): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\status.c(11748): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\status.c(11670): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\status.c(11417): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\status.c(11417): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\status.c(11419): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
    G:\ragnarok\experiment\2. Update\39141\src\map\status.c(12177): warning C6011: Dereferencing NULL pointer 'bl'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\unit.c(772): warning C6011: Dereferencing NULL pointer 'bl'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\unit.c(851): warning C6011: Dereferencing NULL pointer 'bl'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\unit.c(1901): warning C6011: Dereferencing NULL pointer 'src'. 
    G:\ragnarok\experiment\2. Update\39141\src\map\vending.c(148): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
    12>G:\ragnarok\experiment\2. Update\39141\vcproj-14\map-server.vcxproj(300,5): warning MSB3030: Could not copy the file "..\conf\import-tmpl\packet_conf.txt" because it was not found.
    12>G:\ragnarok\experiment\2. Update\39141\vcproj-14\map-server.vcxproj(301,5): warning MSB3030: Could not copy the file "..\conf\import-tmpl\script_conf.txt" because it was not found.
    12>Done building project "map-server.vcxproj".
    ========== Rebuild All: 15 succeeded, 0 failed, 0 skipped ==========

    here my result of web service debugger


  5. 3 hours ago, hendra814 said:

    you must check your script. make sure noloot mapflag are not assign in your script.

     

    im sure that there is no loot mapflag active in that map actually not only in pront all maps before it is ok when i start updating my emulator i encounter that problem

     


  6. 24 minutes ago, ProjectX said:

    Sorry mixed it up. The real problem is when you're wearing a DAGGER sprite it won't show up for both hands and will use the default dagger so the only solution to this right now is to use a katar costume weapon that looks like a dagger hehehe...

    is it working can i see?


  7. 1 hour ago, ProjectX said:

    This is really cool addition the only problem is that Assassin does not have sprite for this. Katar always shows as dagger sprite. Not sure if this issue exists on all the latest clients.

    are you wearing katar but it shows dagger? maybe you need to equip same weapon class for this?


  8. On 2/24/2023 at 2:25 PM, Kuya Jeo said:

    Check your group.conf and find skill_unconditional this must be FALSE

    { id: 99 name: "Admin" level: 99 inherit: ( "Support", "Law Enforcement" ) commands: { /* not necessary due to all_commands: true */ } log_commands: true permissions: { can_trade: true can_trade_bound: false can_party: true all_skill: false all_equipment: false skill_unconditional: false use_check: true use_changemaptype: true all_commands: true hchsys_admin: true use_macro_interface: true } }

    
    {
    	id: 99
    	name: "Admin"
    	level: 99
    	inherit: ( "Support", "Law Enforcement" )
    	commands: {
    		/* not necessary due to all_commands: true */
    	}
    	log_commands: true
    	permissions: {
    		can_trade: true
    		can_trade_bound: false
    		can_party: true
    		all_skill: false
    		all_equipment: false
    		skill_unconditional: false
    		use_check: true
    		use_changemaptype: true
    		all_commands: true
    		hchsys_admin: true
    		use_macro_interface: true
    	}
    }

     

    i already checked this im using normal players account


  9. 7 hours ago, 4144 said:

    what are you doing?

    look like you try to apply default hercules commits to outdated hercules? but why?

    you said something about plugins...

     

    i actually updating my old hercules revision to the latest revision a little by little then i found some solution to the other error but this time it messed up with my mapflag plugins


  10. now i got this error

    no warning at compiler after iapplied this patch

     

    any idea how to fix that

     

    Index: src/char/Makefile.in
    ===================================================================
    --- src/char/Makefile.in	(revision 38855)
    +++ src/char/Makefile.in	(revision 38857)
    @@ -23,7 +23,7 @@
     CONFIG_H = $(wildcard $(CONFIG_D)/*.h) $(wildcard $(CONFIG_D)/*/*.h)
     
     COMMON_D = ../common
    -COMMON_H = $(filter-out %.p.h, $(wildcard $(COMMON_D)/*.h))
    +COMMON_H = $(filter-out %.p.h, $(wildcard $(COMMON_D)/*.h)) ../plugins/HPMHooking.h
     SYSINFO_INC = $(COMMON_D)/sysinfo.inc
     COMMON_INCLUDE = -I..
     
    Index: src/common/HPM.c
    ===================================================================
    --- src/common/HPM.c	(revision 38855)
    +++ src/common/HPM.c	(revision 38857)
    @@ -38,6 +38,7 @@
     #include "common/timer.h"
     #include "common/utils.h"
     #include "common/nullpo.h"
    +#include "plugins/HPMHooking.h"
     
     #include <stdio.h>
     #include <stdlib.h>
    @@ -51,6 +52,7 @@
     struct malloc_interface *HPMiMalloc;
     struct HPM_interface HPM_s;
     struct HPM_interface *HPM;
    +struct HPMHooking_core_interface HPMHooking_core_s;
     
     /**
      * (char*) data name -> (unsigned int) HPMDataCheck[] index
    @@ -341,13 +343,13 @@
     /* TODO: add ability for tracking using pID for the upcoming runtime load/unload support. */
     bool HPM_AddHook(enum HPluginHookType type, const char *target, void *hook, unsigned int pID)
     {
    -	if (!HPM->hooking) {
    +	if (!HPM->hooking->enabled) {
     		ShowError("HPM:AddHook Fail! '%s' tried to hook to '%s' but HPMHooking is disabled!\n",HPM->pid2name(pID),target);
     		return false;
     	}
     	/* search if target is a known hook point within 'common' */
     	/* if not check if a sub-hooking list is available (from the server) and run it by */
    -	if (HPM->addhook_sub && HPM->addhook_sub(type,target,hook,pID))
    +	if (HPM->hooking->addhook_sub != NULL && HPM->hooking->addhook_sub(type,target,hook,pID))
     		return true;
     
     	ShowError("HPM:AddHook: unknown Hooking Point '%s'!\n",target);
    @@ -358,12 +360,12 @@
     void HPM_HookStop(const char *func, unsigned int pID)
     {
     	/* track? */
    -	HPM->force_return = true;
    +	HPM->hooking->force_return = true;
     }
     
    -bool HPM_HookStopped (void)
    +bool HPM_HookStopped(void)
     {
    -	return HPM->force_return;
    +	return HPM->hooking->force_return;
     }
     
     /**
    @@ -567,16 +569,20 @@
     	plugin->hpi->addToHPData        = hplugins_addToHPData;
     	plugin->hpi->getFromHPData      = hplugins_getFromHPData;
     	plugin->hpi->removeFromHPData   = hplugins_removeFromHPData;
    -	plugin->hpi->AddHook            = HPM_AddHook;
    -	plugin->hpi->HookStop           = HPM_HookStop;
    -	plugin->hpi->HookStopped        = HPM_HookStopped;
     	plugin->hpi->addArg             = hpm_add_arg;
     	plugin->hpi->addConf            = hplugins_addconf;
    +	if ((plugin->hpi->hooking = plugin_import(plugin->dll, "HPMHooking_s", struct HPMHooking_interface *)) != NULL) {
    +		plugin->hpi->hooking->AddHook     = HPM_AddHook;
    +		plugin->hpi->hooking->HookStop    = HPM_HookStop;
    +		plugin->hpi->hooking->HookStopped = HPM_HookStopped;
    +	}
     	/* server specific */
     	if( HPM->load_sub )
     		HPM->load_sub(plugin);
     
    -	ShowStatus("HPM: Loaded plugin '"CL_WHITE"%s"CL_RESET"' (%s).\n", plugin->info->name, plugin->info->version);
    +	ShowStatus("HPM: Loaded plugin '"CL_WHITE"%s"CL_RESET"' (%s)%s.\n",
    +			plugin->info->name, plugin->info->version,
    +			plugin->hpi->hooking != NULL ? " built with HPMHooking support" : "");
     
     	return plugin;
     }
    @@ -660,12 +666,13 @@
     					bool (*addhook_sub) (enum HPluginHookType type, const char *target, void *hook, unsigned int pID);
     					if ((func = plugin_import(plugin->dll, "Hooked",const char * (*)(bool *))) != NULL
     					 && (addhook_sub = plugin_import(plugin->dll, "HPM_Plugin_AddHook",bool (*)(enum HPluginHookType, const char *, void *, unsigned int))) != NULL) {
    -						const char *failed = func(&HPM->force_return);
    +						const char *failed = func(&HPM->hooking->force_return);
     						if (failed) {
     							ShowError("HPM: failed to retrieve '%s' for '"CL_WHITE"%s"CL_RESET"'!\n", failed, plugin_name);
     						} else {
    -							HPM->hooking = true;
    -							HPM->addhook_sub = addhook_sub;
    +							HPM->hooking->enabled = true;
    +							HPM->hooking->addhook_sub = addhook_sub;
    +							HPM->hooking->Hooked = func; // The purpose of this is type-checking 'func' at compile time.
     						}
     					}
     				}
    @@ -1046,11 +1053,10 @@
     void hpm_defaults(void)
     {
     	HPM = &HPM_s;
    +	HPM->hooking = &HPMHooking_core_s;
     
     	memset(&HPM->filenames, 0, sizeof(HPM->filenames));
     	VECTOR_INIT(HPM->cmdline_load_plugins);
    -	HPM->force_return = false;
    -	HPM->hooking = false;
     	/* */
     	HPM->init = hpm_init;
     	HPM->final = hpm_final;
    @@ -1067,7 +1073,6 @@
     	HPM->pid2name = hplugins_id2name;
     	HPM->parse_packets = hplugins_parse_packets;
     	HPM->load_sub = NULL;
    -	HPM->addhook_sub = NULL;
     	HPM->parseConf = hplugins_parse_conf;
     	HPM->getBattleConf = hplugins_get_battle_conf;
     	HPM->DataCheck = HPM_DataCheck;
    @@ -1078,4 +1083,9 @@
     	HPM->data_store_create = hplugin_data_store_create;
     	HPM->data_store_validate = hplugin_data_store_validate;
     	HPM->data_store_validate_sub = NULL;
    +
    +	HPM->hooking->enabled = false;
    +	HPM->hooking->force_return = false;
    +	HPM->hooking->addhook_sub = NULL;
    +	HPM->hooking->Hooked = NULL;
     }
    Index: src/common/HPM.h
    ===================================================================
    --- src/common/HPM.h	(revision 38855)
    +++ src/common/HPM.h	(revision 38857)
    @@ -65,6 +65,8 @@
     
     #endif // WIN32
     
    +struct HPMHooking_core_interface;
    +
     struct hplugin {
     	DLL dll;
     	unsigned int idx;
    @@ -126,9 +128,6 @@
     	/* vars */
     	unsigned int version[2];
     	bool off;
    -	bool hooking;
    -	/* hooking */
    -	bool force_return;
     	/* data */
     	VECTOR_DECL(struct hplugin *) plugins;
     	VECTOR_DECL(struct hpm_symbol *) symbols;
    @@ -159,7 +158,6 @@
     	char *(*pid2name) (unsigned int pid);
     	unsigned char (*parse_packets) (int fd, int packet_id, enum HPluginPacketHookingPoints point);
     	void (*load_sub) (struct hplugin *plugin);
    -	bool (*addhook_sub) (enum HPluginHookType type, const char *target, void *hook, unsigned int pID);
     	/* for custom config parsing */
     	bool (*parseConf) (const char *w1, const char *w2, enum HPluginConfType point);
     	bool (*getBattleConf) (const char* w1, int *value);
    @@ -173,6 +171,9 @@
     	bool (*data_store_validate) (enum HPluginDataTypes type, struct hplugin_data_store **storeptr, bool initialize);
     	/* for server-specific HPData e.g. map_session_data */
     	bool (*data_store_validate_sub) (enum HPluginDataTypes type, struct hplugin_data_store **storeptr, bool initialize);
    +
    +	/* hooking */
    +	struct HPMHooking_core_interface *hooking;
     };
     
     CMDLINEARG(loadplugin);
    Index: src/common/HPMi.h
    ===================================================================
    --- src/common/HPMi.h	(revision 38855)
    +++ src/common/HPMi.h	(revision 38857)
    @@ -25,6 +25,7 @@
     #include "common/core.h"
     #include "common/showmsg.h"
     
    +struct HPMHooking_interface;
     struct Sql; // common/sql.h
     struct script_state;
     struct AtCommandInfo;
    @@ -32,7 +33,7 @@
     struct map_session_data;
     struct hplugin_data_store;
     
    -#define HPM_VERSION "1.1"
    +#define HPM_VERSION "1.2"
     #define HPM_ADDCONF_LENGTH 40
     
     struct hplugin_info {
    @@ -71,11 +72,6 @@
     	hpPHP_MAX,
     };
     
    -enum HPluginHookType {
    -	HOOK_TYPE_PRE,
    -	HOOK_TYPE_POST,
    -};
    -
     /**
      * Data types for plugin custom data.
      */
    @@ -107,13 +103,6 @@
     	HPCT_MAX,
     };
     
    -#define addHookPre(tname,hook) (HPMi->AddHook(HOOK_TYPE_PRE,(tname),(hook),HPMi->pid))
    -#define addHookPost(tname,hook) (HPMi->AddHook(HOOK_TYPE_POST,(tname),(hook),HPMi->pid))
    -/* need better names ;/ */
    -/* will not run the original function after pre-hook processing is complete (other hooks will run) */
    -#define hookStop() (HPMi->HookStop(__func__,HPMi->pid))
    -#define hookStopped() (HPMi->HookStopped())
    -
     #define addArg(name, param,func,help) (HPMi->addArg(HPMi->pid,(name),(param),(cmdline_arg_ ## func),(help)))
     /* HPData handy redirects */
     /* session[] */
    @@ -231,10 +220,6 @@
     	void (*removeFromHPData) (enum HPluginDataTypes type, uint32 pluginID, struct hplugin_data_store *store, uint32 classid);
     	/* packet */
     	bool (*addPacket) (unsigned short cmd, unsigned short length, void (*receive)(int fd), unsigned int point, unsigned int pluginID);
    -	/* Hooking */
    -	bool (*AddHook) (enum HPluginHookType type, const char *target, void *hook, unsigned int pID);
    -	void (*HookStop) (const char *func, unsigned int pID);
    -	bool (*HookStopped) (void);
     	/* program --arg/-a */
     	bool (*addArg) (unsigned int pluginID, char *name, bool has_param, CmdlineExecFunc func, const char *help);
     	/* battle-config recv param */
    @@ -243,6 +228,9 @@
     	void (*addPCGPermission) (unsigned int pluginID, char *name, unsigned int *mask);
     
     	struct Sql *sql_handle;
    +
    +	/* Hooking */
    +	struct HPMHooking_interface *hooking;
     };
     #ifdef HERCULES_CORE
     #define HPM_SYMBOL(n, s) (HPM->share((s), (n)), true)
    Index: src/common/Makefile.in
    ===================================================================
    --- src/common/Makefile.in	(revision 38855)
    +++ src/common/Makefile.in	(revision 38857)
    @@ -50,7 +50,8 @@
     COMMON_H = atomic.h cbasetypes.h conf.h console.h core.h db.h des.h ers.h \
                grfio.h hercules.h HPM.h HPMi.h memmgr.h mapindex.h md5calc.h \
                mmo.h mutex.h nullpo.h random.h showmsg.h socket.h spinlock.h \
    -           sql.h strlib.h sysinfo.h thread.h timer.h utils.h winapi.h
    +           sql.h strlib.h sysinfo.h thread.h timer.h utils.h winapi.h \
    +	   ../plugins/HPMHooking.h
     COMMON_PH =
     
     COMMON_SQL_OBJ = obj_sql/sql.o
    Index: src/common/strlib.c
    ===================================================================
    --- src/common/strlib.c	(revision 38855)
    +++ src/common/strlib.c	(revision 38857)
    @@ -629,7 +629,6 @@
     	svstate.opt = opt;
     	svstate.delim = delim;
     	svstate.done = false;
    -	svstate.start = 0;
     
     	// parse
     	count = 0;
    Index: src/login/Makefile.in
    ===================================================================
    --- src/login/Makefile.in	(revision 38855)
    +++ src/login/Makefile.in	(revision 38857)
    @@ -23,7 +23,7 @@
     CONFIG_H = $(wildcard $(CONFIG_D)/*.h) $(wildcard $(CONFIG_D)/*/*.h)
     
     COMMON_D = ../common
    -COMMON_H = $(filter-out %.p.h, $(wildcard $(COMMON_D)/*.h))
    +COMMON_H = $(filter-out %.p.h, $(wildcard $(COMMON_D)/*.h)) ../plugins/HPMHooking.h
     SYSINFO_INC = $(COMMON_D)/sysinfo.inc
     COMMON_INCLUDE = -I..
     
    Index: src/map/Makefile.in
    ===================================================================
    --- src/map/Makefile.in	(revision 38855)
    +++ src/map/Makefile.in	(revision 38857)
    @@ -23,7 +23,7 @@
     CONFIG_H = $(wildcard $(CONFIG_D)/*.h) $(wildcard $(CONFIG_D)/*/*.h)
     
     COMMON_D = ../common
    -COMMON_H = $(filter-out %.p.h, $(wildcard $(COMMON_D)/*.h))
    +COMMON_H = $(filter-out %.p.h, $(wildcard $(COMMON_D)/*.h)) ../plugins/HPMHooking.h
     SYSINFO_INC = $(COMMON_D)/sysinfo.inc
     COMMON_INCLUDE = -I..
     
    Index: src/plugins/HPMHooking.c
    ===================================================================
    --- src/plugins/HPMHooking.c	(revision 38855)
    +++ src/plugins/HPMHooking.c	(revision 38857)
    @@ -17,6 +17,9 @@
      * You should have received a copy of the GNU General Public License
      * along with this program.  If not, see <http://www.gnu.org/licenses/>.
      */
    +
    +#include "HPMHooking.h"
    +
     #include "common/hercules.h"
     #include "common/db.h"
     #include "common/memmgr.h"
    Index: src/plugins/HPMHooking.h
    ===================================================================
    --- src/plugins/HPMHooking.h	(nonexistent)
    +++ src/plugins/HPMHooking.h	(revision 38857)
    @@ -0,0 +1,65 @@
    +/**
    + * This file is part of Hercules.
    + * http://herc.ws - http://github.com/HerculesWS/Hercules
    + *
    + * Copyright (C) 2016  Hercules Dev Team
    + *
    + * Hercules is free software: you can redistribute it and/or modify
    + * it under the terms of the GNU General Public License as published by
    + * the Free Software Foundation, either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
    + */
    +#ifndef PLUGINS_HPMHOOKING_H
    +#define PLUGINS_HPMHOOKING_H
    +
    +#include "common/hercules.h"
    +
    +enum HPluginHookType {
    +	HOOK_TYPE_PRE,
    +	HOOK_TYPE_POST,
    +};
    +
    +struct HPMHooking_interface {
    +	bool (*AddHook) (enum HPluginHookType type, const char *target, void *hook, unsigned int pID);
    +	void (*HookStop) (const char *func, unsigned int pID);
    +	bool (*HookStopped) (void);
    +};
    +
    +#ifdef HERCULES_CORE
    +struct HPMHooking_core_interface {
    +	bool enabled;
    +	bool force_return;
    +	bool (*addhook_sub) (enum HPluginHookType type, const char *target, void *hook, unsigned int pID);
    +	const char *(*Hooked)(bool *fr);
    +};
    +#else // ! HERCULES_CORE
    +HPExport struct HPMHooking_interface HPMHooking_s;
    +
    +#include "HPMHooking/HPMHooking.Defs.inc"
    +
    +#define addHookPre(ifname, funcname, hook) ( \
    +		(void)((HPMHOOK_pre_ ## ifname ## _ ## funcname)0 == (hook)), \
    +		HPMi->hooking->AddHook(HOOK_TYPE_PRE, #ifname "->" #funcname, (hook), HPMi->pid) \
    +		)
    +
    +#define addHookPost(ifname, funcname, hook) ( \
    +		(void)((HPMHOOK_post_ ## ifname ## _ ## funcname)0 == (hook)), \
    +		HPMi->hooking->AddHook(HOOK_TYPE_POST, #ifname "->" #funcname, (hook), HPMi->pid) \
    +		)
    +
    +/* need better names ;/ */
    +/* will not run the original function after pre-hook processing is complete (other hooks will run) */
    +#define hookStop() (HPMi->hooking->HookStop(__func__,HPMi->pid))
    +#define hookStopped() (HPMi->hooking->HookStopped())
    +
    +#endif // ! HERCULES_CORE
    +
    +#endif // PLUGINS_HPMHOOKING_H
    Index: src/plugins/HPMHooking/HPMHooking.Defs.inc
    ===================================================================
    --- src/plugins/HPMHooking/HPMHooking.Defs.inc	(nonexistent)
    +++ src/plugins/HPMHooking/HPMHooking.Defs.inc	(revision 38857)
    @@ -0,0 +1,24 @@
    +/**
    + * This file is part of Hercules.
    + * http://herc.ws - http://github.com/HerculesWS/Hercules
    + *
    + * Copyright (C) 2013-2016  Hercules Dev Team
    + *
    + * Hercules is free software: you can redistribute it and/or modify
    + * it under the terms of the GNU General Public License as published by
    + * the Free Software Foundation, either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/*
    + * NOTE: This file was auto-generated and should never be manually edited,
    + *       as it will get overwritten.
    + */
    Index: src/plugins/Makefile.in
    ===================================================================
    --- src/plugins/Makefile.in	(revision 38855)
    +++ src/plugins/Makefile.in	(revision 38857)
    @@ -47,7 +47,7 @@
     
     COMMON_D = ../common
     # Includes private headers (plugins might need them)
    -COMMON_H = $(wildcard $(COMMON_D)/*.h)
    +COMMON_H = $(wildcard $(COMMON_D)/*.h) ../plugins/HPMHooking.h
     COMMON_INCLUDE = -I..
     
     THIRDPARTY_INCLUDE = -I../../3rdparty
    Index: src/plugins/sample.c
    ===================================================================
    --- src/plugins/sample.c	(revision 38855)
    +++ src/plugins/sample.c	(revision 38857)
    @@ -29,6 +29,7 @@
     #include "map/pc.h"
     #include "map/script.h"
     
    +#include "plugins/HPMHooking.h"
     #include "common/HPMDataCheck.h" /* should always be the last Hercules file included! (if you don't make it last, it'll intentionally break compile time) */
     
     #include <stdio.h>
    @@ -199,13 +200,13 @@
     		/* in this sample we add a PreHook to pc->dropitem */
     		/* to identify whether the item being dropped is on amount higher than 1 */
     		/* if so, it stores the amount on a variable (my_pc_dropitem_storage) and changes the amount to 1 */
    -		addHookPre("pc->dropitem",my_pc_dropitem_pre);
    +		addHookPre(pc, dropitem, my_pc_dropitem_pre);
     
     		/* in this sample we add a PostHook to pc->dropitem */
     		/* if the original pc->dropitem was successful and the amount stored on my_pc_dropitem_storage is higher than 1, */
     		/* our posthook will display a message to the user about the cap */
     		/* - by checking whether it was successful (retVal value) it allows for the originals conditions to take place */
    -		addHookPost("pc->dropitem",my_pc_dropitem_post);
    +		addHookPost(pc, dropitem, my_pc_dropitem_post);
     	}
     }
     /* triggered when server starts loading, before any server-specific data is set */
    Index: tools/HPMHookGen/HPMHookGen.pl
    ===================================================================
    --- tools/HPMHookGen/HPMHookGen.pl	(revision 38855)
    +++ tools/HPMHookGen/HPMHookGen.pl	(revision 38857)
    @@ -460,31 +460,13 @@
     }
     
     my $year = (localtime)[5] + 1900;
    -foreach my $servertype (keys %keys) {
    -	my $keysref = $keys{$servertype};
    -	# Some interfaces use different names
    -	my %exportsymbols = map {
    -		$_ => &{ sub ($) {
    -			return 'battlegrounds' if $_ =~ /^bg$/;
    -			return 'pc_groups' if $_ =~ /^pcg$/;
    -			return $_;
    -		}}($_);
    -	} @$keysref;
     
    -	my ($maxlen, $idx) = (0, 0);
    -	my $fname;
    -
    -	if ($servertype eq 'all') {
    -		$fname = "../../src/common/HPMSymbols.inc.h";
    -		open(FH, ">", $fname)
    -			or die "cannot open > $fname: $!";
    -
    -		print FH <<"EOF";
    +my $fileheader = <<"EOF";
     /**
      * This file is part of Hercules.
      * http://herc.ws - http://github.com/HerculesWS/Hercules
      *
    - * Copyright (C) 2015-$year  Hercules Dev Team
    + * Copyright (C) 2013-$year  Hercules Dev Team
      *
      * Hercules is free software: you can redistribute it and/or modify
      * it under the terms of the GNU General Public License as published by
    @@ -504,7 +486,29 @@
      * NOTE: This file was auto-generated and should never be manually edited,
      *       as it will get overwritten.
      */
    +EOF
     
    +foreach my $servertype (keys %keys) {
    +	my $keysref = $keys{$servertype};
    +	# Some interfaces use different names
    +	my %exportsymbols = map {
    +		$_ => &{ sub ($) {
    +			return 'battlegrounds' if $_ =~ /^bg$/;
    +			return 'pc_groups' if $_ =~ /^pcg$/;
    +			return $_;
    +		}}($_);
    +	} @$keysref;
    +
    +	my ($maxlen, $idx) = (0, 0);
    +	my $fname;
    +
    +	if ($servertype eq 'all') {
    +		$fname = "../../src/common/HPMSymbols.inc.h";
    +		open(FH, ">", $fname)
    +			or die "cannot open > $fname: $!";
    +
    +		print FH <<"EOF";
    +$fileheader
     #if !defined(HERCULES_CORE)
     EOF
     
    @@ -538,6 +542,36 @@
     }
     EOF
     		close FH;
    +
    +		$fname = "../../src/plugins/HPMHooking/HPMHooking.Defs.inc";
    +		open(FH, ">", $fname)
    +			or die "cannot open > $fname: $!";
    +
    +		print FH <<"EOF";
    +$fileheader
    +EOF
    +
    +		foreach my $key (@$keysref) {
    +			print FH <<"EOF";
    +#ifdef $fileguards{$key}->{guard} /* $key */
    +EOF
    +
    +			foreach my $if (@{ $ifs{$key} }) {
    +				my ($predef, $postdef) = ($if->{predef}, $if->{postdef});
    +				$predef =~ s/preHookFunc/HPMHOOK_pre_${key}_$if->{name}/;
    +				$postdef =~ s/postHookFunc/HPMHOOK_post_${key}_$if->{name}/;
    +
    +				print FH <<"EOF";
    +typedef $predef
    +typedef $postdef
    +EOF
    +			}
    +			print FH <<"EOF";
    +#endif // $fileguards{$key}->{guard}
    +EOF
    +		}
    +		close FH;
    +
     		next;
     	}
     
    @@ -546,30 +580,7 @@
     		or die "cannot open > $fname: $!";
     
     	print FH <<"EOF";
    -/**
    - * This file is part of Hercules.
    - *
    - * Copyright (C) 2013-$year  Hercules Dev Team
    - *
    - * Hercules is free software: you can redistribute it and/or modify
    - * it under the terms of the GNU General Public License as published by
    - * the Free Software Foundation, either version 3 of the License, or
    - * (at your option) any later version.
    - *
    - * This program is distributed in the hope that it will be useful,
    - * but WITHOUT ANY WARRANTY; without even the implied warranty of
    - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    - * GNU General Public License for more details.
    - *
    - * You should have received a copy of the GNU General Public License
    - * along with this program.  If not, see <http://www.gnu.org/licenses/>.
    - */
    -
    -/*
    - * NOTE: This file was auto-generated and should never be manually edited,
    - *       as it will get overwritten.
    - */
    -
    +$fileheader
     struct HookingPointData HookingPoints[] = {
     EOF
     
    @@ -597,31 +608,7 @@
     		or die "cannot open > $fname: $!";
     
     	print FH <<"EOF";
    -/**
    - * This file is part of Hercules.
    - * http://herc.ws - http://github.com/HerculesWS/Hercules
    - *
    - * Copyright (C) 2013-$year  Hercules Dev Team
    - *
    - * Hercules is free software: you can redistribute it and/or modify
    - * it under the terms of the GNU General Public License as published by
    - * the Free Software Foundation, either version 3 of the License, or
    - * (at your option) any later version.
    - *
    - * This program is distributed in the hope that it will be useful,
    - * but WITHOUT ANY WARRANTY; without even the implied warranty of
    - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    - * GNU General Public License for more details.
    - *
    - * You should have received a copy of the GNU General Public License
    - * along with this program.  If not, see <http://www.gnu.org/licenses/>.
    - */
    -
    -/*
    - * NOTE: This file was auto-generated and should never be manually edited,
    - *       as it will get overwritten.
    - */
    -
    +$fileheader
     EOF
     	foreach my $key (@$keysref) {
     
    @@ -636,31 +623,7 @@
     		or die "cannot open > $fname: $!";
     
     	print FH <<"EOF";
    -/**
    - * This file is part of Hercules.
    - * http://herc.ws - http://github.com/HerculesWS/Hercules
    - *
    - * Copyright (C) 2013-$year  Hercules Dev Team
    - *
    - * Hercules is free software: you can redistribute it and/or modify
    - * it under the terms of the GNU General Public License as published by
    - * the Free Software Foundation, either version 3 of the License, or
    - * (at your option) any later version.
    - *
    - * This program is distributed in the hope that it will be useful,
    - * but WITHOUT ANY WARRANTY; without even the implied warranty of
    - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    - * GNU General Public License for more details.
    - *
    - * You should have received a copy of the GNU General Public License
    - * along with this program.  If not, see <http://www.gnu.org/licenses/>.
    - */
    -
    -/*
    - * NOTE: This file was auto-generated and should never be manually edited,
    - *       as it will get overwritten.
    - */
    -
    +$fileheader
     struct {
     EOF
     
    @@ -711,31 +674,7 @@
     		or die "cannot open > $fname: $!";
     
     	print FH <<"EOF";
    -/**
    - * This file is part of Hercules.
    - * http://herc.ws - http://github.com/HerculesWS/Hercules
    - *
    - * Copyright (C) 2013-$year  Hercules Dev Team
    - *
    - * Hercules is free software: you can redistribute it and/or modify
    - * it under the terms of the GNU General Public License as published by
    - * the Free Software Foundation, either version 3 of the License, or
    - * (at your option) any later version.
    - *
    - * This program is distributed in the hope that it will be useful,
    - * but WITHOUT ANY WARRANTY; without even the implied warranty of
    - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    - * GNU General Public License for more details.
    - *
    - * You should have received a copy of the GNU General Public License
    - * along with this program.  If not, see <http://www.gnu.org/licenses/>.
    - */
    -
    -/*
    - * NOTE: This file was auto-generated and should never be manually edited,
    - *       as it will get overwritten.
    - */
    -
    +$fileheader
     EOF
     	foreach my $key (@$keysref) {
     

     

    image.png

    image.png


  11. this line make me having error

    from this

    //To identify disguised characters.
    static inline bool disguised(struct block_list* bl)
    {
    	struct map_session_data* sd = BL_CAST(BL_PC, bl);
    	if (sd == NULL || sd->disguise == -1)
    		return false;
    	return true;
    }

    to this

    //To identify disguised characters.
    bool clif_isdisguised(struct block_list* bl)
    {
    	struct map_session_data* sd = BL_CAST(BL_PC, bl);
    	if (sd == NULL || sd->disguise == -1)
    		return false;
    	return true;
    }

     

    image.png

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.