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

Nurkz

Donators
  • Постов

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

  • Посещение

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

    24

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

  1. В item_db, в поле OnEquip_Script и OnUnequip_Script соответственно пишем:


    callfunc("f_mySummon",1,EQI_HEAD_TOP); //вызываем
    и
    callfunc("f_mySummon",0,EQI_HEAD_TOP); //убиваем

    Создаем скриптовый файл и пишем туда следующее:


    function script f_mySummon {

    function f_checkSummon;
    function f_checkRefine;

    set summonRefine,(summonRefine?(f_checkSummon()?summonRefine:0):(getarg(1)?getequiprefinerycnt(getarg(1)):0));

    switch(getarg(0)?getarg(0):0)
    {
    Default:
    case 0:
    if( f_checkSummon() )
    {
    for( set .@i, 1; .@i <= f_checkRefine(summonRefine); set .@i, .@i +1 )
    killmonster strcharinfo(3),"f_mySummon::OnSummon_"+getcharid(3)+"x"+.@i;
    set summonRefine, 0;
    }
    break;
    case 1:
    if( f_checkSummon() )
    dispbottom "You already have "+f_checkRefine(summonRefine)+" summons.",0;
    else if( f_checkRefine(summonRefine) )
    {
    for( set .@i, 1; .@i <= f_checkRefine(summonRefine); set .@i, .@i +1 )
    summon getmonsterinfo(1399,0),1399,86400000,"f_mySummon::OnSummon_"+getcharid(3)+"x"+.@i;
    }
    break;
    }
    end;

    function f_checkSummon {

    for( set .@i, 1; .@i <= f_checkRefine(summonRefine); set .@i, .@i +1 )
    {
    if( mobcount(strcharinfo(3),"f_mySummon::OnSummon_"+getcharid(3)+"x"+.@i) )
    return 1;
    }

    return 0;

    }

    function f_checkRefine {

    switch(getarg(0))
    {
    case 5:
    case 6:
    set .@i, 1;
    break;
    case 7:
    case 8:
    case 9:
    set .@i, 2;
    break;
    case 10:
    set .@i, 3;
    break;
    Default:
    set .@i, 0;
    break;
    }
    return .@i;
    }

    }

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

    @Gavard Нужны скриншоты ошибки из item_db.

    • Upvote 2
  2. да и толку от тебя как от таракана!)

    Молодой человек, как вам не стыдно? :)

    @JxOxKxExR

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

    Удачи в начинаниях. ;)

  3. Убедитесь что в ../src/common/mmo.h стоит правильная версия клиента игры, совпадающая с вашим собственным.

    Создадите еще одного персонажа, попробуйте зайти с него.

  4. Удаляй участки кода в ..src/map/*.* везде где есть

    #IFDEF RENEWAL

    ну и естественно в ..src/config/core.h удали строчку

    #include "./renewal.h"

    и сам файл renewal.h находящийся в той же директории

    Только зачем удалять, если его можно просто отключить?

    UPD! Так можно удалить renewal из rAthena, в eAthena 3-их профессий и renewal-механики нет изначально.

    • Upvote 1
  5. Зайдите в:

    ../src/map/pc.c

    Найдите там функции

    pc_payzeny
    pc_getzeny
    pc_paycash
    pc_getcash

    Обратите внимание на то сколько и какие значения эти функции принмают.

    Зайдите в:

    ../src/map/vending.c

    Найдите строчки с ошибкой, и дайте этим функциям недостающие значения :)

  6. А вообще это модификация из eAmod'а :)

    офигеть, МОДИФИКАЦИЯ, сорсы-то хоть ставить не надо? Как они до этого додумались, гениально :D

    3f5a00acf72df93528b6bb7cd0a4fd0c.jpeg

    без понятия как они это реализовали, может в 2 строчки, а может в 500

    просто факт того что в eAmod'е это имеется и как-раз таки на уровне src

  7. Как-то так..


    OnInit:
    setarray .Maps$[0], "prontera", "morocc", "payon";
    for( set .@i, 0; .@i < getarraysize(.Maps$); set .@i, .@i +1 )
    {
    set .@tMapsName$, .Maps[.@i];
    set .MapsName$[.@i], setchar(.@tMapsName$, strtoupper(charat(.@tMapsName$,0)), 0);

    setmapflag .Maps$[.@i], mf_loadevent;
    }
    end;

    OnPCLoadMapEvent:

    for( set .@i, 0; .@i < getarraysize(.Maps$); set .@i, .@i +1 )
    {
    if( .Maps$[.@i] == strcharinfo(3) )
    {
    announce "[ "+.MapsName$[.@i]+" Town ]",bc_self,0x00FFFF,bold,16;
    break;
    }
    }
    end;

    А вообще это модификация из eAmod'а :)


  8. ACMD_FUNC(partybuff)
    {
    struct party_data *p = NULL;
    nullpo_retr(-1, sd);
    if( !sd->status.party_id ) {
    clif_displaymessage(fd, msg_txt(sd,1450)); // You're not in a party.
    return -1;
    }
    p = party_search(sd->status.party_id);
    if( sd->state.spb ) {
    sd->state.spb = 0;
    clif_displaymessage(fd, msg_txt(sd,1451)); // Displaying party member's buffs disabled.
    } else {
    sd->state.spb = 1;
    clif_displaymessage(fd, msg_txt(sd,1452)); // Displaying party member's buffs enabled.
    }
    clif_party_info(p,sd);
    return 0;
    }

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