Перейти к содержанию
Авторизация  
SHARK

Мануал: Сохранение Цвета Ника После Рестарта

Рекомендуемые сообщения

color.png

Файл:

Скрытый текст
L2j Core\java\com\l2jserver\gameserver\model\actor\instance\L2PcInstance.java

1. Открываем файл.

2. Ctrl+F и ищем Character Character SQL String Definitions

3. Ниже видим 3 строки, удаляем их.

4. И заменяем их на:

Скрытый текст
	private static final String INSERT_CHARACTER = "INSERT INTO characters (account_name,charId,char_name,level,maxHp,curHp,maxCp,curCp,maxMp,curMp,face
,hairStyle,hairColor,sex,exp,sp,karma,fame,pvpkills,pkkills,clanid,race,classid,
d
eletetime,cancraft,title,title_color,name_color,accesslevel,online,isin7sdungeon
,
clan_privs,wantspeace,base_class,newbie,nobless,power_grade,createDate) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,face=?,hairStyle=?,hairColor=?,sex=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,fame=?,pvpkills=?,pkkills=?,clanid=?,race=?,classid=?,deletetime=?,title=?,title_color=?,name_color=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,punish_level=?,punish_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=?,bookmarkslot=?,vitality_points=?,language=? WHERE charId=?";
private static final String RESTORE_CHARACTER = "SELECT account_name, charId, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, face, hairStyle, hairColor, sex, heading, x, y, z, exp, expBeforeDeath, sp, karma, fame, pvpkills, pkkills, clanid, race, classid, deletetime, cancraft, title, title_color, name_color, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, punish_level, punish_timer, newbie, nobless, power_grade, subpledge, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,death_penalty_lev
el,bookmarkslot,vitality_points,createDate,language FROM characters WHERE charId=?";

5. Ctrl+F и ищем statement.setString(1, _accountName);

6. Ниже видим пунтк 7

7. Изменяем старое на новое, указано ниже:

Скрытый текст
			statement.setString(1, _accountName);
		statement.setInt(2, getObjectId());
		statement.setString(3, getName());
		statement.setInt(4, getLevel());
		statement.setInt(5, getMaxHp());
		statement.setDouble(6, getCurrentHp());
		statement.setInt(7, getMaxCp());
		statement.setDouble(8, getCurrentCp());
		statement.setInt(9, getMaxMp());
		statement.setDouble(10, getCurrentMp());
		statement.setInt(11, getAppearance().getFace());
		statement.setInt(12, getAppearance().getHairStyle());
		statement.setInt(13, getAppearance().getHairColor());
		statement.setInt(14, getAppearance().getSex()? 1 : 0);
		statement.setLong(15, getExp());
		statement.setInt(16, getSp());
		statement.setInt(17, getKarma());
		statement.setInt(18, getFame());
		statement.setInt(19, getPvpKills());
		statement.setInt(20, getPkKills());
		statement.setInt(21, getClanId());
		statement.setInt(22, getRace().ordinal());
		statement.setInt(23, getClassId().getId());
		statement.setLong(24, getDeleteTimer());
		statement.setInt(25, hasDwarvenCraft() ? 1 : 0);
		statement.setString(26, getTitle());
		statement.setInt(27, getAppearance().getTitleColor());
		statement.setInt(28, getAppearance().getNameColor());			
		statement.setInt(29, getAccessLevel().getLevel());
		statement.setInt(30, isOnlineInt());
		statement.setInt(31, isIn7sDungeon() ? 1 : 0);
		statement.setInt(32, getClanPrivileges());
		statement.setInt(33, getWantsPeace());
		statement.setInt(34, getBaseClass());
		statement.setInt(35, getNewbie());
		statement.setInt(36, isNoble() ? 1 :0);
		statement.setLong(37, 0);
		statement.setDate(38, new Date(getCreateDate().getTimeInMillis()));

8. Ctrl+F и ищем player.getAppearance().setTitleColor(rset.getInt("title_color"));

9. Ниже добавляем:

Скрытый текст
				player.getAppearance().setNameColor(rset.getInt("name_color"));

10. Ctrl+F и ищем statement.setInt(1, level);

11. Изменяем старое на новое, указано ниже:

Скрытый текст
			statement.setInt(1, level);
		statement.setInt(2, getMaxHp());
		statement.setDouble(3, getCurrentHp());
		statement.setInt(4, getMaxCp());
		statement.setDouble(5, getCurrentCp());
		statement.setInt(6, getMaxMp());
		statement.setDouble(7, getCurrentMp());
		statement.setInt(8, getAppearance().getFace());
		statement.setInt(9, getAppearance().getHairStyle());
		statement.setInt(10, getAppearance().getHairColor());
		statement.setInt(11, getAppearance().getSex()? 1 : 0);
		statement.setInt(12, getHeading());
		statement.setInt(13, _observerMode ? _lastX : getX());
		statement.setInt(14, _observerMode ? _lastY : getY());
		statement.setInt(15, _observerMode ? _lastZ : getZ());
		statement.setLong(16, exp);
		statement.setLong(17, getExpBeforeDeath());
		statement.setInt(18, sp);
		statement.setInt(19, getKarma());
		statement.setInt(20, getFame());
		statement.setInt(21, getPvpKills());
		statement.setInt(22, getPkKills());
		statement.setInt(23, getClanId());
		statement.setInt(24, getRace().ordinal());
		statement.setInt(25, getClassId().getId());
		statement.setLong(26, getDeleteTimer());
		statement.setString(27, getTitle());
		statement.setInt(28, getAppearance().getTitleColor());
		statement.setInt(29, getAppearance().getNameColor());			
		statement.setInt(30, getAccessLevel().getLevel());
		statement.setInt(31, isOnlineInt());
		statement.setInt(32, isIn7sDungeon() ? 1 : 0);
		statement.setInt(33, getClanPrivileges());
		statement.setInt(34, getWantsPeace());
		statement.setInt(35, getBaseClass());

		long totalOnlineTime = _onlineTime;

		if (_onlineBeginTime > 0)
			totalOnlineTime += (System.currentTimeMillis()-_onlineBeginTime)/1000;

		statement.setLong(36, totalOnlineTime);
		statement.setInt(37, getPunishLevel().value());
		statement.setLong(38, getPunishTimer());
		statement.setInt(39, getNewbie());
		statement.setInt(40, isNoble() ? 1 : 0);
		statement.setInt(41, getPowerGrade());
		statement.setInt(42, getPledgeType());
		statement.setInt(43,getLvlJoinedAcademy());
		statement.setLong(44,getApprentice());
		statement.setLong(45,getSponsor());
		statement.setInt(46, getAllianceWithVarkaKetra());
		statement.setLong(47, getClanJoinExpiryTime());
		statement.setLong(48, getClanCreateExpiryTime());
		statement.setString(49, getName());
		statement.setLong(50, getDeathPenaltyBuffLevel());
		statement.setInt(51, getBookMarkSlot());
		statement.setInt(52, getVitalityPoints());
		statement.setString(53, getLang());
		statement.setInt(54, getObjectId());

12. Заходим в Navicat, открываем базу и удаляем колонку characters

13. Скачиваем прикрепленный к теме файл characters.sql и заливаем его вместо старого.

 

Специально для

www.l2maxi.ru by SHARK.

characters.rar

Изменено пользователем SHARK
  • Upvote 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...