• 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!
  • New resources must be posted under Resources tab. A discussion thread will be created automatically, you can't open threads manually anymore.

NPC Halloween NPC

Gesior.pl

Mega Noob&LOL 2012
Senator
Joined
Sep 18, 2007
Messages
2,979
Solutions
100
Reaction score
3,423
Location
Poland
GitHub
gesior
LUA code:
PHP:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)

local condition = createConditionObject(CONDITION_OUTFIT)
setConditionParam(condition, CONDITION_PARAM_TICKS, 3 * 24 * 3600 * 1000) -- here time in miliseconds, default 3 days
addOutfitCondition(condition, 0, 230, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 231, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 232, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 233, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 234, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 235, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 236, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 237, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 238, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 239, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 240, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 241, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 242, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 243, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 244, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 245, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 246, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 247, 0, 0, 0, 0)
setCombatCondition(combat, condition)

local area = createCombatArea( { {1,1,1,1,1}, {1,1,1,1,1}, {1,1,3,1,1}, {1,1,1,1,1}, {1,1,1,1,1} } )
setCombatArea(combat, area)

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

-- OTServ event handling functions start
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
-- OTServ event handling functions end
npcHandler:setMessage(MESSAGE_GREET, "Hello |PLAYERNAME|. Say halloween.")

function halloweenNPC(cid, message, keywords, parameters, node)
	doCombat(getNpcCid(), combat, numberToVariant(getNpcCid()))
	npcHandler:say('You are Dead, Suprise!', cid)
	return true
end
keywordHandler:addKeyword({'halloween'}, halloweenNPC, {})
npcHandler:addModule(FocusModule:new())
XML code:
PHP:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Halloween" script="data/npc/scripts/halloween.lua" walkinterval="2000" floorchange="0">
	<health now="100" max="100"/>
	<look type="292" head="0" body="0" legs="0" feet="0" corpse="5995"/>
	<parameters />
</npc>
 
Nice, I'm learning alot from your scripts :)

One question: What is "getNpcCid()" for?
 
Nice, I'm learning alot from your scripts :)

One question: What is "getNpcCid()" for?
Player, monster, item, everything have uniqueID. It's unique ID of 'this' NPC. This function can be used only in NPC scripts and return uniqueID of NPC.
PHP:
doTeleportThing(getNpcCid(), {x=123,y=343,z=7}, TRUE)
Teleport NPC to position {x=123,y=343,z=7}
 
Isn't better replacing this:
Lua:
addOutfitCondition(condition, 0, 230, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 231, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 232, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 233, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 234, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 235, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 236, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 237, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 238, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 239, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 240, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 241, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 242, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 243, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 244, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 245, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 246, 0, 0, 0, 0)
addOutfitCondition(condition, 0, 247, 0, 0, 0, 0)

With this? (i don't know is this work)
Lua:
for i = 231, 247 do
addOutfitCondition(condition, 0, i, 0, 0, 0, 0)
end
 
Back
Top Bottom