Jump to content

Ropedann

Advanced members
  • Content Count

    67
  • Joined

  • Last visited

  • Days Won

    11

Everything posted by Ropedann

  1. Так же хочу поделиться последней наработкой. (Рекомендую смотретьв х2)
  2. Кто то кстате пробывал создавать своюб шахту. Вчера пробывал окозалось это достаточно проблематично) Если кто то пробывал может будут какието рекомендации?
  3. Делаеться либо продавливанием земли в самом клиенте в режиме редактора. Либо через Yuami заменяя землю на воду. а потом уже подсгладить рельеф в редакторе. Поздно, но пусть будет.
  4. @V3ct0r Спасибо помогло! Хотя странно почему не было этой записи аккаунт вроде создан был
  5. Впервые сталкиваюсь с такой проблемой. Может кто знает как исправить? GateServer.cfg [Main] Name = GroupServerAndor1 Version = 136 [GroupServer] IP = 127.0.0.1 Port = 1976 EnablePing = 180 [ToClient] IP = 0.0.0.0 Port = 1973 CommEncrypt = 0 EnablePing = 60 MaxConection = 1000 [ToGameServer] IP = 127.0.0.1 Port = 1971 EnablePing = 180 [ShowRange] ShowMin = 500 ShowMax = 800 IsUse = 0 GroupServer.cfg [Main] Name = GroupServerAndor1 Listen_Port = 1977 Listen_IP = 127.0.0.1 KeepAlive = 600 Version = 103 [AccountServer] AcctEnable = 1 Password = GroupServerAndor1 IP = 127.0.0.1 Port = 1656 [Database] IP = 127.0.0.1 DB = GameDB Login = GameUser Password = E53spVtT/z47bcVqH+QF6A== MaxVal = 2000000000 [角色] MaxCharactPerAcc = 3 ChaImgLogoMaxValue = 30 MaxLognCount = 1000 [好友] MaxInvtation = 5 InvitTimeOut = 30 MaxFriendPerChar = 50 EveryCharFrndListGroup = 10 [组队] MaxInvtation = 5 InvitTimeOut = 30 PlayersInsdParty = 5 [聊天] MaxMsngPerPlayer = 30 MaxPlayerPerMsng = 30 WrldChanSayInter = 20 TrdeChanSayInter = 20 WhprChanSayInter = 2 [出生地] Argent City = garner Shaitan City = magicsea Icicle Castle = darkblue
  6. @V3ct0r Спасибо за подробное описание!
  7. Небольшой UpDate Еще вопрос если есть у когото инфа по упаковке карт в .PK файл можите поделиться?
  8. там же можно посмотреть VDS на windows server и пихнуть туда сервер пирки как вариант
  9. Ну библиотеку нашел но как пользоваться ей так и не въехал решил с текстовым файлом работать
  10. Можно закрыть тему
  11. Благодарю за помощь. Может есть еще те кто знает как можно считать данные из excel файла спощью lua?
  12. Вопрос не по пиратии, но по Lua, мб кто знает нормальные библеотеки для создания gui на lua. Или как вообще это делается? Нужно сделать несколько полей ввода данных и кнопку для их сохранения. Помогите пожалуйста.
  13. Всем привет, помогите разобраться кодом черчежей. Допустим в virable.lua из огромного количества рецептов у меня стало по 14 в каждом (ремесле и производстве) -- Производство ZHIZAO_Qua = 5 ZHIZAO_Mxcount = 14 ZHIZAO_ID = {} ZHIZAO_LV = {} ZHIZAO_ID1 = {} ZHIZAO_ID2 = {} ZHIZAO_ID3 = {} ZHIZAO__Rad = {} ZHIZAO_ID[ 1 ] = 878 ZHIZAO_LV[ 1 ] = 10 ZHIZAO_ID1[ 1 ] = 4418 ZHIZAO_ID2[ 1 ] = 3999 ZHIZAO_ID3[ 1 ] = 1677 ZHIZAO__Rad[ 1 ] = 5 ZHIZAO_ID[ 2 ] = 879 ZHIZAO_LV[ 2 ] = 10 ZHIZAO_ID1[ 2 ] = 4418 ZHIZAO_ID2[ 2 ] = 3999 ZHIZAO_ID3[ 2 ] = 1677 ZHIZAO__Rad[ 2 ] = 5 ZHIZAO_ID[ 3 ] = 880 ZHIZAO_LV[ 3 ] = 10 ZHIZAO_ID1[ 3 ] = 1708 ZHIZAO_ID2[ 3 ] = 3999 ZHIZAO_ID3[ 3 ] = 1677 ZHIZAO__Rad[ 3 ] = 5 ZHIZAO_ID[ 4 ] = 881 ZHIZAO_LV[ 4 ] = 10 ZHIZAO_ID1[ 4 ] = 1708 ZHIZAO_ID2[ 4 ] = 3999 ZHIZAO_ID3[ 4 ] = 1677 ZHIZAO__Rad[ 4 ] = 5 ZHIZAO_ID[ 5 ] = 882 ZHIZAO_LV[ 5 ] = 10 ZHIZAO_ID1[ 5 ] = 4488 ZHIZAO_ID2[ 5 ] = 3999 ZHIZAO_ID3[ 5 ] = 3116 ZHIZAO__Rad[ 5 ] = 1 ZHIZAO_ID[ 6 ] = 883 ZHIZAO_LV[ 6 ] = 10 ZHIZAO_ID1[ 6 ] = 1649 ZHIZAO_ID2[ 6 ] = 3999 ZHIZAO_ID3[ 6 ] = 3116 ZHIZAO__Rad[ 6 ] = 1 ZHIZAO_ID[ 7 ] = 884 ZHIZAO_LV[ 7 ] = 10 ZHIZAO_ID1[ 7 ] = 4340 ZHIZAO_ID2[ 7 ] = 3999 ZHIZAO_ID3[ 7 ] = 3116 ZHIZAO__Rad[ 7 ] = 1 ZHIZAO_ID[ 8 ] = 887 ZHIZAO_LV[ 8 ] = 10 ZHIZAO_ID1[ 8 ] = 4340 ZHIZAO_ID2[ 8 ] = 3999 ZHIZAO_ID3[ 8 ] = 3116 ZHIZAO__Rad[ 8 ] = 1 ZHIZAO_ID[ 9 ] = 860 ZHIZAO_LV[ 9 ] = 10 ZHIZAO_ID1[ 9 ] = 4488 ZHIZAO_ID2[ 9 ] = 3999 ZHIZAO_ID3[ 9 ] = 3116 ZHIZAO__Rad[ 9 ] = 1 ZHIZAO_ID[ 10 ] = 861 ZHIZAO_LV[ 10 ] = 10 ZHIZAO_ID1[ 10 ] = 1649 ZHIZAO_ID2[ 10 ] = 3999 ZHIZAO_ID3[ 10 ] = 3116 ZHIZAO__Rad[ 10 ] = 1 ZHIZAO_ID[ 11 ] = 863 ZHIZAO_LV[ 11 ] = 10 ZHIZAO_ID1[ 11 ] = 4488 ZHIZAO_ID2[ 11 ] = 3999 ZHIZAO_ID3[ 11 ] = 3116 ZHIZAO__Rad[ 11 ] = 1 ZHIZAO_ID[ 12 ] = 865 ZHIZAO_LV[ 12 ] = 10 ZHIZAO_ID1[ 12 ] = 4475 ZHIZAO_ID2[ 12 ] = 3999 ZHIZAO_ID3[ 12 ] = 3116 ZHIZAO__Rad[ 12 ] = 1 ZHIZAO_ID[ 13 ] = 866 ZHIZAO_LV[ 13 ] = 10 ZHIZAO_ID1[ 13 ] = 1649 ZHIZAO_ID2[ 13 ] = 3999 ZHIZAO_ID3[ 13 ] = 3116 ZHIZAO__Rad[ 13 ] = 1 ZHIZAO_ID[ 14 ] = 1012 ZHIZAO_LV[ 14 ] = 10 ZHIZAO_ID1[ 14 ] = 4475 ZHIZAO_ID2[ 14 ] = 3999 ZHIZAO_ID3[ 14 ] = 3116 ZHIZAO__Rad[ 14 ] = 1 -- Ремесло ZHUZAO_Qua = 5 ZHUZAO_Mxcount = 14 ZHUZAO_ID = {} ZHUZAO_LV = {} ZHUZAO_ID1 = {} ZHUZAO_ID2 = {} ZHUZAO_ID3 = {} ZHUZAO__Rad = {} ZHUZAO_ID[ 1 ] = 11 ZHUZAO_LV[ 1 ] = 10 ZHUZAO_ID1[ 1 ] = 4427 ZHUZAO_ID2[ 1 ] = 4415 ZHUZAO_ID3[ 1 ] = 2611 ZHUZAO__Rad[ 1 ] = 1 ZHUZAO_ID[ 2 ] = 12 ZHUZAO_LV[ 2 ] = 10 ZHUZAO_ID1[ 2 ] = 4342 ZHUZAO_ID2[ 2 ] = 4029 ZHUZAO_ID3[ 2 ] = 2614 ZHUZAO__Rad[ 2 ] = 1 ZHUZAO_ID[ 3 ] = 13 ZHUZAO_LV[ 3 ] = 10 ZHUZAO_ID1[ 3 ] = 4344 ZHUZAO_ID2[ 3 ] = 3368 ZHUZAO_ID3[ 3 ] = 2611 ZHUZAO__Rad[ 3 ] = 1 ZHUZAO_ID[ 4 ] = 14 ZHUZAO_LV[ 4 ] = 10 ZHUZAO_ID1[ 4 ] = 4339 ZHUZAO_ID2[ 4 ] = 4415 ZHUZAO_ID3[ 4 ] = 2614 ZHUZAO__Rad[ 4 ] = 1 ZHUZAO_ID[ 5 ] = 15 ZHUZAO_LV[ 5 ] = 10 ZHUZAO_ID1[ 5 ] = 1583 ZHUZAO_ID2[ 5 ] = 4415 ZHUZAO_ID3[ 5 ] = 2590 ZHUZAO__Rad[ 5 ] = 1 ZHUZAO_ID[ 6 ] = 16 ZHUZAO_LV[ 6 ] = 10 ZHUZAO_ID1[ 6 ] = 1611 ZHUZAO_ID2[ 6 ] = 4029 ZHUZAO_ID3[ 6 ] = 2590 ZHUZAO__Rad[ 6 ] = 1 ZHUZAO_ID[ 7 ] = 17 ZHUZAO_LV[ 7 ] = 10 ZHUZAO_ID1[ 7 ] = 1583 ZHUZAO_ID2[ 7 ] = 3368 ZHUZAO_ID3[ 7 ] = 2593 ZHUZAO__Rad[ 7 ] = 1 ZHUZAO_ID[ 8 ] = 18 ZHUZAO_LV[ 8 ] = 10 ZHUZAO_ID1[ 8 ] = 1611 ZHUZAO_ID2[ 8 ] = 4415 ZHUZAO_ID3[ 8 ] = 2593 ZHUZAO__Rad[ 8 ] = 1 ZHUZAO_ID[ 9 ] = 19 ZHUZAO_LV[ 9 ] = 10 ZHUZAO_ID1[ 9 ] = 1583 ZHUZAO_ID2[ 9 ] = 4029 ZHUZAO_ID3[ 9 ] = 2596 ZHUZAO__Rad[ 9 ] = 1 ZHUZAO_ID[ 10 ] = 20 ZHUZAO_LV[ 10 ] = 10 ZHUZAO_ID1[ 10 ] = 1611 ZHUZAO_ID2[ 10 ] = 3368 ZHUZAO_ID3[ 10 ] = 2596 ZHUZAO__Rad[ 10 ] = 1 ZHUZAO_ID[ 11 ] = 21 ZHUZAO_LV[ 11 ] = 10 ZHUZAO_ID1[ 11 ] = 1583 ZHUZAO_ID2[ 11 ] = 4415 ZHUZAO_ID3[ 11 ] = 2596 ZHUZAO__Rad[ 11 ] = 1 ZHUZAO_ID[ 12 ] = 22 ZHUZAO_LV[ 12 ] = 10 ZHUZAO_ID1[ 12 ] = 1611 ZHUZAO_ID2[ 12 ] = 4029 ZHUZAO_ID3[ 12 ] = 2599 ZHUZAO__Rad[ 12 ] = 1 ZHUZAO_ID[ 13 ] = 23 ZHUZAO_LV[ 13 ] = 10 ZHUZAO_ID1[ 13 ] = 1583 ZHUZAO_ID2[ 13 ] = 3368 ZHUZAO_ID3[ 13 ] = 2599 ZHUZAO__Rad[ 13 ] = 1 ZHUZAO_ID[ 14 ] = 24 ZHUZAO_LV[ 14 ] = 10 ZHUZAO_ID1[ 14 ] = 1611 ZHUZAO_ID2[ 14 ] = 4415 ZHUZAO_ID3[ 14 ] = 2599 ZHUZAO__Rad[ 14 ] = 1 Как мне изменить в чертежах пачкули и остальных чертежах(у них одна функция " ItemUse_MHDTZ( role , Item ) ") что бы у меня нормально генерировались чертежи. Функция чертежей: function ItemUse_MHDTZ( role , Item ) local Item_CanGet = GetChaFreeBagGridNum ( role ) if Item_CanGet < 1 then SystemNotice(role ,"\215\242\238\225\251 \240\224\241\239\229\247\224\242\224\242\252 \247\229\240\242\229\230 \239\238 \234\240\224\233\237\229\233 \236\229\240\229 \242\240\229\225\243\229\242\241\255 1 \241\226\238\225\238\228\237\251\233 \241\235\238\242 \226 \194\224\248\229\236 \232\237\226\229\237\242\224\240\229") UseItemFailed ( role ) return end local r1 = 0 local r2 = 0 local item_ID=GetItemID(Item) local Itemnew_ID=2300 -- Чертеж для производства local rad_ID=math.random ( 1, 100 ) if rad_ID<=40 then Itemnew_ID=2300 -- Чертеж для производства elseif rad_ID>=41 and rad_ID<=81 then Itemnew_ID=2302 -- Рецепт для Кулинарии else Itemnew_ID=2301 -- Ремесленный чертеж end r1, r2 = MakeItem ( role , Itemnew_ID , 1 , 4 ) local Itemnew = GetChaItem ( role , 2 , r2 ) local rad_energy=math.random ( 1, 100 ) local energy = 1 if item_ID==1000 then -- Чертеж Пачкули energy=1 elseif item_ID==1001 then -- Зашифрованный чертеж if rad_energy<=5 then energy=4 elseif rad_energy<=30 and rad_energy>=6 then energy=3 else energy=2 end elseif item_ID==1002 then -- Запечатанный чертеж if rad_energy<=5 then energy=6 elseif rad_energy<=30 and rad_energy>=6 then energy=5 else energy=4 end elseif item_ID==1003 then -- Чертеж призыва if rad_energy<=5 and Itemnew_ID~=2301 then -- Ремесленный чертеж energy=8 elseif rad_energy<=30 and rad_energy>=6 then energy=7 else energy=6 end end local final_ID=1849 local final_LV=20 local final_ID1=3116 local final_ID2=3116 local final_ID3=3116 local General = 0 local ItemId =3124 if Itemnew_ID==2300 then -- Чертеж для производства -- ZHIZAO_Mxcount(Кол-во элементов массива с рецептами) local STAR_BEGIN=ZHIZAO_Mxcount*(energy-1)/10+1 local STAR_END=ZHIZAO_Mxcount*energy/10 for i = STAR_BEGIN , STAR_END , 1 do -- ZHIZAO__Rad (Кол-во предметов при использовании чертежа) General = ZHIZAO__Rad[ i ] + General end local a = math.random ( 1, General ) local b = 0 local d = 0 local k = 0 local c = -1 for k = STAR_BEGIN , STAR_END , 1 do -- ZHIZAO__Rad (Кол-во предметов при использовании чертежа) d = ZHIZAO__Rad[ k ] + b if a <= d and a > b then c = k break end b = d end if c == -1 then c =STAR_BEGIN end final_ID=ZHIZAO_ID[c] -- ID пердмета массива final_LV=ZHIZAO_LV[c] -- Уровень предмета при использовании чертежа final_ID1=ZHIZAO_ID1[c] -- ID ингридиента для приготовления; final_ID2=ZHIZAO_ID2[c] -- ID ингридиента для приготовления; final_ID3=ZHIZAO_ID3[c] -- ID ингридиента для приготовления; end if Itemnew_ID==2301 then -- Ремесленный чертеж local STAR_BEGIN=1 local STAR_END=77 if energy==1 then STAR_BEGIN=1 STAR_END=77 elseif energy==2 then STAR_BEGIN=78 STAR_END=166 elseif energy==3 then STAR_BEGIN=167 STAR_END=278 elseif energy==4 then STAR_BEGIN=279 STAR_END=434 elseif energy==5 then STAR_BEGIN=435 STAR_END=596 elseif energy==6 then STAR_BEGIN=597 STAR_END=732 elseif energy==7 then STAR_BEGIN=733 STAR_END=871 elseif energy==8 then STAR_BEGIN=895 STAR_END=902 end for i = STAR_BEGIN , STAR_END , 1 do -- ZHIZAO__Rad (Кол-во предметов при использовании чертежа) General = ZHUZAO__Rad[ i ] + General end local a = math.random ( 1, General ) local b = 0 local d = 0 local k = 0 local c = -1 for k = STAR_BEGIN , STAR_END , 1 do -- ZHIZAO__Rad (Кол-во предметов при использовании чертежа) d = ZHUZAO__Rad[ k ] + b if a <= d and a > b then c = k break end b = d end if c == -1 then c =STAR_BEGIN end final_ID=ZHUZAO_ID[c] -- ID пердмета массива final_LV=ZHUZAO_LV[c] -- Уровень предмета при использовании чертежа final_ID1=ZHUZAO_ID1[c] -- ID ингридиента для приготовления; final_ID2=ZHUZAO_ID2[c] -- ID ингридиента для приготовления; final_ID3=ZHUZAO_ID3[c] -- ID ингридиента для приготовления; local final_type=GetItemType2(final_ID) local check=0 local i = 0 -- Item_CanJinglian_Num(функция Типов предметов, которые можно ковать) ------------------------------------------ -- Типы предметов, которые можно ковать -- ------------------------------------------ --[[Item_CanJinglian_Num = 13 Item_CanJinglian_ID = {} -- Кол-во типов предметов Item_CanJinglian_ID[0] = 1 -- Одноручный меч Item_CanJinglian_ID[1] = 2 -- Двуручный меч Item_CanJinglian_ID[2] = 3 -- Лук Item_CanJinglian_ID[3] = 4 -- Пистолет Item_CanJinglian_ID[4] = 7 -- Клинок покорителя морей Item_CanJinglian_ID[5] = 11 -- Щит Item_CanJinglian_ID[6] = 20 -- Шапка Item_CanJinglian_ID[7] = 22 -- Доспехи Item_CanJinglian_ID[8] = 23 -- Перчатки Item_CanJinglian_ID[9] = 24 -- Ботинки Item_CanJinglian_ID[10] = 25 -- Ожерелье Item_CanJinglian_ID[11] = 26 -- Кольцо Item_CanJinglian_ID[12] = 27 -- Тату Item_CanJinglian_ID[13] = 9 -- Посох]] for i = 0 , Item_CanJinglian_Num , 1 do if final_type == Item_CanJinglian_ID [i] then check=1 end end if check==1 then local check_rad=math.random ( 1, 1000 ) if check_rad==1 then final_LV=70 elseif check_rad>=2 and check_rad<=11 then final_LV=60 elseif check_rad>=12 and check_rad<=21 then final_LV=50 elseif check_rad>=22 and check_rad<=221 then final_LV=40 elseif check_rad>=222 and check_rad<=421 then final_LV=30 elseif check_rad>=422 and check_rad<=621 then final_LV=20 else final_LV=10 end if final_LV>70 then final_LV=70 end if final_LV~=10 and final_LV~=0 then local tmd=(energy-1)*6+final_LV*0.1-1 -- TESHU_ID(Массив с предметами для Чертежа Пачкули) final_ID3=TESHU_ID[tmd] end end end if Itemnew_ID==2302 then -- Рецепт для Кулинарии local STAR_BEGIN=1 local STAR_END=80 if energy==1 then STAR_BEGIN=1 STAR_END=7 elseif energy==2 then STAR_BEGIN=8 STAR_END=12 elseif energy==3 then STAR_BEGIN=13 STAR_END=17 elseif energy==4 then STAR_BEGIN=18 STAR_END=26 elseif energy==5 then STAR_BEGIN=27 STAR_END=31 elseif energy==6 then STAR_BEGIN=32 STAR_END=36 else STAR_BEGIN=energy+30 STAR_END=energy+30 end for i = STAR_BEGIN , STAR_END , 1 do -- ZHIZAO__Rad (Кол-во предметов при использовании чертежа) General = ZHIZAO__Rad[ i ] + General end local a = math.random ( 1, General ) local b = 0 local d = 0 local k = 0 local c = -1 for k = STAR_BEGIN , STAR_END , 1 do -- PENGREN__Rad Кол-во предметов при использовании чертежа d = PENGREN__Rad[ k ] + b if a <= d and a > b then c = k break end b = d end if c == -1 then c =STAR_BEGIN end -- вызов Массива с предметами кулинарии final_ID=PENGREN_ID[c] final_LV=PENGREN_LV[c] final_ID1=PENGREN_ID1[c] final_ID2=PENGREN_ID2[c] final_ID3=PENGREN_ID3[c] end local star_number=energy*10 local yingbi_num=math.random ( 10, star_number ) if energy<=3 then -- ITEMATTR_MAXURE (что значит?) SetItemAttr(Itemnew, ITEMATTR_MAXURE, energy ) -- ITEMATTR_URE (что значит?) SetItemAttr(Itemnew, ITEMATTR_URE, energy ) else SetItemAttr(Itemnew, ITEMATTR_MAXURE, yingbi_num ) SetItemAttr(Itemnew, ITEMATTR_URE, energy ) end local sta =math.random ( 1, 10 ) if Itemnew_ID==2301 then sta=sta*0.5 sta=math.max(1,sta) end -- ITEMATTR_VAL_STA (массив самоцветов) SetItemAttr(Itemnew, ITEMATTR_VAL_STA, sta ) local qulity=math.floor(final_LV*0.1)+100 -- ITEMATTR_MAXENERGY (Что то с максимальной энергией) SetItemAttr(Itemnew, ITEMATTR_MAXENERGY, qulity ) local ure=10-final_LV*0.1 SetItemAttr(Itemnew, ITEMATTR_ENERGY, ure ) -- Вызывается массив самоцветов SetItemAttr(Itemnew, ITEMATTR_VAL_STR, final_ID1 ) SetItemAttr(Itemnew, ITEMATTR_VAL_CON, final_ID2 ) SetItemAttr(Itemnew, ITEMATTR_VAL_DEX, final_ID3 ) SetItemAttr(Itemnew, ITEMATTR_VAL_AGI, final_ID ) local Num_new = GetItemForgeParam ( Itemnew , 1 ) local Part2_new = GetNum_Part2 ( Num_new ) local Part4_new = GetNum_Part4 ( Num_new ) local Part6_new = GetNum_Part6 ( Num_new ) Part2_new = math.random ( 3, 20 ) Part4_new = math.random ( 2, 9 ) Part6_new = math.random ( 1, 3 ) Part6_new = Part6_new*math.max(1,(energy-2)) Num_new = SetNum_Part2 ( Num_new , Part2_new ) Num_new = SetNum_Part4 ( Num_new , Part4_new ) Num_new = SetNum_Part6 ( Num_new , Part6_new ) SetItemForgeParam ( Itemnew , 1 , Num_new ) end а не вот так https://pastenow.ru/edit/dbcadb70eb6f201881b2326db1772465 ил может можно както назначить рецепт на чертеж ну то есть на конкретный чертеж. То есть например: Рецепт меча новичка, и этот рецепт упал не с пачкулика а просто с моба или еще где(думаю не важно.) Буду благодарен за помощь.
  14. Прошу сделать перезалив
  15. Точно правильно базы подкючаешь?
  16. при выборе персонажа начинается загрузка и она бесконечно клиент просто грузится и все ничего не происходит. ошибок никаких не выдает. Но с другого пк запускаю сервер все норм заходит.
  17. Написанно же 2я строка Forger
  18. Всем привет нужно несколько человек которые умеют Ddos-ить пк. Для тестирования сервера на устойчивость. Также если кто умеет делять SQL иньекции тоже хотелось бы протестировать. Ну и требуются люди для теста. Так-же требуются люди для тестирования защит от Дюпа рисования скиллов впе рпе. Зарание спасибо.
  19. Добавил имя убрав все галки с прав кроме Public имя появилось и потом просто через свойвства выставил права. А так щас переустановил Windows server 2008 на Windows server 2016 и поставил SQL server 2016.
  20. а вообще совет редактируй в эксэле в 100 раз удобней
×
×
  • Create New...