Показать сообщение отдельно
Непрочитано 08.07.2011, 16:45   #1
Аватар для BopoHangel
Пользователь

Автор темы (Топик Стартер) Tales of Pirates - Захват флага Барбароссы

Особенности:

PvP локация.
Стоит порезка как в Хаосе и Снежной Войне.
Запрещено пати
За ношения флага даётся золота( 400 в секунду)
За убийство даются Душа Барбароссы которые потом можно обменять на уникальные шапки.


Время и место открытия:

Телепорт на Арену находится в Аргенте 2232,2781. Открывается 4 раза в сутки: 17:00 23:00 5:00 11:00 и карта работает в течении получаса ,а портал 20 минут.

Карта:




Принцип работы:

Вошедший первым в данную локацию персонаж - назначается системой - взявшим флаг, вокруг него появляется аура носителя флага. Его обязанность продержать этот флаг как можно дольше, при этом убивая врагов. Если же носителя флага убили, то флаг передается к тому, кто его убил. Флаг дает эффект свечения и за его ношение дается золото. На Арене крайне не рекомендуется носителю флагу релогаться, т.к. после релога флаг пропадает.


За убийства игроков дают Душа Барбароссы .Они необходимо для обмена на уникальные головные уборы 170 шт, обмениваемые у Пети Шапочника в Ледыни (1526,3089)




ctrl.lua


Код:
function config(map)
    MapCanSavePos(map, 0)                     -- Возможность сохранять позицию персонажа на карте (1 - да, 0 - нет)
    MapCanPK(map, 1)                         -- Возможность атаковать других персонажей (1 - да, 0 - нет)
    MapCanTeam( map, 0 )                    -- Возможность создавать отряды (1 - да, 0 - нет)
    MapCopyNum(map, 1)                         -- Количество копий карты (если параметр отсутствует, принимается равным 1)
    SingleMapCopyPlyNum(map, 60)                  -- Количество игроков на карте
    MapType ( map , 3 )                        -- Тип карты
    MapCanStall(map , 0)
end


function get_map_entry_pos_starena33()
    local POS_X=2232
    local POS_Y=2781
    return POS_X , POS_Y
end

function init_entry(map)
    SetMapEntryMapName(map, "garner")            -- Карта, на которой установлена точка входа на эту карту
    SetMapEntryTime(map, "2006/10/18/17/0", "0/6/0", "0/0/20", "0/0/30")   --Время открытия портала
end

function after_enter_starena33( role , map_copy ) --Функция выполняемая после захода на карту
    if id_char == 0 then --Если переменная "носитель флага" пуста, то...
        local statelv = 1  --Уровень эффекта
        local statetime = 99999  --Время эффекта
        local cha_name = GetChaDefaultName(role) --Получаем имя персонажа
        Notice ("Игрок ["..cha_name.."] получил флаг." ) --Выводим сообщение у кого флаг
        AddState ( role, role, 204, statelv, statetime ) --Добавляем эффект флага
    end
end

function before_leave_starena33( role ) --Функция выполняемая при выходе персонажа с карты
    RemoveState ( role, 204 ) --Сбросить флаг на игроке
end

function map_copy_before_close_starena33( map_copy ) --Функция выполняемая после закрытия карты
    id_char = 0 --Обнуляем переменую "носитель флага"
end


function map_copy_first_run_starena33( map_copy )

end

function map_copy_run_starena33( map_copy )

end


function can_open_entry_starena33( map )  
    
end 
――――――――――――--
function map_run_starena33 ( map )
    
   
end



function map_copy_close_starena33 ( map_copy )
end
        

function can_open_entry_starena33( map ) 
end
entry.lua

Код:
function config_entry(entry) 
    SetMapEntryEntiID(entry,2492,1) 

end 

function after_create_entry(entry) 
    local copy_mgr = GetMapEntryCopyObj(entry, 0)

    local EntryName = " ^^ =] Захват флага Барбороссы [= ^^ "
    SetMapEntryEventName( entry, EntryName )    
    
    map_name, posx, posy, tmap_name = GetMapEntryPosInfo(entry) 
    Notice("Внимание: В Аскароне ["..posx..","..posy.."] появился портал в [Захват флага Барбороссы].")

end

function after_destroy_entry_starena33(entry)
    map_name, posx, posy, tmap_name = GetMapEntryPosInfo(entry) 
    Notice("Внимание: Портал в [Захват флага Барбороссы] закрылся! Возрадуйтесь!") 
end

