WVWMK 121 Report post Posted March 26, 2016 Многие хотят сделать пвп сервер для большего фана. Для этого нам понадобится добавить в файл function котоый лежит на стороне сервера по адресу GameServer\resuorce\scripts\calculate Там мы ищем функцию after_player_kill_player и заменяем на код ниже., и получаем - при смерти на локациях такиъх как Аргент\Шайтан\Ледынь будет пвп зона и при смерти у убитого будет отниматься честь, а у убийцы будет добавляться честь. (Данная реализация не будет работать если Медаль отваги будет даваться в начале игры). Так же для того чтоб включить пвп режим в локации надо зайти в папку карты и найти там файл Ctrl.lua и вставить туда function config(map) MapCanSavePos(map, 0) — сохранения на карте, после перезахода (1 да, 0 нет) MapCanPK(map, 1) — карта с PvP (1 да, 0 нет) MapCanStall(map , 0) — ставить ларьки (1 можно, 0 нет) MapCanTeam(map , 1) — можно ли создавать группы (1 да, 0 нет) MapType ( map , 4 ) — тип карты (3 не видны ники, внешний вид, нельзя писать в чат; 4 видны ники, виден внешний вид) end function after_player_kill_player( ATKER, DEFER ) SetCharaAttr(0, DEFER, ATTR_SP) local map_name_ATKER = GetChaMapName ( ATKER ) local map_name_DEFER = GetChaMapName ( DEFER ) local MGPK_MapNameNum = 10 local MGPK_MapName = {} MGPK_MapName[0] = "puzzleworld" MGPK_MapName[1] = "puzzleworld2" MGPK_MapName[2] = "abandonedcity" MGPK_MapName[3] = "abandonedcity2" MGPK_MapName[4] = "abandonedcity3" MGPK_MapName[5] = "darkswamp" MGPK_MapName[6] = "hell" MGPK_MapName[7] = "hell2" MGPK_MapName[8] = "hell3" MGPK_MapName[9] = "hell4" MGPK_MapName[10] = "hell5" local ATKER_Get_Ry = 0 local DEFER_Get_Ry = 0 local ATKER_Get_chaos = 0 local DEFER_Get_chaos = 0 local DEFER_Get1_Ry = 0 if map_name_ATKER == "garner2" or map_name_DEFER == "garner2" or map_name_ATKER == "07xmas2" or map_name_DEFER == "07xmas2" then local Lv_ATKER = Lv( ATKER ) local Lv_DEFER = Lv( DEFER ) local Lv_dif = Lv_ATKER - Lv_DEFER -- Равные уровни if Lv_ATKER == Lv_DEFER then ATKER_Get_chaos = 5 DEFER_Get_chaos = -3 SystemNotice ( ATKER , "Вы побеждаете противника и получаете 5 очков хаоса!" ) SystemNotice ( DEFER , "Вас победил противник. Потеряно 3 очка хаоса!") end -- Уровень атакующего больше на 5 if Lv_dif >= 1 and Lv_dif <= 5 then ATKER_Get_chaos = 5 DEFER_Get_chaos = -3 SystemNotice ( ATKER , "Вы побеждаете противника и получаете 5 очков хаоса!" ) SystemNotice ( DEFER , "Вас победил противник. Потеряно 3 очка хаоса!") end -- Уровень атакующего больше на 10 if Lv_dif >= 6 and Lv_dif <= 10 then ATKER_Get_chaos = 3 DEFER_Get_chaos = -2 SystemNotice ( ATKER , "Вы побеждаете противника и получаете 3 очка хаоса!" ) SystemNotice ( DEFER , "Вас победил противник. Потеряно 2 очка хаоса!") end -- Уровень атакующего больше на 15 if Lv_dif >= 11 and Lv_dif <= 15 then ATKER_Get_chaos = 2 DEFER_Get_chaos = -1 SystemNotice ( ATKER , "Вы побеждаете слабого противника и получаете 2 очка хаоса!" ) SystemNotice ( DEFER , "Вас победил сильный противник. Потеряно 1 очко хаоса!") end -- Уровень атакующего больше 16 if Lv_dif >= 16 then ATKER_Get_chaos = 1 DEFER_Get_chaos = 0 SystemNotice ( ATKER , "Вы побеждаете очень слабого противника и получаете 1 очка хаоса!" ) SystemNotice ( DEFER , "Вас победил очень сильный противник. Хаос очки не теряются!") end -- Уровень атакующего меньше на 5 if Lv_dif <= -1 and Lv_dif >= -5 then ATKER_Get_chaos = 5 DEFER_Get_chaos = -3 SystemNotice ( ATKER , "Вы побеждаете противника и получаете 3 очка хаоса!" ) SystemNotice ( DEFER , "Вас победил противник. Потеряно 2 очка хаоса!") end -- Уровень атакующего меньше на 10 if Lv_dif <= -6 and Lv_dif >= -10 then ATKER_Get_chaos = 7 DEFER_Get_chaos = -4 SystemNotice ( ATKER , "Вы побеждаете противника и получаете 3 очка хаоса!" ) SystemNotice ( DEFER , "Вас победил противник. Потеряно 2 очка хаоса!") end -- Уровень атакующего меньше на 15 if Lv_dif <= -11 and Lv_dif >= -15 then ATKER_Get_chaos = 9 DEFER_Get_chaos = -5 SystemNotice ( ATKER , "Вы побеждаете сильного противника и получаете 9 очков хаоса!" ) SystemNotice ( DEFER , "Вас победил слабый противник. Потеряно 5 очков хаоса!") end -- Уровень атакующего меньше 16 if Lv_dif <= -16 then ATKER_Get_chaos = 10 DEFER_Get_chaos = -7 SystemNotice ( ATKER , "Вы побеждаете очень сильного противника и получаете 10 очков хаоса!" ) SystemNotice ( DEFER , "Вас победил очень слабый противник. Потеряно 7 очков хаоса!") end -- local RongyuTpye = ITEMATTR_VAL_STR -- local Kill_Num = 1 -- local Kill_attr = ITEMATTR_VAL_AGI -- local Killed_attr = ITEMATTR_VAL_DEX local ATKER_medal = GetChaItem2 ( ATKER , 2 , 3849 ) local DEFER_medal = GetChaItem2 ( DEFER , 2 , 3849 ) local AtkerPoint = GetItemAttr ( ATKER_medal , ITEMATTR_MAXENERGY ) local DeferPoint = GetItemAttr ( DEFER_medal , ITEMATTR_MAXENERGY ) local AtkerPoint = AtkerPoint + ATKER_Get_chaos local DeferPoint = DeferPoint + DEFER_Get_chaos if DeferPoint <= 0 then DeferPoint = 0 end if ATKER == DEFER then ATKER_Get_chaos = ATKER_Get_chaos - 1 end SetItemAttr ( ATKER_medal , ITEMATTR_MAXENERGY , AtkerPoint) SetItemAttr ( DEFER_medal , ITEMATTR_MAXENERGY , DeferPoint) local atk_name = GetChaDefaultName ( ATKER ) local def_name = GetChaDefaultName ( DEFER ) local map_copy = GetChaMapCopy ( ATKER ) MapCopyNotice ( map_copy , Notice_map ) end if map_name_ATKER == "garner2" or map_name_DEFER == "garner2" or map_name_ATKER == "07xmas2" or map_name_DEFER == "07xmas2" then local atk_name = GetChaDefaultName ( ATKER ) local def_name = GetChaDefaultName ( DEFER ) local Notice_all = "["..def_name.."] терпит поражение от ["..atk_name.."]" Notice ( Notice_all ) end if map_name_ATKER == "heilong" or map_name_DEFER == "heilong" or map_name_ATKER == "heilong2" or map_name_DEFER == "heilong2" then local atk_name = GetChaDefaultName ( ATKER ) local def_name = GetChaDefaultName ( DEFER ) local Notice_all = "В Логовое Черного Дракона: ["..def_name.."] терпит поражение от ["..atk_name.."]" Notice ( Notice_all ) end if map_name_ATKER == "jialebi" or map_name_DEFER == "jialebi" then local atk_name = GetChaDefaultName ( ATKER ) local def_name = GetChaDefaultName ( DEFER ) local Notice_all = "Йо-хо-хо, Карибские острова опасное место: ["..def_name.."] терпит поражение от ["..atk_name.."]!" Notice ( Notice_all ) end if map_name_ATKER == "teampk" or map_name_DEFER == "teampk" then local ATKER_RYZ = GetChaItem2 ( ATKER , 2 , 3849 ) local DEFER_RYZ = GetChaItem2 ( DEFER , 2 , 3849 ) local Lv_ATKER = Lv( ATKER ) local Lv_DEFER = Lv( DEFER ) local Lv_dif = Lv_ATKER - Lv_DEFER if Lv_dif < 10 and Lv_dif > -5 then ATKER_Get_Ry = 1 DEFER_Get_Ry = -1 SystemNotice ( ATKER ,"Вы победили противника. Получено очков чести: "..ATKER_Get_Ry ) SystemNotice ( DEFER ,"Вы потерпели поражение. Потеряно очков чести: "..ATKER_Get_Ry ) end if Lv_dif >= 10 then ATKER_Get_Ry = 0 DEFER_Get_Ry = 0 SystemNotice ( ATKER , "Уровень побежденного противника слишком мал. Вы не получаете очков чести" ) end if Lv_dif < -5 then ATKER_Get_Ry = 2 DEFER_Get_Ry = -2 SystemNotice ( ATKER ,"Вы победили сильного противника и получаете "..ATKER_Get_Ry.." очков чести" ) SystemNotice ( DEFER ,"Вы убиты слабым игроком и теряете "..ATKER_Get_Ry.." очков чести" ) end local RongyuTpye = ITEMATTR_VAL_STR local Kill_Num = 1 local Kill_attr = ITEMATTR_VAL_AGI local Killed_attr = ITEMATTR_VAL_DEX local atk_name = GetChaDefaultName ( ATKER ) local def_name = GetChaDefaultName ( DEFER ) local map_copy = GetChaMapCopy ( ATKER ) local Notice_map = "["..def_name.."] терпит поражение от ["..atk_name.."]" -- SystemNotice( ATKER ,"Honor point gained") Add_ItemAttr_RYZ ( ATKER , ATKER_RYZ , RongyuTpye , ATKER_Get_Ry ) -- SystemNotice( ATKER , "Increases Kill count by") Add_ItemAttr_RYZ ( ATKER , ATKER_RYZ , Kill_attr , Kill_Num ) -- SystemNotice( DEFER ,"was killed. Honor points deducted by") Add_ItemAttr_RYZ ( DEFER ,DEFER_RYZ , RongyuTpye , DEFER_Get_Ry ) -- SystemNotice( DEFER , "Defeat Count increases by") Add_ItemAttr_RYZ ( DEFER ,DEFER_RYZ , Killed_attr , Kill_Num ) MapCopyNotice ( map_copy , Notice_map ) end if map_name_ATKER == "secretgarden" or map_name_DEFER == "secretgarden" then local atk_name = GetChaDefaultName ( ATKER ) local def_name = GetChaDefaultName ( DEFER ) local Notice_all = "["..def_name.."] терпит поражение от ["..atk_name.."]" Notice ( Notice_all ) end if map_name_ATKER == "guildwar" or map_name_DEFER == "guildwar" then local ATKER = TurnToCha ( ATKER ) local DEFER = TurnToCha ( DEFER ) --local Cha = TurnToCha(role) local Num_shengsi_1= CheckBagItem(DEFER,2382) --Notice("Num_shengsi"..Num_shengsi) if Num_shengsi_1 >=1 then TakeItem( DEFER, 0,2382, 1 ) GiveItem ( ATKER , 0 , 2383 , 1 , 4 ) else if GetChaGuildID(DEFER) <= 100 and GetChaGuildID(DEFER) > 0 then GiveItem ( ATKER , 0 , 2858 , 1 , 4 ) end if GetChaGuildID(DEFER) > 100 and GetChaGuildID(DEFER) <= 200 then GiveItem ( ATKER , 0 , 2859 , 1 , 4 ) end if GetChaGuildID(DEFER) == 0 then SystemNotice ( ATKER , "Цель не относится ни к Флоту, ни к Пиратам" ) end end end if map_name_ATKER == "guildwar2" or map_name_DEFER == "guildwar2" then local ATKER = TurnToCha ( ATKER ) local DEFER = TurnToCha ( DEFER ) --local Cha = TurnToCha(role) local Num_shengsi_2= CheckBagItem(DEFER,2382) --Notice("Num_shengsi"..Num_shengsi) if Num_shengsi_2 >=1 then TakeItem( DEFER, 0,2382, 1 ) GiveItem ( ATKER , 0 , 2383 , 1 , 4 ) else if GetChaGuildID(DEFER) <= 100 and GetChaGuildID(DEFER) > 0 then GiveItem ( ATKER , 0 , 2858 , 1 , 4 ) end if GetChaGuildID(DEFER) > 100 and GetChaGuildID(DEFER) <= 200 then GiveItem ( ATKER , 0 , 2859 , 1 , 4 ) end if GetChaGuildID(DEFER) == 0 then SystemNotice ( ATKER , "Цель не относится ни к Флоту, ни к Пиратам" ) end end end ------ -- Убийство в данжах ------ local C_Map = 0 for C_Map = 0 , MGPK_MapNameNum , 1 do if map_name_ATKER == MGPK_MapName[C_Map] then local atk_name = GetChaDefaultName ( ATKER ) local def_name = GetChaDefaultName ( DEFER ) local map_copy = GetChaMapCopy ( ATKER ) local Notice_map = "Игрок ["..def_name.."] терпит поражение от ["..atk_name.."]" MapCopyNotice ( map_copy , Notice_map ) ATKER = TurnToCha ( ATKER ) DEFER = TurnToCha ( DEFER ) local Have_TSWW = CheckBagItem( DEFER , 3846 ) --ВУДУ if Have_TSWW <= 0 then Dead_Punish_ItemURE ( DEFER ) MGPK_Dead_Punish_Exp ( DEFER ) else local j = DelBagItem( DEFER , 3846 , 1 ) if j == 0 then LG ( "NewItem" , "Ошибка при удалении Куклы Вуду" ) else SystemNotice ( DEFER , "Кукла Вуду спасла тебя от потери опыта" ) end end end end if map_name_ATKER == "garner" or map_name_DEFER == "garner" or map_name_ATKER == "magicsea" or map_name_DEFER == "magicsea" or map_name_ATKER == "darkblue" or map_name_DEFER == "darkblue" or map_name_ATKER == "binglang2" or map_name_DEFER == "binglang2" or map_name_ATKER == "shalan2" or map_name_DEFER == "shalan2" or map_name_ATKER == "leiting2" or map_name_DEFER == "leiting2" or map_name_ATKER == "eastgoaf" or map_name_DEFER == "eastgoaf" or map_name_ATKER == "jialebi" or map_name_DEFER == "jialebi" or map_name_ATKER == "lonetower" or map_name_DEFER == "lonetower" or map_name_ATKER == "winterland" or map_name_DEFER == "winterland" then local side_ATKER = GetChaGuildType(ATKER) local side_DEFER = GetChaGuildType(DEFER) local ATKER_fame = GetChaAttr(ATKER, ATTR_FAME) local DEFER_fame = GetChaAttr(DEFER, ATTR_FAME) local ATKER_name = GetChaDefaultName(ATKER) local DEFER_name = GetChaDefaultName(DEFER) local ATKER_lv = GetChaAttr(ATKER, ATTR_LV) local DEFER_lv = GetChaAttr(DEFER, ATTR_LV) local ATKER_fame_add = 0 local DEFER_fame_del = 0 local rep_add_atker = 0 local rep_del_defer = 0 local honor_add = 0 local ATKER_medal = GetChaItem2(ATKER, 2, 3849) local medal_num = CheckBagItem(ATKER, 3849) local Lv_dif = ATKER_lv - DEFER_lv local bonus = 2 if Lv_dif < 21 then if side_ATKER == 1 and side_DEFER == 2 or side_ATKER == 2 and side_DEFER == 1 then local percent = 2 local factor = 2 if Lv_dif > 10 and Lv_dif < 20 then rep_add_atker = math.floor(factor + DEFER_fame/100*percent/2) elseif Lv_dif < -10 and Lv_dif < 0 then rep_add_atker = math.floor(bonus*(factor + DEFER_fame/100*percent)) SystemNotice(ATKER, "\207\238\225\229\230\228\229\237 \238\247\229\237\252 \241\232\235\252\237\251\233 \239\240\238\242\232\226\237\232\234. "..bonus.."-\233 \225\238\237\243\241!") else rep_add_atker = math.floor(factor + DEFER_fame/100*percent) end if Lv_dif < -10 and Lv_dif < 0 then rep_del_defer = math.floor(DEFER_fame/100*percent*bonus) SystemNotice(DEFER, "\194\224\241 \239\238\225\229\228\232\235 \241\235\224\225\251\233 \239\240\238\242\232\226\237\232\234! "..bonus.."-\255 \239\238\242\229\240\255 \240\229\239\243\242\224\246\232\232!") else rep_del_defer = math.floor(DEFER_fame/100*percent) end ATKER_fame_add = rep_add_atker + ATKER_fame DEFER_fame_del = DEFER_fame - rep_del_defer if medal_num == 0 then SystemNotice(ATKER, "\211 \194\224\241 \237\229\242 \236\229\228\224\235\232 \238\242\226\224\227\232. \194\251 \237\229 \239\238\235\243\247\224\229\242\229 \238\247\234\232 \247\229\241\242\232.") else local ATKER_honor = GetItemAttr(ATKER_medal, ITEMATTR_VAL_STR) honor_add = 2 SystemNotice(ATKER, "\207\238\235\243\247\229\237\238 "..honor_add.." \238\247\234\224 \247\229\241\242\232.") end SystemNotice(ATKER, "\207\238\235\243\247\229\237\238 "..rep_add_atker.." \238\247\234\238\226 \240\229\239\243\242\224\246\232\232.") SystemNotice(DEFER, "\207\238\242\229\240\255\237\238 "..rep_del_defer.." \238\247\234\238\226 \240\229\239\243\242\224\246\232\232.") elseif side_ATKER == 2 and side_DEFER == 2 then local percent = 1 local factor = 1 if Lv_dif > 10 and Lv_dif < 20 then rep_add_atker = math.floor(factor + DEFER_fame/100*percent/2) elseif Lv_dif < -10 and Lv_dif < 0 then rep_add_atker = math.floor(bonus*(factor + DEFER_fame/100*percent)) SystemNotice(ATKER, "\207\238\225\229\230\228\229\237 \238\247\229\237\252 \241\232\235\252\237\251\233 \239\240\238\242\232\226\237\232\234. "..bonus.."-\233 \225\238\237\243\241!") else rep_add_atker = math.floor(factor + DEFER_fame/100*percent) end if Lv_dif < -10 and Lv_dif < 0 then rep_del_defer = math.floor(DEFER_fame/100*percent*bonus) SystemNotice(DEFER, "\194\224\241 \239\238\225\229\228\232\235 \241\235\224\225\251\233 \239\240\238\242\232\226\237\232\234! "..bonus.."-\255 \239\238\242\229\240\255 \240\229\239\243\242\224\246\232\232!") else rep_del_defer = math.floor(DEFER_fame/100*percent) end ATKER_fame_add = rep_add_atker + ATKER_fame DEFER_fame_del = DEFER_fame - rep_del_defer if medal_num == 0 then SystemNotice(ATKER, "\211 \194\224\241 \237\229\242 \236\229\228\224\235\232 \238\242\226\224\227\232. \194\251 \237\229 \239\238\235\243\247\224\229\242\229 \238\247\234\232 \247\229\241\242\232.") else local ATKER_honor = GetItemAttr(ATKER_medal, ITEMATTR_VAL_STR) honor_add = 1 SystemNotice(ATKER, "\207\238\235\243\247\229\237\238 "..honor_add.." \238\247\234\238 \247\229\241\242\232.") end SystemNotice(ATKER, "\207\238\235\243\247\229\237\238 "..rep_add_atker.." \238\247\234\238\226 \240\229\239\243\242\224\246\232\232.") SystemNotice(DEFER, "\207\238\242\229\240\255\237\238 "..rep_del_defer.." \238\247\234\238\226 \240\229\239\243\242\224\246\232\232.") else local percent = 1 if Lv_dif > 10 and Lv_dif < 20 then rep_add_atker = math.floor(DEFER_fame/100*percent/2) elseif Lv_dif < -10 and Lv_dif < 0 then rep_add_atker = math.floor(DEFER_fame/100*percent*bonus) SystemNotice(ATKER, "\207\238\225\229\230\228\229\237 \238\247\229\237\252 \241\232\235\252\237\251\233 \239\240\238\242\232\226\237\232\234. "..bonus.."-\233 \225\238\237\243\241!") else rep_add_atker = math.floor(DEFER_fame/100*percent) end if Lv_dif < -10 and Lv_dif < 0 then rep_del_defer = math.floor(DEFER_fame/100*percent*bonus) SystemNotice(DEFER, "\194\224\241 \239\238\225\229\228\232\235 \241\235\224\225\251\233 \239\240\238\242\232\226\237\232\234! "..bonus.."-\255 \239\238\242\229\240\255 \240\229\239\243\242\224\246\232\232!") else rep_del_defer = math.floor(DEFER_fame/100*percent) end ATKER_fame_add = ATKER_fame + rep_add_atker DEFER_fame_del = DEFER_fame - rep_del_defer if medal_num == 0 then SystemNotice(ATKER, "\211 \194\224\241 \237\229\242 \236\229\228\224\235\232 \238\242\226\224\227\232. \194\251 \237\229 \239\238\235\243\247\224\229\242\229 \238\247\234\232 \247\229\241\242\232.") else local ATKER_honor = GetItemAttr(ATKER_medal, ITEMATTR_VAL_STR) honor_add = 1 SystemNotice(ATKER, "\207\238\235\243\247\229\237\238 "..honor_add.." \238\247\234\238 \247\229\241\242\232.") end SystemNotice(ATKER, "\207\238\235\243\247\229\237\238 "..rep_add_atker.." \238\247\234\238\226 \240\229\239\243\242\224\246\232\232.") SystemNotice(DEFER, "\207\238\242\229\240\255\237\238 "..rep_del_defer.." \238\247\234\238\226 \240\229\239\243\242\224\246\232\232.") end if rep_add_atker < 0 then Notice("\200\227\240\238\234 "..ATKER_name.." \239\238\225\229\230\228\224\229\242 \232\227\240\238\234\224 "..DEFER_name..".") else if medal_num == 1 then -- Notice("\200\227\240\238\234 "..ATKER_name.." \239\238\225\229\230\228\224\229\242 \232\227\240\238\234\224 "..DEFER_name.." \232 \239\238\235\243\247\224\229\242 "..rep_add_atker.." \238\247\234\238\226 \240\229\239\243\242\224\246\232\232 \232 "..honor_add.." \238\247\234\238(\234\224) \247\229\241\242\232.") else -- Notice("\200\227\240\238\234 "..ATKER_name.." \239\238\225\229\230\228\224\229\242 \232\227\240\238\234\224 "..DEFER_name.." \232 \239\238\235\243\247\224\229\242 "..rep_add_atker.." \238\247\234\238\226 \240\229\239\243\242\224\246\232\232.") end SetChaAttrI(ATKER, ATTR_FAME, ATKER_fame_add) SetChaAttrI(DEFER, ATTR_FAME, DEFER_fame_del) Add_ItemAttr_RYZ(ATKER, ATKER_medal, ITEMATTR_VAL_STR, honor_add) RefreshCha(ATKER) RefreshCha(DEFER) end else SystemNotice(ATKER, "\207\238\225\229\230\228\229\237 \241\235\232\248\234\238\236 \241\235\224\225\251\233 \239\240\238\242\232\226\237\232\234. \206\247\234\232 \240\229\239\243\242\224\246\232\232 \237\229 \239\238\235\243\247\229\237\251.") SystemNotice(DEFER, "\194\224\241 \239\238\225\229\228\232\235 \241\235\232\248\234\238\236 \241\232\235\252\237\251\233 \239\240\238\242\232\226\237\232\234. \206\247\234\232 \247\229\241\242\232 \237\229 \239\238\242\229\240\255\237\251.") --Notice("\200\227\240\238\234 "..ATKER_name.." \239\238\225\229\230\228\224\229\242 \232\227\240\238\234\224 "..DEFER_name..". \210\224\234 \234\224\234 "..ATKER_name.." \231\237\224\247\232\242\229\235\252\237\238 \241\232\235\252\237\229\229 \241\226\238\229\227\238 \239\240\238\242\232\226\232\237\232\234\224 (\240\224\231\237\232\246\224 "..Lv_dif.." \243\240\238\226\237\229\233) \238\247\234\232 \240\229\239\243\242\224\246\232\232 \232 \247\229\241\242\232 \238\237 \237\229 \239\238\235\243\247\224\229\242.") end end end Quote Делай добро и бросай его в воду Share this post Link to post Share on other sites