[Скрипт]Проход в локацию по пропуску через телепортера от [Babah] | Разработка игровых платформ
  1. Доброго времени суток. В связи с появлением спамеров, активация функций новых пользователей (Создавать темы, писать сообщения), теперь будет только после проверки администратором! Для регистрации отписываемся в лс, в вк. vk.com/tehnik777 (Пишем только с реальных страниц)
    Скрыть объявление

[Скрипт]Проход в локацию по пропуску через телепортера от [Babah]

Тема в разделе "Наработки пользователей", создана пользователем Zloo, 10 дек 2016.

Обсуждение темы [Скрипт]Проход в локацию по пропуску через телепортера от [Babah] в разделе Наработки пользователей на форуме zetta-forum.ru.

  1. Zloo

    Zloo Администратор Команда форума

    Регистрация:
    31 окт 2016
    Сообщения:
    265
    Симпатии:
    158
    Баллы:
    43
    Пол:
    Мужской
    Сайт:
    https://zetta-forum.ru
    VK:
    https://vk.com/tehnik777
    Думаю всё внятно и понятно расписано.

    Код:
    function shendianchuansong_OnTalk(MapID, InstanceID, TargetID, TargetTypeID, RoleID, TalkIndex)
        --Захваченный город
        local rolelevel = role.GetRoleLevel(MapID, InstanceID, RoleID)
            if TalkIndex == -1 then
                local MsgID = msg.BeginMsgEvent()
                msg.AddMsgEvent(MsgID, 20, 700108)        --idMSG так же прописывается в String_table
                msg.AddMsgEvent(MsgID, 24, TargetID)    --npcid
                msg.AddMsgEvent(MsgID, 21, 4)            --кнопка Отмена
                msg.AddMsgEvent(MsgID, 1, 700109)        --idMSG так же прописывается в String_table
                msg.AddMsgEvent(MsgID, 21, 5)            --кнопка Отмена
                msg.AddMsgEvent(MsgID, 1, 100002)        --idMSG так же прописывается в String_table
                msg.DispatchRoleMsgEvent(RoleID, MsgID)
            elseif TalkIndex == 4 then
                local TeamID = role.IsRoleHaveTeam(MapID, InstanceID, RoleID)
                local minlv = 0        --минимум уровень для газговора если оставить 0 ограничений не будет
                local maxlv = 0        --максимальный уровень для разговора если оставить 0 ограничений не будет
                local level = role.GetRoleLevel(MapID, InstanceID, RoleID)
                if level < 80 then   --Миннимальный уровень для входа
                    local MsgID = msg.BeginMsgEvent()
                    msg.AddMsgEvent(MsgID, 20,    700110)        --idMSG так же прописывается в String_table
                    msg.AddMsgEvent(MsgID, 24,    TargetID)    --npcid
                    msg.AddMsgEvent(MsgID, 21,    5)            --кнопка Отмена
                    msg.AddMsgEvent(MsgID, 1,    100001)        --idMSG так же прописывается в String_table
                    msg.DispatchRoleMsgEvent(RoleID, MsgID)
                else
                    if role.GetRoleItemNum(RoleID, 6600224) >= 1 then
                        if TeamID ~= nil and TeamID ~= 4294967295 then
                        local Role = {}
                        Role[1], Role[2], Role[3], Role[4], Role[5], Role[6] = role.GetRoleTeamMemID(TeamID)
                            for i=1, 6 do
                                if Role and Role~= 4294967295 then
                                    local Target_MapID, Target_InstanceID = role.GetRoleMapID(Role)
                                    local rolelevel = role.GetRoleLevel(Target_MapID, Target_InstanceID, Role)
                                    if minlv == 0 then
                                        minlv = rolelevel
                                        maxlv = rolelevel
                                    end
                                    if maxlv < rolelevel then
                                        maxlv = rolelevel
                                    elseif minlv > rolelevel then
                                        minlv = rolelevel
                                    end
                                end
                            end
                            if maxlv - minlv > 15 then
                                local MsgID = msg.BeginMsgEvent()
                                msg.AddMsgEvent(MsgID, 20,    700111)        --idMSG так же прописывается в String_table
                                msg.AddMsgEvent(MsgID, 24,    TargetID)    --npcid
                                msg.AddMsgEvent(MsgID, 21,    5)            --кнопка Отмена
                                msg.AddMsgEvent(MsgID, 1,    100001)        --idMSG так же прописывается в String_table
                                msg.DispatchRoleMsgEvent(RoleID, MsgID)
                            else
                                role.RemoveFromRole(MapID, InstanceID, RoleID, 6600224, 1, 420)--id предмета который должен быть для входа, количество
                                role.RoleGotoNewMap(MapID, InstanceID, RoleID, 881225009, 382, 25, 382)--crc карты и кординаты куда будет попадать при телепорте x y z
    
                            end
                        elseif TeamID ~= nil then
                            role.RemoveFromRole(MapID, InstanceID, RoleID, 6600224, 1, 420)--id предмета который должен быть для входа, количество
                            role.RoleGotoNewMap(MapID, InstanceID, RoleID, 881225009, 382, 25, 382)--crc карты и кординаты куда будет попадать при телепорте x y z
    
                        end
                    else
                        local MsgID = msg.BeginMsgEvent()
                        msg.AddMsgEvent(MsgID, 20,    700112)        --Проводник Захваченого города:\n    У вас не хватает Знака Тарио, невозможно войти в Город
                        msg.AddMsgEvent(MsgID, 24,    TargetID)    --npcid
                        msg.AddMsgEvent(MsgID, 21,    5)            --кнопка Отмена
                        msg.AddMsgEvent(MsgID, 1,    100001)        --“да”
                        msg.DispatchRoleMsgEvent(RoleID, MsgID)
                    end
                end
            end
    end
    aux.RegisterCreatureEvent(1070108, 7, "shendianchuansong_OnTalk")--id НПС для прохода
     

Поделиться этой страницей