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

Nurkz

Donators
  • Постов

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

  • Посещение

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

    24

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

  1. во первых Caseпробел1 а не Case1

    во вторых, вытащи функции из свича

    на заметку, я бы на твоем месте ввел переменную на чара @lang и танцевал бы уже от нее


    set @lang, select("RUS":"ENG");
    switch(@lang)
    {
    Case 1:
    ...code...
    break;
    Case 2:
    ...code...
    bleak;
    }

    Теперь можно добавить свич в функцию, куда удобнее чем добавлять новые функции и переписывать скрипт :)

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

    • Upvote 1
  2. Нет... не в скобке дело... Я пробовал и убрать и добавить... Если убираешь одну Пишет тагда Missin 1 Right Curly's

    А если ставлю их 3 подряд Тагда после кейс2 он выдаёт кучу ошибок... Хотя когда не ставлю меню языков в нпц вообще ни одной проблемы

    Где говорилось про 3 скобки? Английский знаем? Missin 1 Right Curly's, отсутствует 1 фигурная скобка, 1 а не 3 подряд.

  3. Specially for Fizik

    Hatred:


    /**
    * Player register a bl as hatred
    * @param sd : player session
    * @param pos : hate position [0;2]
    * @param bl : target bl
    * @return false:failed, true:success
    */
    bool pc_set_hate_mob(struct map_session_data *sd, int pos, struct block_list *bl)
    {
    int class_;
    if (!sd || !bl || pos < 0 || pos > 2)
    return false;
    sd->hate_mob[pos] = -1;
    class_ = status_get_class(bl);
    if (!pcdb_checkid(class_)) {
    unsigned int max_hp = status_get_max_hp(bl);
    if ((pos == 1 && max_hp < 6000) || (pos == 2 && max_hp < 20000))
    return false;
    if (pos != status_get_size(bl))
    return false; //Wrong size
    }
    sd->hate_mob[pos] = class_;
    pc_setglobalreg(sd,sg_info[pos].hate_var,class_+1);
    clif_hate_info(sd, pos, class_, 1);
    return true;
    }

    Feeling:


    case SG_FEEL:
    //AuronX reported you CAN memorize the same map as all three. [Skotlex]
    if (sd) {
    clif_feel_req(sd->fd,sd, skill_lv);
    }
    break;

    Табуляцию надеюсь поставить сам сможешь.

    А вообще, прежде чем что-то бездумно менять, стоит проверить исходный код. Можно было заметить что pc_set_hate_mob у нас boolean а не int.

    А если уж все заменил и не знаешь что было в исходном коде, читай что тебе пишет компилятор. Вроде черным по белому, на русском языке.

    • Upvote 2
  4. Я не очень понимаю, по моему тут нужно вписывать координаты, а как именно они работают, и зачем они нужны не понимаю. Можете пояснить?

    Вот кусок скрипта


    //Check if Idle
    getmapxy( .@map$, .@x, .@y, 0 ); // Определяет твои координаты(в данный момент)
    if(@map$ == .@map$ && @x == .@x && @y == .@y) { // Сверяет их с координатами сохраненными ранее
    set @afk, @afk + 1; // Если координаты те же, что и ранее - переменная @afk +1
    }
    //If move timer resets
    else {
    set @afk, 0; // Иначе обнуляет переменную @afk
    }
    set @map$, .@map$; set @x, .@x; set @y, .@y; // Сохраняет текущие координаты в пользовательскую переменную(что-бы сравнить их позднее)
    //PS! Переменная переписывается после каждой проверки.
    //Idle Check for 5 Minutes
    if(@afk == 5) { // Если переменная @afk = 5, то-есть координаты совпали 5 раз, останавливает все.
    dispbottom "Бонус за онлайн остановлен, потому что вы находились в простое в течение 5 минут. Пожалуйста перезайдите,если вы хотите получать бонус.";
    stopnpctimer;
    end;
    }

    • Upvote 1
  5. Функция это отдельный скрипт, который ни коем образом не должен затрагивать "proverka".

    Но судя по твоему отредактированному посту, ты это и так уже понял.

    Хотя есть ещё 1 интересный фокус.


    - script proverka -1,{
    end;

    OnPCLoginEvent:
    dispbottom antibot;

    function antibot {
    return strcharinfo(0);
    }
    }

    Надеюсь суть понял.

  6. Каких блеать 1400, eathena с 5000 началась

    Ты не в теме, отсчет всегда с 1 начинается, блиать

    В паблик они вышли только с 5000 ревизии когда было уже что показывать, нахрена с первой то ревизии в паблик кидать куски непонятно чего?

    Меньше 5000 никогда не было в паблике.

    были, зачатки eApp

  7. Если помошник умирает то его снова не вызвать. Надо самому умереть или перезайти. Если варпнутся и вызвать еще раз его то будут два вместе бегать.

    замени


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

    на


    OnKillSupport:
    getitem 14345, 1;
    set called, 0;
    end;

    if( @helper && mobcount(strcharinfo(3),"support::OnKillSupport") ) unitkill @helper;
    set @helper,summon("Помошник["+strcharinfo(0)+"]",@supp,1800000,"support::OnKillSupport");

  8. Планируется использовать последнюю ревизию rAthena там минимальный клиент для всех функций вроде конец 2012 года... знаю что с клиентами 2010 года некоторые фичи не работают...

    2012-04-10

    какие фичи не работают с клиентом 2010 года? навигация? на кой х она нужна?

    И даже если так, зачем 2013? что там такого, чего нету в 2012?

    http://rathena.org/board/topic/82726-2013-ragexe-and-diff-up-to-date-2013-08-07/

    ^-- тут в комментариях довольно много ошибок и их фиксы, почитай.


  9. OnPCKillEvent:
    if(attachrid(killedrid))
    {
    if(@pdm_registered == $@pdm_opentime && @pdm_team > 0)
    {
    callfunc("pdm_unreg",getcharid(3));
    warp "prontera",156,181;
    }
    }
    end;

    Зачем так мудрить? OnPCDieEvent на что?


    OnPCDieEvent:
    if( @pdm_registered == $@pdm_opentime && @pdm_team > 0 )
    {
    callfunc "pdm_unreg";
    warp "prontera",156,181;
    }
    end;

    @alive тоже не обязательно прописывать, персонаж встаёт сам.

    Если не встаёт, то дабавьте заплатку в ../src/map/pc.c

    Найдите строчку :


    int pc_setpos(struct map_session_data* sd, unsigned short mapindex, int x, int y, clr_type clrtype)"

    И после :


    if( !mapindex || !mapindex_id2name(mapindex) ) {
    ShowDebug("pc_setpos: Passed mapindex(%d) is invalid!\n", mapindex);
    return 1;
    }

    Добавьте :


    if( pc_isdead(sd) ) { //Revive dead people before warping them
    pc_setstand(sd);
    pc_setrestartvalue(sd,1);
    }

  10. "делай через виспера"

    не встречал раньше. в крайнем случае можно сделать через defpattern 1, "([^:]+):.*\\.*", "S";

    activatepset 1;

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

    ха.. интересно.

    ПС! Sanasol.

    Пост ph1047 снова подправил а вот про цитату у ZLO забыл :DDDDD

  11. Ты его писал под rA? А то у меня еА и она ругается на переменные.

    замени переменные аля @x = a; на set @x, a;

    и если не ошибаюсь, в eA нету bindatcmd..

    делай через виспера, один хрен.

    Эвент всё-равно буду писать под свой сервер, но вот просто ЖУТКО интересно посмотреть на реализацию Saha.

    да этот новичёк даже запустить готовый не может, а ты реализацию хочешь)

    :D вдруг удивит, заодно поучится.

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