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

Энчант система под eAthena


Clown

Рекомендуемые сообщения

Цитата

// Оригинал на rAthena https://rathena.org/board/files/file/3425-usable-enchant-item/
// Сделал для eAthena чувак по имени Clown

function    script    F_DiabloEnchant    {
    set .@bonitem,909; // тутачки айди бонусной вещи, которая удалится и придаст бонусы игроку
    set .@itemid,getarg(0,0);
    set .@enchant,getarg(1,0);
    if ( .@itemid && .@enchant ) {
        for ( set  .@i,EQI_HEAD_TOP; .@i < EQI_ACC_R; set .@i,.@i + 1 ) {
            set  .@equip_itemid,getequipid(.@i);
            set .@menu$,.@menu$ + ( .@equip_itemid == -1 ? "": getitemname( .@equip_itemid ) ) + ":";
        }
        set  .@i,select( .@menu$ );
        set  .@equip_itemid,getequipid( .@i );
        set  .@equip_refine,getequiprefinerycnt( .@i );
        for ( set .@c,0; .@c < 4; set .@c,.@c + 1 ) 
            set .@card[.@c],getequipcardid(.@i,.@c);
        
        if ( .@card[0] && .@card[0] < 4001 ) {
            mes "Signed Item can't be enchanted.";
        }
        // else if ( .@card[3] ) {
            // mes "This item has been enchanted. Cant enchant twice.";
        // }
        else {
            delitem .@equip_itemid,1;
            delitem .@itemid,1;
            delitem .@bonitem,1;
            set .@card[3],.@enchant;
            getitem2 .@equip_itemid,1,1,.@equip_refine,0,.@card[0],.@card[1],.@card[2],.@card[3];
            // equip2 .@equip_itemid,.@equip_refine,0,.@card[0],.@card[1],.@card[2],.@card[3];
            specialeffect2 154;
            message strcharinfo(0),"Enchant Success!";
        }
        close;
    }
    return;
}

Подредактируйте item_db.txt

Цитата

909,Jellopy,Jellopy,3,6,,10,,,,,,,,,,,,,{ bonus bAllstats,5; },{},{}
6359,Guidebook_Exchange,Guidebook Exchange,0,50,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc( "F_DiabloEnchant",6359,909); },{},{}

Собственно нашел на rAthena от Emistry и решил поставить себе на серв, но вот беда - в eAthena полностью не работоспособен был.

Суть скрипта:

Цитата

Люди выбивают / получают этот тикет, щелкают два раза и могут спокойно вставить желлопи (или можно другую вещь - редактируйте) которая при вставке дает определенные бонусы(настраивается в item_db).

 

Изменено пользователем Clown
Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Легко делается через скрипты.

Конечно, на предмет нельзя будет тыкать, но тоже неплохо.
Результат выглядит как-то так.

 

 

 

Тебе понадобится:
 

* failedrefitem <slot>;
* getitem2 <item id>,<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<Account ID>};

 

 

Изменено пользователем Salfer
Ссылка на комментарий
Поделиться на другие сайты

1 час назад, Gendalf сказал:

Почему это нельзя будет тыкать? Кто отменял callfunc(); в eA?o.O

наш бог объявился)) ща он тут всем жару даст

Ссылка на комментарий
Поделиться на другие сайты

3 часа назад, Salfer сказал:

5-20 человек одновременно обращается к этой функции и всё идёт через одно место.

Это вдруг почему? :blink:

Ссылка на комментарий
Поделиться на другие сайты

на геркулесе с этим сталкивался.

были покраски через функцию

если красилось более 5 игроков одновременно , то все их покраски ровнялись 0

Ссылка на комментарий
Поделиться на другие сайты

7 часов назад, Salfer сказал:

на геркулесе с этим сталкивался.

были покраски через функцию

если красилось более 5 игроков одновременно , то все их покраски ровнялись 0

Скрипт надо нормально писать)

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Ребят сделал абсолютно так как сделал клоун и не пашет нечего при нажатии на джелопи не чего не происходит.

П.С Салфера видио удалено.

Ссылка на комментарий
Поделиться на другие сайты

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