Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Серверная часть (https://forum.zone-game.info/forumdisplay.php?f=148)
-   -   Крафт система (https://forum.zone-game.info/showthread.php?t=13217)

Wolfas 24.03.2011 16:10

Крафт система
 
Доброго времени суток, подниму довольно сложную тему.

Создаю собственные крафт рецепты, и наткнулся на такой косяк

У крафт рецептов не работает свойство, race="ALL" можно указать только конкретно одну из двух расс, причём все XML поддерживаю свойство race="ALL", но видимо не хватает либо поддержки пакета в ядре, либо подходящей функции, уже всё перекопал, мб кто видел?


Код:

    <recipe_template id="155090006" nameid="1504773" skillid="40002" race="ALL" skillpoint="399" productid="100000904"
                    quantity="1" componentquantity="1">
        <component quantity="1" itemid="152000911"/>
        <comboproduct itemid="100000905"/>
        <comboproduct itemid="100000906"/>
        <comboproduct itemid="100000907"/>
        <comboproduct itemid="100000908"/>
    </recipe_template>


Wolfas 26.03.2011 06:56

Re: Крафт система
 
Заплачу ядом, если кто сможет решить)

Wolfas 27.03.2011 08:56

Re: Крафт система
 
Нашёл способ решения данной проблемы, необходимо в документе

SkillRace.java установить значение параметра ALL равным ELYOS и ASMODIANS, относительно скрипта в документе Race.java

Но как бы это написать...

HeY 27.03.2011 11:07

Re: Крафт система
 
Wolfas, выложи куски кода (под спойлером) с твоими пояснениями, если что - будем дополнять. Честно говоря лично я не совсем понял что именно ты сделал.

Wolfas 27.03.2011 11:17

Re: Крафт система
 
Свиток в клиенте:

client_items.xml:
Свернуть ↑Развернуть ↓


Свиток на сервере:

item_templates.xml:
Свернуть ↑Развернуть ↓


Рецепт в клиенте:

client_combine_recipe.xml:
Свернуть ↑Развернуть ↓


Рецепт на сервере:

recipe_template.xml:
Свернуть ↑Развернуть ↓


Где я вижу проблему:

skillRace.java:
Свернуть ↑Развернуть ↓


Race.java:
Свернуть ↑Развернуть ↓

flashman 27.03.2011 13:04

Re: Крафт система
 
На сколько я понял за добавление рецептов в книгу рецептов отвечает CraftLearnAction (путь package com.aionengine.gameserver.itemengine.actions;) , там как раз есть проверка SkillRace и Race она там идёт таким образом:
PHP код:

        if (template.getRace().ordinal() != player.getCommonData().getRace().getRaceId())
            return 
false

как видно сверка идёт по значениям констант в обохи перечислителях(enum`ax) , но как мы знаем раса игрока не может быть ALL, поэтому та проверка и не пропускает далее если у рецепта стоит раса ALL.
Её можно замеить сделующим образом:
PHP код:

        switch(template.getRace())
        {
            case 
ALL:
                break;
            default:
                if (
template.getRace().ordinal() != player.getCommonData().getRace().getRaceId())
                    return 
false;
        } 


Wolfas 27.03.2011 23:29

Re: Крафт система
 
flashman Спасибо! Вы меня спасли)


Текущее время: 20:40. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot