Сообщений: 527
Тем: 17
Зарегистрирован: Oct 2010
Репутация:
1,919
Код: /**
* Бафает один бафф, снимает плату за бафф, отображает диалог с кнопкой возврата к списку бафов
* @param args массив строк: элемент 0 - id скида, элемент 1 - уровень скила
*/
public void doBuff(String[] args)
{
Player player = (Player) getSelf();
Summon pet = player.getSummonList().getPet();
NpcInstance npc = getNpc();
if(!checkCondition(player, npc))
return;
if(player.getAdena() < Config.SERVICES_BUFFER_PRICE)
{
player.sendPacket(Msg.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
return;
}
try
{
int skill_id = Integer.valueOf(args[0]);
int skill_lvl = Integer.valueOf(args[1]);
if(!contains(skill_id, skill_lvl))
{
// По желанию сообщение что игрок изменил байпас.
return;
}
int select_id = Integer.valueOf(args[2]);
Skill skill = SkillTable.getInstance().getInfo(skill_id, skill_lvl);
if(select_id == 0)
ThreadPoolManager.getInstance().schedule(new BeginBuff(getNpc(), skill, player), 0);
if(select_id == 1)
{
if(pet == null)
return;
ThreadPoolManager.getInstance().schedule(new BeginPetBuff(getNpc(), skill, pet), 0);
}
player.reduceAdena(Config.SERVICES_BUFFER_PRICE, true);
}
catch(Exception e)
{
player.sendMessage("Такого баффа у меня нет!");
}
show("scripts/services/Buffer/buffschar1.htm", player);
}
pulic boolean contains(int skillId, int skillLevel)
{
for(int[] skill : buffs)
if(skill[0] == skillId && skill[0] == skillLevel)
return true;
return false;
}
примерно так.
Сообщений: 4,694
Тем: 85
Зарегистрирован: Mar 2009
Репутация:
23,364
Krasavella Написал:Именно так и делают) Как можно добавить проверку на возможность бафнуться только skill_id, которые указаны в скрипте?
Пробегайтесь по списку ваших скилов перед бафом, если id нет в списке - не бафать.
Fortuna - non penis, in manus non recipe.
Сообщений: 794
Тем: 31
Зарегистрирован: Dec 2012
Репутация:
2,838
Mifesto Написал:Код: if(!contains(skill_id, skill_lvl))
{
// По желанию сообщение что игрок изменил байпас.
return;
}
pulic boolean contains(int skillId, int skillLevel)
{
for(int[] skill : buffs)
if(skill[0] == skillId && skill[0] == skillLevel)
return true;
return false;
}
примерно так.
Спасибо, сейчас проверю))
Сообщений: 4,694
Тем: 85
Зарегистрирован: Mar 2009
Репутация:
23,364
Krasavella Написал:Спасибо, сейчас проверю))
Mifesto Написал:[SRC="java"]pulic boolean contains(int skillId, int skillLevel)
{
for(int[] skill : buffs)
if(skill[0] == skillId && skill[1] == skillLevel)
return true;
return false;
}[/SRC]
Только условие исправьте
Fortuna - non penis, in manus non recipe.
Сообщений: 794
Тем: 31
Зарегистрирован: Dec 2012
Репутация:
2,838
06-28-2013, 02:05 PM
(Сообщение последний раз редактировалось: 06-28-2013, 02:11 PM Krasavella.)
Ashe Написал:Только условие исправьте
Да, заметила skill_lvl))
P.S. Что скажите по защите на крипте Rabbit - http://ru.wikipedia.org/wiki/Rabbit?
Rabbit Cryptografy System 1.5 Gbps Lineage 2
http://www.mmocom.ru/showthread.php?t=5890
Добавлено через 5 минут
if(!contains(skill_id, skill_lvl)) помогло!!!))
Сообщений: 527
Тем: 17
Зарегистрирован: Oct 2010
Репутация:
1,919
Примеров крипта очень мало, удалось найти нормально работающий на С и Ява, однако крипты С и Ява не совместимы, поэтому пришлось делать нативку для явки.
П.С. Скорость Кролика намного больше всяких RC4 и BlowFish.
Сообщений: 1,672
Тем: 54
Зарегистрирован: Jun 2011
Репутация:
5,074
лутшее решение таких бед придуманно уже в 2004
когда отсылаем игроку хтмл код, запоминаем все линки которые там были
если от игрока приходит линк несуществующий
то посылаем игрока к некой бабушке
Сообщений: 1,065
Тем: 20
Зарегистрирован: Mar 2010
Репутация:
3,855
ну, линк может быть и динамическим, например запрос на имя или еще что-то типа того.
ну хотя конечно можно как-то помечать что такие-то виды ссылок запоминать/проверять не требуется, хотя бы банально по наличию в исходной ссылке названия переменной, которая имеется в форме, наличествующей в хтмлке.
Сообщений: 794
Тем: 31
Зарегистрирован: Dec 2012
Репутация:
2,838
Клиент удалось хукнуть, но теперь проблема в:
Код: if ((addr = GetProcAddress(hEngine, "?DrawTextTTFToCanvas@UCanvas@@QAEHHHPB_WPBVFontDrawInfo@@EHHPBV?$TArray@PAVFontDrawInfoSection@@@@@Z")) == 0)
return false;
true_DrawTextTTFToCanvas = (_DrawTextTTFToCanvas) addr;
Завтра буду искать решение =)
Сообщений: 2,267
Тем: 6
Зарегистрирован: Aug 2009
Репутация:
8,698
Krasavella Написал:Клиент удалось хукнуть, но теперь проблема в:
Код: if ((addr = GetProcAddress(hEngine, "?DrawTextTTFToCanvas@UCanvas@@QAEHHHPB_WPBVFontDrawInfo@@EHHPBV?$TArray@PAVFontDrawInfoSection@@@@@Z")) == 0)
return false;
true_DrawTextTTFToCanvas = (_DrawTextTTFToCanvas) addr;
Завтра буду искать решение =)
Хотите сказать у вас заработал ргвард на линдвиоре? 0_о
|