function after_player_login_starena33(entry, player_name)
    map_name, posx, posy, tmap_name = GetMapEntryPosInfo(entry) 
    ChaNotice(player_name, "Внимание: В Аскароне ["..posx..","..posy.."] появился портал в [Захват флага Барбороссы].") 

end

function begin_enter_starena33(role, copy_mgr) 
        MoveCity(role, "Arena 3A")
end
birth_conf.lua

Код:
AddBirthPoint("Arena 3A", "starena33", 63,47)
AddBirthPoint("Arena 3A", "starena33", 63,80)
AddBirthPoint("Arena 3A", "starena33", 81,63)
AddBirthPoint("Arena 3A", "starena33", 44,63)
functions.lua (функция сha_timer) вставить после фей.

Код:
    local map = GetChaMapName ( role ) --Получаем название карты где находяться игроки
    if map == "starena33" then --Если игрок на карте захвата флага, то...
        local flag = GetChaStateLv ( role , 204 ) --Переменная хранящая значение флага
        if flag > 0 then --Если на игроке флаг есть, то...
            id_char = role --Записать его ID в переменную "носитель флага"
            AddMoney ( role , 0 , 400 )
        end
    end
    local cha_map = GetChaMapName ( id_char ) --Получаем карту нахождения носителя флага
    if cha_map ~= "starena33" then --Если он находиться не на карте захвата флага, то...
        local name_char = GetChaDefaultName ( id_char ) --Получаем его ник
        Notice("["..name_char.."] убежал что аж пятки засверкали и выбросил флаг. Первый вошедший на локацию получит его." ) --Выводим сообщение, о потери флага
        id_char = 0 --Удаляем его ID из переменной "носитель флага"
    end
functions.lua (функция after_player_kill_player)

Код:
    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"
    MGPK_MapName[11] = "PKmap"
    MGPK_MapName[12] = "bountypk"
    MGPK_MapName[13] = "07xmas2"
    MGPK_MapName[14] = "darkblue"
    MGPK_MapName[15] = "darkblue2"
    MGPK_MapName[16] = "starena33"
Добавить эту карту и изменить тут на число карт:

Код:
local MGPK_MapNameNum = 16
functions.lua (функция after_player_kill )

Код:
    if map_name_ATKER == "starena33" or map_name_DEFER == "starena33" then
        local ATKER = TurnToCha ( ATKER )
        local DEFER = TurnToCha ( DEFER )
        GiveItem ( ATKER , 0 , 7818, 1 , 4 )
    end
Код:
    if map_name_ATKER == "starena33" or map_name_DEFER == "starena33" then --Если эта карта где нужно захватывать флаг, то...
         if id_char == DEFER then --Если ID носителя флага равен ID умершего игрока, то...
            local statelv = 1  --Уровень эффекта
            local statetime = 99999  --Время эффекта
            local atk_name = GetChaDefaultName ( ATKER ) --Ник убийцы
            local def_name = GetChaDefaultName ( DEFER ) --Ник убитого игрока
            RemoveState ( DEFER, 204 ) --Сбросить флаг на убитом игроке
            AddState ( ATKER, ATKER, 204, statelv, statetime ) --Добавить флаг убийце 
            Notice ("["..atk_name.."] жестоко покарал ["..def_name.."] и в догонку дал пинка ^^ ") --Вывести сообщение у кого флаг
        end
    end
ItemInfo.txt

Код:
7818    Душа Барбароссы    n1645    10130005    0    0    0    0    0    0    31    0    0    0    0    0    1    1    1    1    99    0    100    -1,-2,-2,-2    0    -1,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2    0    0    -1,-2,-2,-2,-2,-2,-2,-2,-2,-2    -1,-2,-2,-2,-2,-2,-2,-2,-2,-2    0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0    0,0    0,0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    Ходят слухи, что в этой карте сокрыта Темная душа Барбароссы, и с тем, кто коснется ее, случится чудо...    
7811    Доблесть Стрелка    s1338    10110001    0000112001    0    0002112001    0    0    00    20    0    0    0    4    1    0    1    0    1    1    1    0    1,3    70    12    0    0    0    -1    0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    6,6    6,6    0,0    0,0    0,0    0,0    0,0    0,0    0,0    50,50    500,500    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0    7000,7000    20000,20000    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    Видимо ты заслужил меня!    
7812    Доблесть Целителя,Моряка и Колдуньи    s1338    10110001    0000112001    0    0002112001    0003112001    0    00    20    0    0    0    4    1    0    1    0    1    1    1    0    1,3,4    70    13,16,14    0    0    0    -1    0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    6,6    6,6    0,0    0,0    0,0    0,0    0,0    50,50    0,0    200,200    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0    7000,7000    20000,20000    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    Видимо ты заслужил меня!    
7813    Доблесть Воителя    s1338    10110001    0000112001    0    0002461001    0    0    00    20    0    0    0    4    1    0    1    0    1    1    1    0    1,3    70    9    0    0    0    -1    0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    6,6    6,6    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    40,40    300,300    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0    7000,7000    20000,20000    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    Видимо ты заслужил меня!    
7815    Доблесть Чемпиона    e1342    10110001    0    0001112001    0    0    0    00    20    0    0    0    4    1    0    1    0    1    1    1    0    2    70    8    0    0    0    -1    0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    6,6    4,4    0,0    6,6    0,0    0,0    0,0    0,0    0,0    0,0    30,30    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0,0    0    7000,7000    20000,20000    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    Видимо ты заслужил меня!
*npc.txt

