Перейти к содержанию

Лилит

Проверенные
  • Постов

    134
  • Зарегистрирован

  • Посещение

  • Победитель дней

    8

Сообщения, опубликованные Лилит

  1. мм скрипт все установил, сервер запустил вроде ошибок нету ну куда я прописал путь ему где должен стоять он, почему то он не стоит вот..

    А можно как то поточнее? + используй Codebox

    Замечание к администраторам: почему нету тега Codebox ? :huh:

  2. Да нет, не легче... с *setlook и слот не занимает и вес от вещи, естественно, не даёт. Чтобы ты не одевал спрайт останется, будет лишь видно, как два головных убора конфликтуют между собой за место на первом плане :)

  3. Если использовать модификацию срц от Лилит,то можно оптимизировать скрипт.

    Сам не тестил..лень ставить мод :mellow:

    P.S.Добавил мапфлаги в скрипт.

    Не учёл переменные. либо использовать скрипт вместо функции и тогда не разбивать скрипт на функцию support и непися support_system, либо использовать глобальную дин. переменную setd "$Mob"+getcharid(0)

    • Upvote 1
  4. Ocelote =*, Смори а если вне гв вызвал пета?То он получается войдет на гв и бут с петом?

    Для этого делаем следующее:

    открой файл src/map/script.c, найди функцию 'summon' и добавь в конце перед 'return 0;' script_pushint(st, md->bl.id);

    Это будет выглядеть так:

    BUILDIN_FUNC(summon)
    {
    int _class, timeout=0;
    const char *str,*event="";
    TBL_PC *sd;
    struct mob_data *md;
    int tick = gettick();

    sd=script_rid2sd(st);
    if (!sd) return 0;

    str =script_getstr(st,2);
    _class=script_getnum(st,3);
    if( script_hasdata(st,4) )
    timeout=script_getnum(st,4);
    if( script_hasdata(st,5) ){
    event=script_getstr(st,5);
    check_event(st, event);
    }

    clif_skill_poseffect(&sd->bl,AM_CALLHOMUN,1,sd->bl.x,sd->bl.y,tick);

    md = mob_once_spawn_sub(&sd->bl, sd->bl.m, sd->bl.x, sd->bl.y, str, _class, event);
    if (md) {
    md->master_id=sd->bl.id;
    md->special_state.ai=1;
    if( md->deletetimer != INVALID_TIMER )
    delete_timer(md->deletetimer, mob_timer_delete);
    md->deletetimer = add_timer(tick+(timeout>0?timeout*1000:60000),mob_timer_delete,md->bl.id,0);
    mob_spawn (md); //Now it is ready for spawning.
    clif_specialeffect(&md->bl,344,AREA);
    sc_start4(&md->bl, SC_MODECHANGE, 100, 1, 0, MD_AGGRESSIVE, 0, 60000);
    }
    script_pushint(st, md->bl.id); // <<< Это добавили
    return 0;
    }

    Далее рекомпилируешь сервер, теперь вместо

    summon "Помошник["+strcharinfo(0)+"]",@supp,1800000;

    пишешь

    setd ".Mob"+getcharid(0),summon("Помошник["+strcharinfo(0)+"]",@supp,1800000);

    На локации с вое ставишь мапфлаг loadevent, пример:

    prtg_cas03	mapflag	loadevent

    В сам скрипт функции 'support' дописываешь:

    OnPCLoadMapEvent:
    getmapxy(@map$,@x,@y,0);
    if(@map$ == "prtg_cas03" && (agitcheck() || agitcheck2())){
    dispbottom "Извините, но на Войне за Империум нельзя пользоваться помощником";
    unitkill getd(".Mob"+getcharid(0));
    set called,0; getitem 14345,1;
    }
    end;

    Думаю суть ясна.

    P.S. а вообще рекомендую использовать 11 тип предмета, чтобы каждый раз не давать игроку предмет, проверка и так стоит.

×
×
  • Создать...
Яндекс.Метрика