--[[ ================================================================================ ГАЙД: синтез кукол (Doll Synthesis) — Role_DollSynthesis.lua ================================================================================ Ключи DollSynthesisConfig[0]..[6] = byQuality (= Quality в item_proto), EItemQuality: [0] белый/обычный (EIQ_White) [1] жёлтый [2] зелёный [3] синий [4] оранжевый [5] фиолетовый [6] розовый (макс. тир кукол в item_proto для проекта) В клиенте ряд синтеза с индексом r (0..6) шлёт NC_DollSynthesis с byQuality = r. Поля одной секции: cost — списание золота за один синтез (смотри DollSynthesisGetCost). success — шанс успеха, шкала 0..10000 (10000 = 100%). success_items — взвешенный пул предмета при успехе. fail_items — взвешенный пул при неуспехе. items — запасной пул, если success_items и fail_items пусты. Запись в пуле: { itemId = 12345, weight = 100} или совместимый формат { 12345, …}. Если после выбора ветки пул пуст — подставляется DollSummonPool (Role_DollSummon.lua). После правок обычно нужен перезапуск World (или полная перезагрузка Lua скриптов). Ниже в файле у каждой функции кратко подписано, за что она отвечает. ================================================================================ ]] if DollSynthesisConfig == nil then DollSynthesisConfig = { -- byQuality 0 — белый / обычный (EIQ_White); в item_proto Quality="0", id кукол 1360133–1360432 [0] = { cost = 50, success = 9000, success_items = { { itemId = 1360133, weight = 100}, { itemId = 1360134, weight = 100}, { itemId = 1360135, weight = 100}, { itemId = 1360136, weight = 100}, { itemId = 1360137, weight = 100}, { itemId = 1360138, weight = 70}, { itemId = 1360139, weight = 70}, { itemId = 1360140, weight = 70}, { itemId = 1360141, weight = 70}, { itemId = 1360142, weight = 70}, { itemId = 1360143, weight = 70}, { itemId = 1360144, weight = 70}, { itemId = 1360145, weight = 70}, { itemId = 1360146, weight = 70}, { itemId = 1360147, weight = 70}, { itemId = 1360148, weight = 70}, { itemId = 1360149, weight = 70}, { itemId = 1360150, weight = 70}, { itemId = 1360151, weight = 70}, { itemId = 1360152, weight = 70}, { itemId = 1360153, weight = 70}, { itemId = 1360154, weight = 70}, { itemId = 1360155, weight = 70}, { itemId = 1360356, weight = 70}, { itemId = 1360357, weight = 70}, { itemId = 1360358, weight = 70}, { itemId = 1360359, weight = 70}, { itemId = 1360360, weight = 70}, { itemId = 1360361, weight = 70}, { itemId = 1360362, weight = 70}, { itemId = 1360363, weight = 70}, { itemId = 1360364, weight = 70}, { itemId = 1360365, weight = 70}, { itemId = 1360366, weight = 70}, { itemId = 1360367, weight = 70}, { itemId = 1360368, weight = 70}, { itemId = 1360369, weight = 70}, { itemId = 1360370, weight = 70}, { itemId = 1360371, weight = 70}, { itemId = 1360372, weight = 70}, { itemId = 1360373, weight = 70}, { itemId = 1360374, weight = 70}, { itemId = 1360375, weight = 70}, { itemId = 1360376, weight = 70}, { itemId = 1360377, weight = 70}, { itemId = 1360378, weight = 70}, { itemId = 1360379, weight = 70}, { itemId = 1360380, weight = 70}, { itemId = 1360381, weight = 70}, { itemId = 1360382, weight = 70}, { itemId = 1360383, weight = 70}, { itemId = 1360384, weight = 70}, { itemId = 1360385, weight = 70}, { itemId = 1360386, weight = 70}, { itemId = 1360387, weight = 70}, { itemId = 1360388, weight = 70}, { itemId = 1360389, weight = 70}, { itemId = 1360390, weight = 70}, { itemId = 1360391, weight = 70}, { itemId = 1360392, weight = 70}, { itemId = 1360393, weight = 70}, { itemId = 1360394, weight = 70}, { itemId = 1360395, weight = 70}, { itemId = 1360396, weight = 70}, { itemId = 1360397, weight = 70}, { itemId = 1360398, weight = 70}, { itemId = 1360399, weight = 70}, { itemId = 1360400, weight = 70}, { itemId = 1360401, weight = 70}, { itemId = 1360402, weight = 70}, { itemId = 1360403, weight = 70}, { itemId = 1360404, weight = 70}, { itemId = 1360405, weight = 70}, { itemId = 1360406, weight = 70}, { itemId = 1360407, weight = 70}, { itemId = 1360408, weight = 70}, { itemId = 1360409, weight = 70}, { itemId = 1360410, weight = 70}, { itemId = 1360411, weight = 70}, { itemId = 1360412, weight = 70}, { itemId = 1360413, weight = 70}, { itemId = 1360414, weight = 70}, { itemId = 1360415, weight = 70}, { itemId = 1360416, weight = 70}, { itemId = 1360417, weight = 70}, { itemId = 1360418, weight = 70}, { itemId = 1360419, weight = 70}, { itemId = 1360420, weight = 70}, { itemId = 1360421, weight = 70}, { itemId = 1360422, weight = 70}, { itemId = 1360423, weight = 70}, { itemId = 1360424, weight = 70}, { itemId = 1360425, weight = 70}, { itemId = 1360426, weight = 70}, { itemId = 1360427, weight = 70}, { itemId = 1360428, weight = 70}, { itemId = 1360429, weight = 70}, { itemId = 1360430, weight = 70}, { itemId = 1360431, weight = 70}, { itemId = 1360432, weight = 70}, { itemId = 1360433, weight = 60}, { itemId = 1360434, weight = 60}, { itemId = 1360435, weight = 60}, { itemId = 1360436, weight = 60}, { itemId = 1360437, weight = 60}, { itemId = 1360438, weight = 60}, { itemId = 1360439, weight = 60}, { itemId = 1360440, weight = 60}, { itemId = 1360441, weight = 60}, { itemId = 1360442, weight = 60}, { itemId = 1360443, weight = 60}, { itemId = 1360444, weight = 60}, { itemId = 1360445, weight = 60}, { itemId = 1360446, weight = 60}, { itemId = 1360447, weight = 60}, { itemId = 1360448, weight = 60}, { itemId = 1360449, weight = 60}, { itemId = 1360450, weight = 60}, { itemId = 1360451, weight = 60}, { itemId = 1360452, weight = 60}, { itemId = 1360453, weight = 60}, { itemId = 1360454, weight = 60}, { itemId = 1360455, weight = 60}, { itemId = 1360456, weight = 60}, { itemId = 1360457, weight = 60}, { itemId = 1360458, weight = 60}, { itemId = 1360459, weight = 60}, { itemId = 1360460, weight = 60}, { itemId = 1360461, weight = 60}, { itemId = 1360462, weight = 60}, { itemId = 1360463, weight = 60}, { itemId = 1360464, weight = 60}, { itemId = 1360465, weight = 60}, { itemId = 1360466, weight = 60}, { itemId = 1360467, weight = 60}, { itemId = 1360468, weight = 60}, { itemId = 1360469, weight = 60}, { itemId = 1360470, weight = 60}, { itemId = 1360471, weight = 60}, { itemId = 1360472, weight = 60}, { itemId = 1360473, weight = 60}, { itemId = 1360474, weight = 60}, { itemId = 1360475, weight = 60}, { itemId = 1360476, weight = 60}, { itemId = 1360477, weight = 60}, { itemId = 1360478, weight = 60}, { itemId = 1360479, weight = 60}, { itemId = 1360480, weight = 60}, { itemId = 1360481, weight = 60}, { itemId = 1360482, weight = 60}, { itemId = 1360483, weight = 60}, { itemId = 1360484, weight = 60}, { itemId = 1360485, weight = 60}, { itemId = 1360486, weight = 60}, { itemId = 1360487, weight = 60}, { itemId = 1360488, weight = 60}, { itemId = 1360489, weight = 60}, { itemId = 1360490, weight = 60}, { itemId = 1360491, weight = 60}, { itemId = 1360492, weight = 60}, { itemId = 1360493, weight = 60}, { itemId = 1360494, weight = 60}, { itemId = 1360495, weight = 60}, { itemId = 1360496, weight = 60}, { itemId = 1360497, weight = 60}, { itemId = 1360498, weight = 60}, { itemId = 1360499, weight = 60}, { itemId = 1360500, weight = 60}, { itemId = 1360501, weight = 60}, { itemId = 1360502, weight = 60}, { itemId = 1360503, weight = 60}, { itemId = 1360504, weight = 60}, { itemId = 1360505, weight = 60}, { itemId = 1360506, weight = 60}, { itemId = 1360507, weight = 60}, { itemId = 1360508, weight = 60}, { itemId = 1360509, weight = 60}, { itemId = 1360510, weight = 60}, { itemId = 1360511, weight = 60}, { itemId = 1360512, weight = 60}, }, fail_items = { { itemId = 1360133, weight = 100}, { itemId = 1360134, weight = 100}, { itemId = 1360135, weight = 100}, { itemId = 1360136, weight = 100}, { itemId = 1360137, weight = 100}, { itemId = 1360138, weight = 100}, { itemId = 1360139, weight = 70}, { itemId = 1360140, weight = 70}, { itemId = 1360141, weight = 70}, { itemId = 1360142, weight = 70}, { itemId = 1360143, weight = 70}, { itemId = 1360144, weight = 70}, { itemId = 1360145, weight = 70}, { itemId = 1360146, weight = 70}, { itemId = 1360147, weight = 70}, { itemId = 1360148, weight = 70}, { itemId = 1360149, weight = 70}, { itemId = 1360150, weight = 70}, { itemId = 1360151, weight = 70}, { itemId = 1360152, weight = 70}, { itemId = 1360153, weight = 70}, { itemId = 1360154, weight = 70}, { itemId = 1360155, weight = 70}, { itemId = 1360356, weight = 70}, { itemId = 1360357, weight = 70}, { itemId = 1360358, weight = 70}, { itemId = 1360359, weight = 70}, { itemId = 1360360, weight = 70}, { itemId = 1360361, weight = 70}, { itemId = 1360362, weight = 70}, { itemId = 1360363, weight = 70}, { itemId = 1360364, weight = 70}, { itemId = 1360365, weight = 70}, { itemId = 1360366, weight = 70}, { itemId = 1360367, weight = 70}, { itemId = 1360368, weight = 70}, { itemId = 1360369, weight = 70}, { itemId = 1360370, weight = 70}, { itemId = 1360371, weight = 70}, { itemId = 1360372, weight = 70}, { itemId = 1360373, weight = 70}, { itemId = 1360374, weight = 70}, { itemId = 1360375, weight = 70}, { itemId = 1360376, weight = 70}, { itemId = 1360377, weight = 70}, { itemId = 1360378, weight = 70}, { itemId = 1360379, weight = 70}, { itemId = 1360380, weight = 70}, { itemId = 1360381, weight = 70}, { itemId = 1360382, weight = 70}, { itemId = 1360383, weight = 70}, }, }, -- byQuality 1 — жёлтый (EIQ_Yellow) [1] = { cost = 100, success = 8000, success_items = { { itemId = 1360433, weight = 100}, { itemId = 1360434, weight = 100}, { itemId = 1360435, weight = 100}, { itemId = 1360436, weight = 100}, { itemId = 1360437, weight = 100}, { itemId = 1360438, weight = 100}, { itemId = 1360439, weight = 100}, { itemId = 1360440, weight = 100}, { itemId = 1360441, weight = 100}, { itemId = 1360442, weight = 100}, { itemId = 1360443, weight = 100}, { itemId = 1360444, weight = 100}, { itemId = 1360445, weight = 60}, { itemId = 1360446, weight = 60}, { itemId = 1360447, weight = 60}, { itemId = 1360448, weight = 60}, { itemId = 1360449, weight = 60}, { itemId = 1360450, weight = 60}, { itemId = 1360451, weight = 60}, { itemId = 1360452, weight = 60}, { itemId = 1360453, weight = 60}, { itemId = 1360454, weight = 60}, { itemId = 1360455, weight = 60}, { itemId = 1360456, weight = 60}, { itemId = 1360457, weight = 60}, { itemId = 1360458, weight = 60}, { itemId = 1360459, weight = 60}, { itemId = 1360460, weight = 60}, { itemId = 1360461, weight = 60}, { itemId = 1360462, weight = 60}, { itemId = 1360463, weight = 60}, { itemId = 1360464, weight = 60}, { itemId = 1360465, weight = 60}, { itemId = 1360466, weight = 60}, { itemId = 1360467, weight = 60}, { itemId = 1360468, weight = 60}, { itemId = 1360469, weight = 60}, { itemId = 1360470, weight = 60}, { itemId = 1360471, weight = 60}, { itemId = 1360472, weight = 60}, { itemId = 1360473, weight = 60}, { itemId = 1360474, weight = 60}, { itemId = 1360475, weight = 60}, { itemId = 1360476, weight = 60}, { itemId = 1360477, weight = 60}, { itemId = 1360478, weight = 60}, { itemId = 1360479, weight = 60}, { itemId = 1360480, weight = 60}, { itemId = 1360481, weight = 60}, { itemId = 1360482, weight = 60}, { itemId = 1360483, weight = 60}, { itemId = 1360484, weight = 60}, { itemId = 1360485, weight = 60}, { itemId = 1360486, weight = 60}, { itemId = 1360487, weight = 60}, { itemId = 1360488, weight = 60}, { itemId = 1360489, weight = 60}, { itemId = 1360490, weight = 60}, { itemId = 1360491, weight = 60}, { itemId = 1360492, weight = 60}, { itemId = 1360493, weight = 60}, { itemId = 1360494, weight = 60}, { itemId = 1360495, weight = 60}, { itemId = 1360496, weight = 60}, { itemId = 1360497, weight = 60}, { itemId = 1360498, weight = 60}, { itemId = 1360499, weight = 60}, { itemId = 1360500, weight = 60}, { itemId = 1360501, weight = 60}, { itemId = 1360502, weight = 60}, { itemId = 1360503, weight = 60}, { itemId = 1360504, weight = 60}, { itemId = 1360505, weight = 60}, { itemId = 1360506, weight = 60}, { itemId = 1360507, weight = 60}, { itemId = 1360508, weight = 60}, { itemId = 1360509, weight = 60}, { itemId = 1360510, weight = 60}, { itemId = 1360511, weight = 60}, { itemId = 1360512, weight = 60}, { itemId = 1360513, weight = 40}, { itemId = 1360514, weight = 40}, { itemId = 1360515, weight = 40}, { itemId = 1360516, weight = 40}, { itemId = 1360517, weight = 40}, { itemId = 1360518, weight = 40}, { itemId = 1360519, weight = 40}, { itemId = 1360520, weight = 40}, { itemId = 1360521, weight = 40}, { itemId = 1360522, weight = 40}, { itemId = 1360523, weight = 40}, { itemId = 1360524, weight = 40}, { itemId = 1360525, weight = 40}, { itemId = 1360526, weight = 40}, { itemId = 1360527, weight = 40}, { itemId = 1360528, weight = 40}, { itemId = 1360529, weight = 40}, { itemId = 1360530, weight = 40}, { itemId = 1360531, weight = 40}, { itemId = 1360532, weight = 40}, { itemId = 1360533, weight = 40}, { itemId = 1360534, weight = 40}, { itemId = 1360535, weight = 40}, { itemId = 1360536, weight = 40}, { itemId = 1360537, weight = 40}, { itemId = 1360538, weight = 40}, { itemId = 1360539, weight = 40}, { itemId = 1360540, weight = 40}, { itemId = 1360541, weight = 40}, { itemId = 1360542, weight = 40}, { itemId = 1360543, weight = 40}, { itemId = 1360544, weight = 40}, { itemId = 1360545, weight = 40}, { itemId = 1360546, weight = 40}, { itemId = 1360547, weight = 40}, { itemId = 1360548, weight = 40}, { itemId = 1360549, weight = 40}, { itemId = 1360550, weight = 40}, { itemId = 1360551, weight = 40}, { itemId = 1360552, weight = 40}, { itemId = 1360553, weight = 40}, { itemId = 1360554, weight = 40}, { itemId = 1360555, weight = 40}, { itemId = 1360556, weight = 40}, { itemId = 1360557, weight = 40}, { itemId = 1360558, weight = 40}, { itemId = 1360559, weight = 40}, { itemId = 1360560, weight = 40}, { itemId = 1360561, weight = 40}, { itemId = 1360562, weight = 40}, { itemId = 1360563, weight = 40}, { itemId = 1360564, weight = 40}, { itemId = 1360565, weight = 40}, { itemId = 1360566, weight = 40}, { itemId = 1360567, weight = 40}, { itemId = 1360568, weight = 40}, { itemId = 1360569, weight = 40}, { itemId = 1360570, weight = 40}, { itemId = 1360571, weight = 40}, { itemId = 1360572, weight = 40}, }, fail_items = { { itemId = 1360433, weight = 100}, { itemId = 1360434, weight = 100}, { itemId = 1360435, weight = 100}, { itemId = 1360436, weight = 100}, { itemId = 1360437, weight = 100}, { itemId = 1360438, weight = 100}, { itemId = 1360439, weight = 100}, { itemId = 1360440, weight = 60}, { itemId = 1360441, weight = 60}, { itemId = 1360442, weight = 60}, { itemId = 1360443, weight = 60}, { itemId = 1360444, weight = 60}, { itemId = 1360445, weight = 60}, { itemId = 1360446, weight = 60}, { itemId = 1360447, weight = 60}, { itemId = 1360448, weight = 60}, { itemId = 1360449, weight = 60}, { itemId = 1360450, weight = 60}, { itemId = 1360451, weight = 60}, { itemId = 1360452, weight = 60}, { itemId = 1360453, weight = 60}, { itemId = 1360454, weight = 60}, { itemId = 1360455, weight = 60}, { itemId = 1360456, weight = 60}, { itemId = 1360457, weight = 60}, { itemId = 1360458, weight = 60}, { itemId = 1360459, weight = 60}, { itemId = 1360460, weight = 60}, { itemId = 1360461, weight = 60}, { itemId = 1360462, weight = 60}, { itemId = 1360463, weight = 60}, { itemId = 1360464, weight = 60}, { itemId = 1360465, weight = 60}, { itemId = 1360466, weight = 60}, { itemId = 1360467, weight = 60}, { itemId = 1360468, weight = 60}, { itemId = 1360469, weight = 60}, { itemId = 1360470, weight = 60}, { itemId = 1360471, weight = 60}, { itemId = 1360472, weight = 60}, }, }, -- byQuality 2 — зелёный (EIQ_Green) [2] = { cost = 200, success = 7000, success_items = { { itemId = 1360513, weight = 100}, { itemId = 1360514, weight = 100}, { itemId = 1360515, weight = 100}, { itemId = 1360516, weight = 100}, { itemId = 1360517, weight = 100}, { itemId = 1360518, weight = 50}, { itemId = 1360519, weight = 50}, { itemId = 1360520, weight = 50}, { itemId = 1360521, weight = 50}, { itemId = 1360522, weight = 50}, { itemId = 1360523, weight = 50}, { itemId = 1360524, weight = 50}, { itemId = 1360525, weight = 50}, { itemId = 1360526, weight = 50}, { itemId = 1360527, weight = 50}, { itemId = 1360528, weight = 50}, { itemId = 1360529, weight = 50}, { itemId = 1360530, weight = 50}, { itemId = 1360531, weight = 50}, { itemId = 1360532, weight = 50}, { itemId = 1360533, weight = 50}, { itemId = 1360534, weight = 50}, { itemId = 1360535, weight = 50}, { itemId = 1360536, weight = 50}, { itemId = 1360537, weight = 50}, { itemId = 1360538, weight = 50}, { itemId = 1360539, weight = 50}, { itemId = 1360540, weight = 50}, { itemId = 1360541, weight = 50}, { itemId = 1360542, weight = 50}, { itemId = 1360543, weight = 50}, { itemId = 1360544, weight = 50}, { itemId = 1360545, weight = 50}, { itemId = 1360546, weight = 50}, { itemId = 1360547, weight = 50}, { itemId = 1360548, weight = 50}, { itemId = 1360549, weight = 50}, { itemId = 1360550, weight = 50}, { itemId = 1360551, weight = 50}, { itemId = 1360552, weight = 50}, { itemId = 1360553, weight = 50}, { itemId = 1360554, weight = 50}, { itemId = 1360555, weight = 50}, { itemId = 1360556, weight = 50}, { itemId = 1360557, weight = 50}, { itemId = 1360558, weight = 50}, { itemId = 1360559, weight = 50}, { itemId = 1360560, weight = 50}, { itemId = 1360561, weight = 50}, { itemId = 1360562, weight = 50}, { itemId = 1360563, weight = 50}, { itemId = 1360564, weight = 50}, { itemId = 1360565, weight = 50}, { itemId = 1360566, weight = 50}, { itemId = 1360567, weight = 50}, { itemId = 1360568, weight = 50}, { itemId = 1360569, weight = 50}, { itemId = 1360570, weight = 50}, { itemId = 1360571, weight = 50}, { itemId = 1360572, weight = 50}, { itemId = 1360573, weight = 30}, { itemId = 1360574, weight = 30}, { itemId = 1360575, weight = 30}, { itemId = 1360576, weight = 30}, { itemId = 1360577, weight = 30}, { itemId = 1360578, weight = 30}, { itemId = 1360579, weight = 30}, { itemId = 1360580, weight = 30}, { itemId = 1360581, weight = 30}, { itemId = 1360582, weight = 30}, { itemId = 1360583, weight = 30}, { itemId = 1360584, weight = 30}, { itemId = 1360585, weight = 30}, { itemId = 1360586, weight = 30}, { itemId = 1360587, weight = 30}, { itemId = 1360588, weight = 30}, { itemId = 1360589, weight = 30}, { itemId = 1360590, weight = 30}, { itemId = 1360591, weight = 30}, { itemId = 1360592, weight = 30}, { itemId = 1360593, weight = 30}, { itemId = 1360594, weight = 30}, { itemId = 1360595, weight = 30}, { itemId = 1360596, weight = 30}, { itemId = 1360597, weight = 30}, { itemId = 1360598, weight = 30}, { itemId = 1360599, weight = 30}, { itemId = 1360600, weight = 30}, { itemId = 1360601, weight = 30}, { itemId = 1360602, weight = 30}, { itemId = 1360603, weight = 30}, { itemId = 1360604, weight = 30}, { itemId = 1360605, weight = 30}, { itemId = 1360606, weight = 30}, { itemId = 1360607, weight = 30}, { itemId = 1360608, weight = 30}, { itemId = 1360609, weight = 30}, { itemId = 1360610, weight = 30}, { itemId = 1360611, weight = 30}, { itemId = 1360612, weight = 30}, }, fail_items = { { itemId = 1360513, weight = 100}, { itemId = 1360514, weight = 100}, { itemId = 1360515, weight = 100}, { itemId = 1360516, weight = 100}, { itemId = 1360517, weight = 50}, { itemId = 1360518, weight = 50}, { itemId = 1360519, weight = 50}, { itemId = 1360520, weight = 50}, { itemId = 1360521, weight = 50}, { itemId = 1360522, weight = 50}, { itemId = 1360523, weight = 50}, { itemId = 1360524, weight = 50}, { itemId = 1360525, weight = 50}, { itemId = 1360526, weight = 50}, { itemId = 1360527, weight = 50}, { itemId = 1360528, weight = 50}, { itemId = 1360529, weight = 50}, { itemId = 1360530, weight = 50}, { itemId = 1360531, weight = 50}, { itemId = 1360532, weight = 50}, { itemId = 1360533, weight = 50}, { itemId = 1360534, weight = 50}, { itemId = 1360535, weight = 50}, { itemId = 1360536, weight = 50}, { itemId = 1360537, weight = 50}, { itemId = 1360538, weight = 50}, { itemId = 1360539, weight = 50}, { itemId = 1360540, weight = 50}, { itemId = 1360541, weight = 50}, { itemId = 1360542, weight = 50}, { itemId = 1360543, weight = 50}, { itemId = 1360544, weight = 50}, }, }, -- byQuality 3 — синий (EIQ_Blue) [3] = { cost = 400, success = 6000, success_items = { { itemId = 1360573, weight = 100}, { itemId = 1360574, weight = 100}, { itemId = 1360575, weight = 100}, { itemId = 1360576, weight = 100}, { itemId = 1360577, weight = 100}, { itemId = 1360578, weight = 100}, { itemId = 1360579, weight = 100}, { itemId = 1360580, weight = 60}, { itemId = 1360581, weight = 60}, { itemId = 1360582, weight = 60}, { itemId = 1360583, weight = 60}, { itemId = 1360584, weight = 60}, { itemId = 1360585, weight = 60}, { itemId = 1360586, weight = 60}, { itemId = 1360587, weight = 60}, { itemId = 1360588, weight = 60}, { itemId = 1360589, weight = 60}, { itemId = 1360590, weight = 60}, { itemId = 1360591, weight = 60}, { itemId = 1360592, weight = 60}, { itemId = 1360593, weight = 60}, { itemId = 1360594, weight = 60}, { itemId = 1360595, weight = 60}, { itemId = 1360596, weight = 60}, { itemId = 1360597, weight = 60}, { itemId = 1360598, weight = 60}, { itemId = 1360599, weight = 60}, { itemId = 1360600, weight = 60}, { itemId = 1360601, weight = 60}, { itemId = 1360602, weight = 60}, { itemId = 1360603, weight = 60}, { itemId = 1360604, weight = 60}, { itemId = 1360605, weight = 60}, { itemId = 1360606, weight = 60}, { itemId = 1360607, weight = 60}, { itemId = 1360608, weight = 60}, { itemId = 1360609, weight = 60}, { itemId = 1360610, weight = 60}, { itemId = 1360611, weight = 60}, { itemId = 1360612, weight = 60}, { itemId = 1360613, weight = 20}, { itemId = 1360614, weight = 20}, { itemId = 1360615, weight = 20}, { itemId = 1360616, weight = 20}, { itemId = 1360617, weight = 20}, { itemId = 1360618, weight = 20}, { itemId = 1360619, weight = 20}, { itemId = 1360620, weight = 20}, { itemId = 1360621, weight = 20}, { itemId = 1360622, weight = 20}, { itemId = 1360623, weight = 20}, { itemId = 1360624, weight = 20}, { itemId = 1360625, weight = 20}, { itemId = 1360626, weight = 20}, { itemId = 1360627, weight = 20}, { itemId = 1360628, weight = 20}, { itemId = 1360629, weight = 20}, { itemId = 1360630, weight = 20}, { itemId = 1360631, weight = 20}, { itemId = 1360632, weight = 20}, { itemId = 1360633, weight = 20}, { itemId = 1360634, weight = 20}, { itemId = 1360635, weight = 20}, { itemId = 1360636, weight = 20}, { itemId = 1360637, weight = 20}, { itemId = 1360638, weight = 20}, { itemId = 1360639, weight = 20}, { itemId = 1360640, weight = 20}, { itemId = 1360641, weight = 20}, { itemId = 1360642, weight = 20}, }, fail_items = { { itemId = 1360573, weight = 100}, { itemId = 1360574, weight = 100}, { itemId = 1360575, weight = 50}, { itemId = 1360576, weight = 50}, { itemId = 1360577, weight = 50}, { itemId = 1360578, weight = 50}, { itemId = 1360579, weight = 50}, { itemId = 1360580, weight = 50}, { itemId = 1360581, weight = 50}, { itemId = 1360582, weight = 50}, { itemId = 1360583, weight = 50}, { itemId = 1360584, weight = 50}, { itemId = 1360585, weight = 50}, { itemId = 1360586, weight = 50}, { itemId = 1360587, weight = 50}, { itemId = 1360588, weight = 50}, { itemId = 1360589, weight = 50}, { itemId = 1360590, weight = 50}, { itemId = 1360591, weight = 50}, { itemId = 1360592, weight = 50}, }, }, -- byQuality 4 — оранжевый (EIQ_Orange) [4] = { cost = 600, success = 4000, success_items = { { itemId = 1360613, weight = 100}, { itemId = 1360614, weight = 100}, { itemId = 1360615, weight = 100}, { itemId = 1360616, weight = 100}, { itemId = 1360617, weight = 100}, { itemId = 1360618, weight = 100}, { itemId = 1360619, weight = 100}, { itemId = 1360620, weight = 60}, { itemId = 1360621, weight = 60}, { itemId = 1360622, weight = 60}, { itemId = 1360623, weight = 60}, { itemId = 1360624, weight = 60}, { itemId = 1360625, weight = 60}, { itemId = 1360626, weight = 60}, { itemId = 1360627, weight = 60}, { itemId = 1360628, weight = 60}, { itemId = 1360629, weight = 60}, { itemId = 1360630, weight = 60}, { itemId = 1360631, weight = 60}, { itemId = 1360632, weight = 60}, { itemId = 1360633, weight = 60}, { itemId = 1360634, weight = 60}, { itemId = 1360635, weight = 60}, { itemId = 1360636, weight = 60}, { itemId = 1360637, weight = 60}, { itemId = 1360638, weight = 60}, { itemId = 1360639, weight = 60}, { itemId = 1360640, weight = 60}, { itemId = 1360641, weight = 60}, { itemId = 1360642, weight = 60}, { itemId = 1360643, weight = 10}, { itemId = 1360644, weight = 10}, { itemId = 1360645, weight = 10}, { itemId = 1360646, weight = 10}, { itemId = 1360647, weight = 10}, { itemId = 1360648, weight = 10}, { itemId = 1360649, weight = 10}, { itemId = 1360650, weight = 10}, { itemId = 1360651, weight = 10}, { itemId = 1360652, weight = 10}, { itemId = 1360653, weight = 10}, { itemId = 1360654, weight = 10}, { itemId = 1360655, weight = 10}, { itemId = 1360656, weight = 10}, { itemId = 1360657, weight = 10}, { itemId = 1360658, weight = 10}, { itemId = 1360659, weight = 10}, { itemId = 1360660, weight = 10}, { itemId = 1360661, weight = 10}, { itemId = 1360662, weight = 10}, }, fail_items = { { itemId = 1360613, weight = 100}, { itemId = 1360614, weight = 100}, { itemId = 1360615, weight = 100}, { itemId = 1360616, weight = 100}, { itemId = 1360617, weight = 60}, { itemId = 1360618, weight = 60}, { itemId = 1360619, weight = 60}, { itemId = 1360620, weight = 60}, { itemId = 1360621, weight = 60}, { itemId = 1360622, weight = 60}, { itemId = 1360623, weight = 60}, { itemId = 1360624, weight = 60}, { itemId = 1360625, weight = 60}, { itemId = 1360626, weight = 60}, }, }, -- byQuality 5 — фиолетовый (EIQ_Purple) [5] = { cost = 800, success = 1000, success_items = { { itemId = 1360643, weight = 100}, { itemId = 1360644, weight = 100}, { itemId = 1360645, weight = 100}, { itemId = 1360646, weight = 100}, { itemId = 1360647, weight = 100}, { itemId = 1360648, weight = 55}, { itemId = 1360649, weight = 55}, { itemId = 1360650, weight = 55}, { itemId = 1360651, weight = 55}, { itemId = 1360652, weight = 55}, { itemId = 1360653, weight = 55}, { itemId = 1360654, weight = 55}, { itemId = 1360655, weight = 55}, { itemId = 1360656, weight = 55}, { itemId = 1360657, weight = 55}, { itemId = 1360658, weight = 55}, { itemId = 1360659, weight = 55}, { itemId = 1360660, weight = 55}, { itemId = 1360661, weight = 55}, { itemId = 1360662, weight = 55}, { itemId = 1360663, weight = 3}, { itemId = 1360664, weight = 3}, { itemId = 1360665, weight = 3}, { itemId = 1360666, weight = 3}, { itemId = 1360667, weight = 3}, { itemId = 1360668, weight = 3}, { itemId = 1360669, weight = 3}, { itemId = 1360670, weight = 3}, { itemId = 1360671, weight = 3}, { itemId = 1360672, weight = 3}, { itemId = 1360673, weight = 3}, { itemId = 1360674, weight = 3}, { itemId = 1360675, weight = 3}, { itemId = 1360676, weight = 3}, { itemId = 1360677, weight = 3}, }, fail_items = { { itemId = 1360643, weight = 100}, { itemId = 1360644, weight = 100}, { itemId = 1360645, weight = 100}, { itemId = 1360646, weight = 30}, { itemId = 1360647, weight = 30}, { itemId = 1360648, weight = 30}, { itemId = 1360649, weight = 30}, { itemId = 1360650, weight = 30}, { itemId = 1360651, weight = 30}, { itemId = 1360652, weight = 30}, }, }, -- byQuality 6 — розовый (EIQ_Pink) [6] = { cost = 900, success = 800, success_items = { { itemId = 1360663, weight = 100}, { itemId = 1360664, weight = 100}, { itemId = 1360665, weight = 100}, { itemId = 1360666, weight = 30}, { itemId = 1360667, weight = 30}, { itemId = 1360668, weight = 30}, { itemId = 1360669, weight = 30}, { itemId = 1360670, weight = 30}, { itemId = 1360671, weight = 30}, { itemId = 1360672, weight = 30}, { itemId = 1360673, weight = 30}, { itemId = 1360674, weight = 30}, { itemId = 1360675, weight = 30}, { itemId = 1360676, weight = 30}, { itemId = 1360677, weight = 30}, }, fail_items = { { itemId = 1360663, weight = 100}, { itemId = 1360664, weight = 40}, { itemId = 1360665, weight = 40}, { itemId = 1360666, weight = 40}, { itemId = 1360667, weight = 40}, { itemId = 1360668, weight = 40}, { itemId = 1360669, weight = 40}, }, }, } end -- NormalizePool(pool) -- Назначение: вернуть непустой табличный пул для розыгрыша результата. -- Если переданный pool пуст или не массив — подставляет DollSummonPool; иначе {}. local function NormalizePool(pool) if type(pool) == "table" and #pool > 0 then return pool end if DollSummonPool ~= nil and type(DollSummonPool) == "table" and #DollSummonPool > 0 then return DollSummonPool end return {} end -- GetItemIdFromPick(pick) -- Назначение: вытащить числовой itemId из одной записи, которую вернул GetWeightedRandomItem. -- Поддержка полей pick[1], pick.itemId, pick.id; при ошибке — 0. local function GetItemIdFromPick(pick) if type(pick) ~= "table" then return 0 end return pick[1] or pick.itemId or pick.id or 0 end -- DollSynthesis(quality, roleId) -- Назначение: основная логика одного синтеза по рангу quality (byQuality кукол в материале). -- Выбирает DollSynthesisConfig[quality], бросает успех по cfg.success, берёт success_items или -- fail_items (или cfg.items / DollSummonPool через NormalizePool), вызывает GetWeightedRandomItem. -- Возврат: itemId — ID выданной куклы (0 при невалидном конфиге); cost — золото за попытку. -- roleId: пока не используется в теле; можно задействовать под персонажа/бонусы. function DollSynthesis(quality, roleId) local q = tonumber(quality) or 0 local cfg = DollSynthesisConfig[q] if cfg == nil then -- Розовое [6]: если секцию удалили из таблицы, подставляем [5] как запасной if q == 6 then cfg = DollSynthesisConfig[5] end if cfg == nil then return 0, 0 end end local cost = tonumber(cfg.cost) or 0 if cost < 0 then cost = 0 end local success = tonumber(cfg.success) or 0 if success < 0 then success = 0 elseif success > 10000 then success = 10000 end local isSuccess = (math.random(10000) <= success) local pool = nil if isSuccess then pool = cfg.success_items else pool = cfg.fail_items end if pool == nil or #pool == 0 then pool = cfg.items end pool = NormalizePool(pool) local pick = GetWeightedRandomItem(pool) local itemId = GetItemIdFromPick(pick) return itemId, cost end -- DollSynthesisGetCost(quality) -- Назначение: только цена в золоте для UI/проверки (без розыгрыша предмета). -- Те же правила выбора конфига, что и в DollSynthesis (в т.ч. запасной вариант q==6 → [5], если [6] нет). -- Возврат: число >= 0; при отсутствии конфига — 0. function DollSynthesisGetCost(quality) local q = tonumber(quality) or 0 local cfg = DollSynthesisConfig[q] if cfg == nil then if q == 6 then cfg = DollSynthesisConfig[5] -- как в DollSynthesis: розовое → конфиг фиолетового end if cfg == nil then return 0 end end local cost = tonumber(cfg.cost) or 0 if cost < 0 then cost = 0 end return cost end