Код:
121    Петя Шапочкин    1    404    0    128621,53370    128621,53370    309    Rockery Haven    58    0    r_IIIapki    0
NpcScript*.lua

Код:
function r_IIIapki ()

    Talk( 1, " Здраствуй! Если ты пришёл ко мне то тебе нужны вещи за Души Барбароссы ...  " )
    Text( 1, " Да я за этим! ", JumpPage, 2)

    Talk( 2, " Выбирай какая шапка тебе нужна " )
    Text( 2, " Доблесть Стрелка ", JumpPage, 3)
    Text( 2, " Доблесть Целителя,Моряка и Колдуньи ", JumpPage, 4)
    Text( 2, " Доблесть Воителя ", JumpPage, 5)
    Text( 2, " Доблесть Чемпиона ", JumpPage, 6)


    Talk( 3, " Принеси мне 170 карт Барбароссы и я тебе отдам шапку! " )
    InitTrigger()
    TriggerCondition( 1, HasItem,7818,170)
    TriggerCondition( 1, HasLeaveBagGrid, 1 )
    TriggerCondition( 1, KitbagLock, 0 )
    TriggerAction( 1, TakeItem, 7818,170 )
    TriggerAction( 1, GiveItem, 7811,1,4 )
    TriggerFailure( 1, JumpPage, 20)
    Text( 3," Обменять! ",MultiTrigger,GetMultiTrigger(),1 )
    
    Talk( 4, " Принеси мне 170 карт Барбароссы и я тебе отдам шапку! " )
    InitTrigger()
    TriggerCondition( 1, HasItem,7818,170)
    TriggerCondition( 1, HasLeaveBagGrid, 1 )
    TriggerCondition( 1, KitbagLock, 0 )
    TriggerAction( 1, TakeItem, 7818,170 )
    TriggerAction( 1, GiveItem, 7812,1,4 )
    TriggerFailure( 1, JumpPage, 20)
    Text( 4," Обменять! ",MultiTrigger,GetMultiTrigger(),1 )
    
    Talk( 5, " Принеси мне 170 карт Барбароссы и я тебе отдам шапку! " )
    InitTrigger()
    TriggerCondition( 1, HasItem,7818,170)
    TriggerCondition( 1, HasLeaveBagGrid, 1 )
    TriggerCondition( 1, KitbagLock, 0 )
    TriggerAction( 1, TakeItem, 7818,170 )
    TriggerAction( 1, GiveItem, 7813,1,4 )
    TriggerFailure( 1, JumpPage, 20)
    Text( 5," Обменять! ",MultiTrigger,GetMultiTrigger(),1 )
    
    Talk( 6, " Принеси мне 170 карт Барбароссы и я тебе отдам шапку! " )
    InitTrigger()
    TriggerCondition( 1, HasItem,7818,170)
    TriggerCondition( 1, HasLeaveBagGrid, 1 )
    TriggerCondition( 1, KitbagLock, 0 )
    TriggerAction( 1, TakeItem, 7818,170 )
    TriggerAction( 1, GiveItem, 7815,1,4 )
    TriggerFailure( 1, JumpPage, 20)
    Text( 6," Обменять! ",MultiTrigger,GetMultiTrigger(),1 )
    
    Talk( 20, " У вас не хватает предметов! " )

end
functions.lua (функция Hp_Dmg)

Код:
or map_name_ATKER == "starena33" or map_name_DEFER == "starena33" then
Добавить этот код.


variable.lua

Код:
id_char = 0                 --Переменная "носитель флага"
За основную карту используется starena33


Копирование на прочие форумы запрещено!!!

© eXtaZy aka BopoHangel
BopoHangel вне форума Ответить с цитированием
Сказали спасибо: