Проблемы с добавлением питомцев на продажу через NPC Multisell: ищу решения

Spacex

Последний из атеистов
Пользователь
Сообщения
27
Розыгрыши
0
Репутация
0
Реакции
2
Баллы
825
Хочу добавить в свой мультивендор NPC продажу питомцев, но у меня ничего не получается. Могу добавить товар, но когда его покупают, он не работает. Кто-нибудь знает другой способ сделать это?

PS: Если выполнить квест или создать питомца с помощью команды //create_pet, призыв работает нормально.
 

Хочу добавить в свой мультивендор NPC продажу питомцев, но у меня ничего не получается. Могу добавить товар, но когда его покупают, он не работает. Кто-нибудь знает другой способ сделать это?

PS: Если выполнить квест или создать питомца с помощью команды //create_pet, призыв работает нормально.
Да, в птс каждый пет привязан к персонажу в базе. Сделайте нпц с аи по типу квеста на страйдера, но вместо прохождения квеста, оплату валютой за которое происходит добавление пета в инвентарь, и записи в базу. В общем скопировать аи и изменить под себя.
 
Можно еще продавать не сами предметы призыва, а например предмет, при использовании которого суммонится невидимый непись и выдает призвавшему предмет призыва + делает привязку.
Это один из любимых способов корейцев делать в офф сервере выдачу чего нибудь нестандартного - призыв нпс-невидимки, который все что надо сделает в своем аи.
 
Да, в птс каждый пет привязан к персонажу в базе. Сделайте нпц с аи по типу квеста на страйдера, но вместо прохождения квеста, оплату валютой за которое происходит добавление пета в инвентарь, и записи в базу. В общем скопировать аи и изменить под себя.
Спасибо, думаю, это действительно самый простой способ сделать это.

Можно еще продавать не сами предметы призыва, а например предмет, при использовании которого суммонится невидимый непись и выдает призвавшему предмет призыва + делает привязку.
Это один из любимых способов корейцев делать в офф сервере выдачу чего нибудь нестандартного - призыв нпс-невидимки, который все что надо сделает в своем аи.

Вы можете дать мне какой-нибудь пример того, как это сделать?
 
посмотеть любой скилл с эффектом i_summon_npc, там глянуть какого нибудь из призываемых нпс и будет понятно как он взаимодействует с призвавшим его. ну и написать подходящее аи для такого нпс, взяв нужные фрагменты из квеста на пета.
 
Через АИ. Смотреть примеры
Код:
void NPC::CreatePet(CreatureData, int, int, int)
 
  • Мне нравится
Реакции: kick
Пример предмета/скилла с призывом невидимого нпс, который дает призвавшему разные предметы в зависимости от его профы.
По аналогии можно так же и выдать пета.
Код:
skill_begin    skill_name = [s_event_friend_recommendation_ticket1]    /* [장비 세트 10일 팩] */    skill_id = 2914    level = 1    operate_type = A1    magic_level = 1    special_level = 0    magic_critical_rate = 5    change_skill_id = 0    self_effect = {}    effect = {{i_summon_npc;[recom_class_cheker1];1}}    operate_cond = {{op_check_class_list;{0;10;18;25;31;38;44;49;53;123;124};self;0}}    is_magic = 2    is_double = 0    mp_consume2 = 0    cast_range = -1    effective_range = -1    skill_hit_time = 0    skill_cool_time = 0    skill_hit_cancel_time = 0    reuse_delay = 10    attribute = {attr_none;0}    trait = {trait_none}    effect_point = 0    target_type = self    affect_scope = single    affect_limit = {0;0}    next_action = none    ride_state = {@ride_none;@ride_strider;@ride_wyvern;@ride_wolf}    multi_class = 0    olympiad_use = 1    npc_notice = 0    skill_end
PHP:
class ai_recom_class_cheker1 : default_npc {
parameter:
    int knight_pack_10 = 15194;
    int magic_pack_10 = 15195;
    int warrior_pack_10 = 15196;
    int rogue_pack_10 = 15197;
    int kamael_pack_10 = 15198;
    int orcf_pack_10 = 15199;
    int orcm_pack_10 = 15200;
    int erlk_pack_10 = 40359;
    int erse_pack_10 = 40360;
    int ticket_pack_10 = 15210;
   
handler:
    EventHandler CREATED(i0, c0) {
        c0 = GetCreatureFromID(myself.sm.summoner_id);

        if (IsNullCreature(c0) == @FALSE) {
            if (IsInCategory(@recom_knight_group, c0.occupation) == @TRUE) {
                DeleteItem1(c0, ticket_pack_10, 1);
                GiveItem1(c0, knight_pack_10, 1);
            } else if (IsInCategory(@recom_magic_group, c0.occupation) == @TRUE) {
                DeleteItem1(c0, ticket_pack_10, 1);
                GiveItem1(c0, magic_pack_10, 1);
            } else if (IsInCategory(@recom_warrior_group, c0.occupation) == @TRUE) {
                DeleteItem1(c0, ticket_pack_10, 1);
                GiveItem1(c0, warrior_pack_10, 1);
            } else if (IsInCategory(@recom_rogue_group, c0.occupation) == @TRUE) {
                DeleteItem1(c0, ticket_pack_10, 1);
                GiveItem1(c0, rogue_pack_10, 1);
            } else if (IsInCategory(@recom_kamael_group, c0.occupation) == @TRUE) {
                DeleteItem1(c0, ticket_pack_10, 1);
                GiveItem1(c0, kamael_pack_10, 1);
            } else if (IsInCategory(@recom_orcf_group, c0.occupation) == @TRUE) {
                DeleteItem1(c0, ticket_pack_10, 1);
                GiveItem1(c0, orcf_pack_10, 1);
            } else if (IsInCategory(@recom_orcm_group, c0.occupation) == @TRUE) {
                DeleteItem1(c0, ticket_pack_10, 1);
                GiveItem1(c0, orcm_pack_10, 1);
            } else if (c0.occupation == @marauder || c0.occupation == @lenker || c0.occupation == @strato_lenker) {
                DeleteItem1(c0, ticket_pack_10, 1);
                GiveItem1(c0, erlk_pack_10, 1);
            } else if (c0.occupation == @menace || c0.occupation == @storm_menace || c0.occupation == @sayhas_seer) {
                DeleteItem1(c0, ticket_pack_10, 1);
                GiveItem1(c0, erse_pack_10, 1);
            }
        }

        AddTimerEx(2001, 30000);
    }

    EventHandler TIMER_FIRED_EX(timer_id, i0, c0) {
        if (timer_id == 2001) {
            Despawn();
        }
    }
}
 
Пример предмета/скилла с призывом невидимого нпс, который дает призвавшему разные предметы в зависимости от его профы.
По аналогии можно так же и выдать пета.
Большое спасибо за помощь! Это действительно будет очень полезно.
 
I have this problem too, did you manage to do it?
 
Назад
Сверху Снизу