• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

Npc Guard

Erexo

Kage
Premium User
Joined
Mar 27, 2010
Messages
743
Solutions
5
Reaction score
200
Location
Pr0land
GitHub
Erexo
Witam,
poszukuje NPC który zabija osoby które mają white skulla (nie zabija rs'ów!)
Szukałem i szukałem, znalazłem tylko pod 7.92 który nie chodził poprawnie

Mam tfs'a pod 8.4 pl2 :)

Dziękuje,
Erexo.
 
W TFS'ie jest domyslnie taki NPC, chujowo szukales widocznie.
 
LUA:

Code:
local target = 0
local prevTarget = 0
local maxChaseDistance = 20
local origPos = 0
local lastAttack = 0
local followTimeout = 10

local function isSkulled(cid)
    if(getCreatureSkullType(cid) >= SKULL_WHITE and isPlayerPzLocked(cid)) then
        return true
    end

    return false
end

local function goToOrigPos()
    target = 0
    lastAttack  = 0
    selfFollow(0)
    doTeleportThing(getNpcCid(), origPos)
end

local function updateTarget()
    if(not isPlayer(target)) then
        goToOrigPos()
    elseif(not isSkulled(target)) then
        selfSay("Now, behave in the future.")
        goToOrigPos()
    end

    if(target == 0) then
        local list = getSpectators(getNpcPos(), 9, 9, false)
        for i = 1, table.getn(list) do
            local _target = list[i]
            if(_target ~= 0) then
                if(isPlayer(_target) and isSkulled(_target)) then
                    if(not getTilePzInfo(getCreaturePosition(_target))) then
                        if(selfFollow(_target)) then
                            target = _target
                            if(target ~= prevTarget) then
                                selfSay("We do not tolerate people like you here!")
                            end

                            prevTarget = target
                            break
                        end
                    end
                end
            end
        end
    end
end

function onCreatureAppear(cid)
    if(cid == getNpcCid()) then
        origPos = getNpcPos()
    end
end

function onCreatureDisappear(cid)
    if(cid == target) then
        goToOrigPos()
    end
end

function onCreatureMove(creature, oldPos, newPos)
    --
end

function onThink()
    updateTarget()

    if(target == 0) then
        return
    end

    local playerPos = getCreaturePosition(target)
    local myPos = getNpcPos()

    if(myPos.z ~= playerPos.z) then
        goToOrigPos()
        return
    end

    if(math.abs(myPos.x - origPos.x) > maxChaseDistance or math.abs(myPos.y - origPos.y) > maxChaseDistance) then
        selfSay("I'll catch you next time.")
        goToOrigPos()
        return
    end

    if(lastAttack == 0) then
        lastAttack = os.clock()
    end

    if(os.clock() - lastAttack > followTimeout) then
        selfSay("You got me this time, but just wait.")
        goToOrigPos()
        return
    end

    if((math.abs(playerPos.x - myPos.x) <= 1) and (math.abs(playerPos.y - myPos.y) <= 1)) then
        doTargetCombatHealth(getNpcCid(), target, COMBAT_LIFEDRAIN, -200, -300, CONST_ME_BLOCKHIT)
        lastAttack = os.clock()
    end
end
Cityguard.xml:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Cityguard" script="cityguard.lua" walkinterval="0" floorchange="0" speed="900">
    <health now="150" max="150"/>
    <look type="131" head="19" body="19" legs="19" feet="19"/>

  <interaction range="3" idletime="60">

    <interact keywords="hi" focus="1">
      <keywords>hello</keywords>

      <response text="Nothing to see here, move along.">
        <action name="idle" value="1"/>
      </response>
    </interact>

    <interact keywords="bye" focus="0">
      <keywords>farewell</keywords>

      <response text="Good bye."/>
    </interact>
  </interaction>

</npc>

Zamieniłem QUOTE na CODE. Jeśli mózg nie podpowiada, to regulamin prawdę ci powie... // Don Daniello
 
Last edited by a moderator:
Back
Top