KinD | Дата: Понедельник, 05.01.2015, 12:35 | Сообщение # 1 |
- Сообщения: 1148
- Награды: 22
- Замечания:
|
ВНИМАНИЕ!В данном дополнении используется мод в котором 3 магазина!Если у вас стандартный мод,то значения будут меньше. 1)Вам необходимо зайти в .sma файл 2)Вам необходимо добавить Код #include "war3ft/craft.h" и Код #include "war3ft/craft.inl" 3)Опустится ниже и зарег. команду
Код //craftshop register_clcmd( "craftshop" , "CMD_Handler" , -1 );
4)Создать в папке war3ft 2 файла.(либо скачать прикрепленные файлы) 5)зайти в items.h и увеличить MAX_SHOPMENU_ITEMS(на +3).У меня получилось вот так #define MAX_SHOPMENU_ITEMS 30 6)идем в client_commands.inl > ищем >CMD_Handle Идем чуть-чуть ниже и добавляем
Код else if ( CMD_Equal( idUser, szCmd, "craftshop" ) ) { WC3_CraftMenu(idUser) }
7)Идем в craft.h и добавляем
Код //Для добавления крафт предмета вам необходимо увеличить MAX_SHOPMENU_ITEMS(items.h) #define CRAFT_ITEM_1 27 #define CRAFT_ITEM_2 28 #define CRAFT_ITEM_3 29 #define MAX_CRAFT_ITEM 3 //Макс.кол-во крафт итемов #define DEFAULT_CONVERT_COST 1000 //Цена за преобразование new g_Craft_LANG[MAX_CRAFT_ITEM][20] = { "ITEM_27", "ITEM_28", "ITEM_29" }; //Первые вещи необходимые для крафта(1 слот) new const p_craft_item1[MAX_CRAFT_ITEM] = { 1, 2, 3 };// //Вторые вещи необходимые для крафта(2 слот) new const p_craft_item2[MAX_CRAFT_ITEM] = { 17, 25, 21 };//Пример:p_craft_item1[1CRAFT_ITEM] + p_craft_item2[1CRAFT_ITEM](если у вас есть данные предметы,то соотв. сможете преобразовать) new const p_craft_item_id[MAX_CRAFT_ITEM] = { 27, 28, 29 };//ID итемов(крафт итемов)
8)Добавляем в craft.inl
Код public WC3_CraftMenu(idUser) { if(!is_user_connected(idUser)) return PLUGIN_HANDLED; new msg[250]; formatex(msg, charsmax(msg), "%L",LANG_PLAYER,"WC3_CRAFTMENU_TITLE",DEFAULT_CONVERT_COST) new menu = menu_create(msg,"Wc3_craftshop_handler") new item[10] for(new i;i<MAX_CRAFT_ITEM;i++) { new need_item[60],LANG_ITEM1[10],LANG_ITEM2[10],txt_msg[60]; formatex(LANG_ITEM1,9,"ITEM_%d",p_craft_item1[i]) formatex(LANG_ITEM2,9,"ITEM_%d",p_craft_item2[i]) if ( ITEM_Has( idUser, p_craft_item1 [i]) > ITEM_NONE) { format(need_item,59,"\d%L,",LANG_PLAYER,LANG_ITEM1) add(txt_msg,59,need_item) } else { format(need_item,59,"\r%L,",LANG_PLAYER,LANG_ITEM1) add(txt_msg,59,need_item) } if ( ITEM_Has( idUser, p_craft_item2 [i]) > ITEM_NONE) { format(need_item,59,"\d%L",LANG_PLAYER,LANG_ITEM2) add(txt_msg,59,need_item) } else { format(need_item,59,"\r%L",LANG_PLAYER,LANG_ITEM2) add(txt_msg,59,need_item) } formatex(msg, 249, "\r%L^n\y%L:%s",LANG_PLAYER,g_Craft_LANG[i],LANG_PLAYER,"WC3_CRAFTITEM_NEED",txt_msg) num_to_str(i+1,item,9) menu_additem(menu, msg, item) } formatex(msg,charsmax(msg),"%L",LANG_PLAYER,"WC3_MENU_EXIT") menu_setprop(menu, MPROP_EXITNAME, msg) menu_display(idUser, menu) return PLUGIN_HANDLED } public Wc3_craftshop_handler( id, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ); return PLUGIN_HANDLED; } new data[6], iName[64]; new access, callback; menu_item_getinfo( menu, item, access, data,5, iName, 63, callback ); new key = str_to_num( data ); if(cs_get_user_money(id) < DEFAULT_CONVERT_COST) { client_print( id, print_center, "%L", LANG_PLAYER, "INSUFFICIENT_FUNDS" ); client_cmd(id, "speak %s", g_szSounds[SOUND_NO_GOLD] ); return PLUGIN_HANDLED; } if ( ITEM_Has( id, p_craft_item1[key-1] ) == ITEM_NONE ||ITEM_Has( id, p_craft_item2[key-1] ) == ITEM_NONE) { client_print( id, print_center, "%L", LANG_PLAYER, "WC3_NO_CRAFT_NEED_ITEM" ); return PLUGIN_HANDLED; } cs_set_user_money(id,cs_get_user_money(id) - DEFAULT_CONVERT_COST) ITEM_RemoveID( id, p_craft_item1[key-1] ) ITEM_RemoveID( id, p_craft_item2[key-1] ) ITEM_GiveItem( id, p_craft_item_id[key-1] ); new szMessage[100],Lang_msg[10]; format(Lang_msg,9,"ITEM_I_%d",p_craft_item_id[key-1]) format(szMessage, sizeof(szMessage) - 1, "^x01%L^x03%L^x01%L ^x04%L", LANG_PLAYER,"WC3_BRACKET_LEFT",LANG_PLAYER,"WC3_MODCLIENT",LANG_PLAYER,"WC3_BRACKET_RIGHT", LANG_PLAYER,Lang_msg); cssbColoredPrint(id, szMessage); return PLUGIN_HANDLED }
9)Компилируем и идем в lang файл(.txt) добавляем
Код WC3_CRAFTMENU_TITLE = Меню преобразования предметов ^nЦена :\r%d \y$ WC3_CRAFTITEM_NEED = Необходимо ITEM_27 = крафт итем 1 ITEM_28 = крафт итем 2 ITEM_29 = крафт итем 3 ITEM_I_27 = инфо о предмете(1) ITEM_I_28 = инфо о предмете(2) ITEM_I_29 = инфо о предмете(3) ITEM_S_27 = крафт 1 ITEM_S_28 = крафт 2 ITEM_S_29 = крафт WC3_NO_CRAFT_NEED_ITEM = У вас не хватает необходимых предметов!
Скрины: покупка предмета:
P.S Вам необходимо просто посмотреть пример "работы предмета" items.inl > ITEM_Offensive(если вы новичок)
Как добавить предмет? Для начала увеличить Код #define MAX_SHOPMENU_ITEMS 1)Увеличить MAX_CRAFT_ITEM 2)Добавить в g_Craft_LANG к примеру ITEM_500(в ланге соотв. ITEM_500 = крафт итем 500) 3)Добавить предметы,который необходимы для крафта. Код 1 предмет - p_craft_item1 2 предмет - p_craft_item2 Т.е к примеру вам нужно чтобы предмет создавался из ankh(id предмета 0) и boots(id предмета 1) вам нужно в p_craft_item1 прописать 0,а в p_craft_item2 1 4)Теперь вам необходимо добавить ID предмета,который вам выдадут. p_craft_item_id Предположим при крафте вы заходите выдать к примеру стандартный предмет(Mask of death) то выглядеть это будет так
Код new const p_craft_item_id[MAX_CRAFT_ITEM] = { 27, 28, 29, 4 //ID маски смерти };//ID итемов(крафт итемов)
Skype:daywerok
Сообщение отредактировал KinD - Понедельник, 05.01.2015, 12:39 |
|
| |
BABAZORO | Дата: Понедельник, 29.06.2015, 18:46 | Сообщение # 3 |
- Сообщения: 32
- Награды: 0
- Замечания:
|
Код //AMXXPC compile.exe // by the AMX Mod X Dev Team
//// war3ft.sma
// C:\Documents and Settings\asd\Desktop\cstrike\addons\amxmodx\scripting\war3ft
/items.h(1) : error 010: invalid function or declaration
// C:\Documents and Settings\asd\Desktop\cstrike\addons\amxmodx\scripting\war3ft
/craft.h(1) : error 010: invalid function or declaration
//
// 2 Errors.
// Could not locate output file C:\Documents and Settings\asd\Desktop\cstrike\ad
dons\amxmodx\scripting\compiled\war3ft.amx (compile failed).
//
// Compilation Time: 4,34 sec
// ----------------------------------------
Press enter to exit ...
Я не понимаю, почему это происходит, Учитывая, что первый заказ и в файле нет кода / текст
|
|
| |
Ewer | Дата: Воскресенье, 29.11.2020, 23:29 | Сообщение # 6 |
- Сообщения: 87
- Награды: 0
- Замечания:
|
На основе кода автора сделал крафт шоп, с некоторыми шмотками
Сообщение отредактировал Ewer - Воскресенье, 29.11.2020, 23:30 |
|
| |
corvusursus1 | Дата: Понедельник, 03.05.2021, 15:04 | Сообщение # 9 |
- Сообщения: 1
- Награды: 0
- Замечания:
|
Добрый день, меня зовутВладислав. Нас заинтересовал Ваш сайт. Мы хотели бы с вами поработать на взаимовыгодных условиях. К примеру, мы бы хотели разместить статью или новость на вашем сайте про наш сайт. Скажите, это возможно? Какие еще варианты у вас есть?
Ответьте пожалуйста наимейл: vladislavkonchenkov73@gmail.com
|
|
| |