Exato como vês o maximo de numeros permitidos são 4, quando o sistema faz update do hp com itens e o crl que o hp supera esses 4 digitos vai dar erro
EX- hp = 36629 (5 Numeros)
HP está como smallint, em que o máximo é 32,767, mete int...
Já no exp não te aconselho a mudar, visto que na tua source toda deves ter o exp como int, aconselho antes a mudar a tabela de exp para valores mais pequenos...
tinyint vai até 255 por isso não é disso, mas sim das querys, ele não consegue dar update visto que as querys não consegue guardar devido aos outros dados estarem serem maiores do que a db permite...
Tens de mudar o exp na source para valores mais pequenos, visto que o exp para mudar para bigint ou terias de fazer muitas mudanças, basta só mudar no constants.cpp para tipo 2.1kkk exp...
/*
Navicat Premium Data Transfer
Source Server : Source Karbust
Source Server Type : MySQL
Source Server Version : 50630
Source Host : 192.168.1.96:3306
Source Schema : player
Target Server Type : MySQL
Target Server Version : 50630
File Encoding : 65001
Date: 26/06/2018 21:14:34
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for player
-- ----------------------------
DROP TABLE IF EXISTS `player`;
CREATE TABLE `player` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`account_id` int(11) NOT NULL DEFAULT 0,
`name` varchar(24) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'NONAME',
`job` tinyint(2) UNSIGNED NOT NULL DEFAULT 0,
`voice` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
`dir` tinyint(2) NOT NULL DEFAULT 0,
`x` int(11) NOT NULL DEFAULT 0,
`y` int(11) NOT NULL DEFAULT 0,
`z` int(11) NOT NULL DEFAULT 0,
`map_index` int(11) NOT NULL DEFAULT 0,
`exit_x` int(11) NOT NULL DEFAULT 0,
`exit_y` int(11) NOT NULL DEFAULT 0,
`exit_map_index` int(11) NOT NULL DEFAULT 0,
`hp` int(4) NOT NULL DEFAULT 0,
`mp` int(4) NOT NULL DEFAULT 0,
`stamina` int(6) NOT NULL DEFAULT 0,
`random_hp` smallint(5) UNSIGNED NOT NULL DEFAULT 0,
`random_sp` smallint(5) UNSIGNED NOT NULL DEFAULT 0,
`playtime` int(11) NOT NULL DEFAULT 0,
`level` tinyint(2) UNSIGNED NOT NULL DEFAULT 1,
`level_step` tinyint(1) NOT NULL DEFAULT 0,
`st` smallint(3) NOT NULL DEFAULT 0,
`ht` smallint(3) NOT NULL DEFAULT 0,
`dx` smallint(3) NOT NULL DEFAULT 0,
`iq` smallint(3) NOT NULL DEFAULT 0,
`exp` int(11) NOT NULL DEFAULT 0,
`gold` bigint(255) NOT NULL DEFAULT 0,
`stat_point` smallint(3) NOT NULL DEFAULT 0,
`skill_point` smallint(3) NOT NULL DEFAULT 0,
`quickslot` tinyblob NULL,
`ip` varchar(15) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT '0.0.0.0',
`part_main` int(7) NOT NULL DEFAULT 0,
`part_base` int(4) NOT NULL DEFAULT 0,
`part_hair` int(4) NOT NULL DEFAULT 0,
`part_acce` smallint(4) UNSIGNED NOT NULL DEFAULT 0,
`skill_group` tinyint(4) NOT NULL DEFAULT 0,
`skill_level` blob NULL,
`alignment` int(11) NOT NULL DEFAULT 0,
`prestige` smallint(4) UNSIGNED NOT NULL DEFAULT 0,
`last_play` datetime(0) NOT NULL DEFAULT '0000-00-00 00:00:00',
`change_name` tinyint(1) NOT NULL DEFAULT 0,
`mobile` varchar(24) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL,
`sub_skill_point` smallint(3) NOT NULL DEFAULT 0,
`stat_reset_count` tinyint(4) NOT NULL DEFAULT 0,
`horse_hp` smallint(4) NOT NULL DEFAULT 0,
`horse_stamina` smallint(4) NOT NULL DEFAULT 0,
`horse_level` tinyint(2) UNSIGNED NOT NULL DEFAULT 0,
`horse_hp_droptime` int(10) UNSIGNED NOT NULL DEFAULT 0,
`horse_riding` tinyint(1) NOT NULL DEFAULT 0,
`horse_skill_point` smallint(3) NOT NULL DEFAULT 0,
`prestige2` int(255) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`, `last_play`) USING BTREE,
UNIQUE INDEX `name_idx`(`name`) USING BTREE,
INDEX `account_id_idx`(`account_id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1323 CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
Tenho exp em int e hp também em int