Jump to content

[Lua]Добавить NPC на карту и добавляем lua функции


Recommended Posts

Между значениями должны быть табы [TAB]
//Serial NPC Name    NPC Type    Chrindex ID Show Mini-map   Coordinates starting point  Coordination Goal   NPC placement   Region  Region ID   NPC Script  info manage Test Status
1   New Npc 1   733 13  27125,38075 27125,38075 120 Owl City    1   0   NewNpc  0


Покупка предметов

function NewNpc ()
    Talk( 1, "Normal Seller" ) 
    Text( 1, "Trade", BuyPage) 
    Text( 1, "Nothing...",  CloseTalk)

        Weapon( ItemID  ) -- предмет появится на странице оружия
        Defence(    ItemID  ) -- предмет появится на странице одежды
        Other(  ItemID  ) -- предмет появится на странице другого

Обмен репутации

function NewRep()
    Talk( 1, "Exchanger Rep for Item!" )
    Text( 1, "Exchange Item", JumpPage, 2 )

    Talk(2,"Do you want to exchange YYYY REP for XXXX item?")

    TriggerCondition( 1, HasCredit,YYYY )
    TriggerCondition( 1, HasLeaveBagGrid, 1 )
    TriggerCondition( 1, KitbagLock, 0 )
    TriggerAction( 1, DelRoleCredit,YYYY )
    TriggerAction( 1, GiveItem, XXXX,1,4 )
    TriggerFailure( 1, JumpPage, 3)

    Text(2,"XXXX Item for YYYY reputation points" ,MultiTrigger,GetMultiTrigger(),1)
    Talk( 3, "Sorry, you do not have the required Reputations Points. I cannot exchange it for you." )

Говорящий NPC

function ChaSay(role,target,text)
    local pkt = GetPacket()
    local tid = GetCharID( target )
    WriteCmd( pkt, 501 );
    WriteDword( pkt, tid );
    WriteString( pkt, text);
    SendPacket( role, pkt );
function cha_npc_timer(ignore, character,freq,time)
    local name = GetChaDefaultName (character)
    local target = find_target(character,300)
    local playername = GetChaDefaultName (target)
        ChaSay(target,character, "Э, " ..playername.. " сюда иди!" )
Hook:AddPostHook("cha_timer", cha_npc_timer, 2)

Разговоры с NPC по времени

Скрипт NPC:

function pn_FuncName()
TriggerCondition(1, CheckTime, 1400, 1800) -- NPC работает с 14:00 до 18:00
TriggerAction(1, JumpPage, 1) -- Если мы взаимодействуем с NPC в указанный интервал, то NPC работает с нами.
TriggerFailure(1, JumpPage, 2 ) -- В противном случае мы попадаем на страницу, где нам говорят, что в данное время нельзя "поговорить" с NPC.
Start(GetMultiTrigger(), 1)

Talk( 1, "Я буду с тобой говорить! " )
Talk( 2, "Я НЕ буду с тобой говорить! " )

Затем в functions.lua добавляем функцию CheckTime:

function CheckTime(character, i1, i2)
local hour   = tonumber(os.date("%H")) * 100
local minute = tonumber(os.date("%M"))
local check  = hour + minute
if check >= i1 and check <= i2 then
    return LUA_TRUE

return LUA_FALSE

Далее функцию следует добавить в список conditions в файле MissionSdk.lua

        elseif conditions[i].func == CheckTime then
            PRINT( "ConditionsTest: CheckTime")
            local ret = CheckTime(character, conditions[i].p1, conditions[i].p2)
            if ret ~= LUA_TRUE then
                PRINT( "ConditionsTest: CheckTime = false" )
                return LUA_FALSE


Link to comment
Share on other sites

  • Go-piratia changed the title to [Lua]Добавить NPC на карту и добавляем lua функции

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



Please enter your display name

  • Create New...