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

Nurkz

Donators
  • Постов

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

  • Посещение

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

    24

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

  1. Должно работать.

    Вот так попробуй.


    if( map[m].flag.noafk )
    {
    if(DIFF_TICK(last_tick, sd->idletime) > 60)
    {
    clif_displaymessage(sd->fd, "You have been kicked from Emperium Arena because of your AFK status.");
    return pc_setpos(sd,sd->status.save_point.map,sd->status.save_point.x,sd->status.save_point.y,3);
    }
    return 0;
    }

    Если не получиться, сделай do{}while()

    PS!

    А вообще можно реализовать с помощью скрипта.

    Если у тебя rA то есть команда checkidle, которая выдает idle time в секундах.

    Если нет, то можно выдрать ее отсюда: http://trac.rathena....t/17126/rathena

  2. Да, ошибся немного. 1 Месяц работаю с eA. Сейчас сам немного полазил в src

    нашёл в map/pc.c в самой функции pc_setpos проверку на инициализацию персонажа.

    Попробуй вставить туда. После проверки на открытие магазина, в "Misc map-changing settings"

    if( map[m].flag.noafk )
    {
    if(DIFF_TICK(last_tick, sd->idletime) > 60)
    {
    clif_displaymessage(sd->fd, "You have been kicked from Emperium Arena because of your AFK status.");
    return pc_setpos(sd,sd->status.save_point.map,sd->status.save_point.x,sd->status.save_point.y,3);
    }
    }

  3. Суть эвента всем известна.

    Решил выложить в просторы интернета для критики,

    ну и просто что-б было (ибо всё что видел, жалкие попытки).

    1. Предметы(Лут) может быть разный. !Берётся из массива.
    2. Кол-во лута(сколько всего) может быть разным.
    3. Кол-во приносимого лута(сколько такого-то) тоже может быть разным.

    Всё удобно настраивать.

    • Upvote 20
    • Downvote 1
  4. А разве не можно будет тогда получать свой бонус бесконечно? (в ресете)

    переменную Bonus нельзя использовать

    Ресет должен работать нормально без вмешательств, поскольку он только возвращает розданные стат поинты, то есть например у нас 30.000 stpoint + бонув в размере 5.000, раздали 27.000 осталось 7.000, если использовать ресет он просто вернет 27.000 stpoint которые были розданы

    ну это я так понимаю.

    Ты прав


    *resetstatus;

    This is a character reset command, which will reset the stats on the invoking
    character and give back all the stat points used to raise them previously.
    Nothing will happen to any other numbers about the character.

    Used in reset NPC's (duh!)

    Однако люди выше писали, мол при ресете, статы не возвращаются.

    Сам не проверял.

    Ну в таком случае, ресетера не трогаем.

  5. лол что?


    if (battle_config.use_statpoint_table)

    зайди в conf/battle/exp.conf

    самая последняя строчка


    // Use the contents of db/statpoint.txt when doing a stats reset and leveling up? (Note 1)
    // If no, an equation will be used which preserves statpoints earned/lost
    // through external means (ie: stat point buyers/sellers)
    use_statpoint_table: yes

    поставь use_statpoint_table: no

    и тогда


    // Calculates the number of status points PC gets when leveling up (from level to level+1)
    int pc_gets_status_point(int level)
    {
    if (battle_config.use_statpoint_table) //Use values from "db/statpoint.txt"
    return (statp[level+1] - statp[level]);
    else //Default increase
    return (10);
    }

    • Upvote 1
  6. Не проще давать бонус сразу при получении 260 уровня?

    Что-то типа.


    -%TAB%script%TAB%bonus%TAB%-1,{
    OnPcBaseLvUpEvent:
    if(BaseLevel == 260) {
    set StatusPoint, StatusPoint + 5000;
    set Bonus, 1;
    dispbottom "Ты получил +5000 статов";
    } end;
    }

    И в Ресетере.


    prontera,150,193,4%TAB%script%TAB%Reset Girl%TAB%124,{
    mes "[Reset Girl]";
    mes "Если у вас был бонус он не пропадёт!";
    next;
    menu "^FF3355Reset Skills",L0,"Reset Stats",L1,"Reset Both^000000",L2,"Quit",LEnd;
    L0:
    mes "[Reset Girl]";
    if (Zeny < 5000) goto NeedZenys;
    mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
    set Zeny,zeny-5000;
    ResetSkill;
    close;
    L1:
    mes "[Reset Girl]";
    if (Zeny < 5000) goto NeedZenys;
    mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
    set Zeny,zeny-5000;
    ResetStatus;
    if(Bonus) set StatusPoint, StatusPoint + 5000;
    close;
    L2:
    mes "[Reset Girl]";
    if (Zeny < 9000) goto NeedZenys;
    mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
    set Zeny,zeny-9000;
    ResetSkill;
    ResetStatus;
    if(Bonus) set StatusPoint, StatusPoint + 5000;
    close;
    NeedZenys:
    mes "Sorry, you don't have enough Zeny.";
    close;
    LEnd:
    close;
    }

  7. О, всё, всем спасибо, разобрался сам.


    for(set .@i, 1; .@i <= $items_n; set .@i, .@i +1) {
    loop:
    set .@item, $items[rand(getarraysize($items))];
    if(.@i > 1)
    for(set .@j, 1; .@j <= .@i; set .@j, .@j+1)
    jump_zero(getd("$item_" +.@j)!=.@item), loop;
    }
    setd "$item_" + .@i, .@item;}

    • Downvote 1
  8. Есть кусок кода.


    setarray $items[0],909,1202,938,512,713,914,949,511,705,507,515,622;

    set $items_n, rand(2,n);
    for(set .@i, 1; .@i <= $items_n; set .@i, .@i +1) {
    setd "$item_" + .@i, $items[rand(getarraysize($items))];
    }

    Получаются переменные $item_1, $item_2, ..., $item_n

    Со значениями из массива $items

    Вопрос.

    1) Как сделать что-бы значения не повторялись.

    Ибо рандом такой рандом что иногда может быть и так:

    $item_1 = 909

    $item_2 = 909

    $item_n = 909

    Заранее спасибо.

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