Zmurik 1 Report post Posted January 9, 2018 Как сделать нпс обменника на хаос очки? Quote Share this post Link to post Share on other sites
WVWMK 121 Report post Posted January 9, 2018 Пример на коленке без проверок(а они нужны): Добавляем эту функцию в любой файл, лучше в forge.lua Функция получения очков чести и обмена на предмет с ID 1 function chaos_point(role,npc) local Medal = GetChaItem2 ( role , 2 , 3849 ) -- получаем медаль отваги local chaos_point = GetItemAttr ( Medal , ITEMATTR_MAXENERGY ) --получаем значение очков хаоса if chaos_point > 5 then -- если хаос поинтов больше 5 то chaos_point = chaos_point - 5 -- отнимаем 5 очков GiveItem ( role , 0 , 1 , 1 , 4 ) -- выдаем предмет SetItemAttr ( Medal , ITEMATTR_MAXENERGY , chaos_point) -- обновляем кол-во ОХ end end Добавляем эту функцию в NPCScript.lua function MsgProc( character, npc, rpk, page, trade, missionlist, exchangeData ) ... if item.func == JumpPage then return JumpPage( character, npc, page, item.p1 ) --после этой строчки elseif item.func == chaos_point then return chaos_point(character,npc) ... end Используем функцию у нпс function leo_talkzz() Talk( 1, "Если утебя много ОХ я обменяю их на предмет с ID 1.") Text( 1, "Обменять очки Хаоса",chaos_point) end Я не помню есть ли уже написанные функции, мб они и есть, копаться не стал. 1 Quote Делай добро и бросай его в воду Share this post Link to post Share on other sites
BETEP/macs509 87 Report post Posted January 9, 2018 (edited) должна была быть или в баре аргента в 1.39 или у каких обменников 2+ Edited January 9, 2018 by BETEP/macs509 Quote Share this post Link to post Share on other sites
WVWMK 121 Report post Posted January 9, 2018 2 часа назад, BETEP/macs509 сказал: должна была быть или в баре аргента в 1.39 или у каких обменников 2+ я помню что у меня не было точно и у тебя, вроде, так как обмен на звания делали без ОХ, но я могу ошибаться. вот на подобии этой функции можно сделать и проверка там есть. function HasHonorPoint(character,value) --SystemNotice( character , "HasHonorPoint" ) local i= CheckBagItem( character, 3849 ) --SystemNotice( character , "i=="..i) if i~=1 then SystemNotice( character , "Пожалуйста проверьте, если у Вас Медаль отваги ") return LUA_FALSE end local DEFER_RYZ1 = GetChaItem2 ( character , 2 , 3849 ) local HonorPoint = GetItemAttr ( DEFER_RYZ1 , ITEMATTR_VAL_STR) if value > HonorPoint then return LUA_FALSE else return LUA_TRUE end end Quote Делай добро и бросай его в воду Share this post Link to post Share on other sites
Zmurik 1 Report post Posted January 21, 2018 В 09.01.2018 в 18:42, NMS3RR сказал: я помню что у меня не было точно и у тебя, вроде, так как обмен на звания делали без ОХ, но я могу ошибаться. вот на подобии этой функции можно сделать и проверка там есть. function HasHonorPoint(character,value) --SystemNotice( character , "HasHonorPoint" ) local i= CheckBagItem( character, 3849 ) --SystemNotice( character , "i=="..i) if i~=1 then SystemNotice( character , "Пожалуйста проверьте, если у Вас Медаль отваги ") return LUA_FALSE end local DEFER_RYZ1 = GetChaItem2 ( character , 2 , 3849 ) local HonorPoint = GetItemAttr ( DEFER_RYZ1 , ITEMATTR_VAL_STR) if value > HonorPoint then return LUA_FALSE else return LUA_TRUE end end Вот нашел обменника на честь, на хаос поины так и не получилось Quote Share this post Link to post Share on other sites
WVWMK 121 Report post Posted January 21, 2018 5 часов назад, Zmurik сказал: Вот нашел обменника на честь, на хаос поины так и не получилось Я тебе выше расписал все. У тебя все есть, только голову включить Quote Делай добро и бросай его в воду Share this post Link to post Share on other sites