What's new

Jak po??czy? skrypty NPCt?w?

Status
Not open for further replies.

fidor11

User
Joined
Dec 29, 2010
Messages
18
Reaction score
0
Witam! To po raz kolejny ja :)
Tym razem mam problem z NPC
(Mam Visumots 8.7)
Ot?? utworzy?em takiego oto NPC imieniem Ared (w sumie to przeedytowa?em NPCta od soft?w)
Oto skrypt do niego:
PHP:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

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

function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

if(msgcontains(msg, 'zelazo') or msgcontains(msg, 'kawalek zelaza')) then
selfSay('Taakk.. Mam cos takiego. Dam Ci go, jesli przyniesiesz mi 20 snopkow pszenicy. Umowa stoi?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'tak') and talkState[talkUser] == 1) then
doPlayerAddItem(cid, 2550)
selfSay('Prosze, oto kosa. Na poludniu od wioski sa pola. Tam mozesz sciac pszenice', cid)
talkState[talkUser] = 0
elseif(msgcontains(msg, 'nic') and isInArray({1}, talkState[talkUser]) == TRUE) then
talkState[talkUser] = 0
selfSay('A to spadaj...', cid)
end

return true
end
I tu si? pojawia problem...
Po dodaniu go do mapy, gdy pr?buje w??czy? ots w konsoli pojawia si? taki oto b??d:
[Warning - NpcScript::NpcScript] Can not load script: data/npc/scripts/ared.lua
data/npc/scripts/ared.lua:14: 'end' expected (to close 'function' at line 3) near 'elseif'
Czy kto? zechcia? by wyja?ni? w czym problem ;) ?

I problem 2

Chcia?bym po??czy? ten skrypt up z nast?puj?cym skryptem, tak ?eby jeden NPC reagowa? i na komendy ze skrypt up (tego niedzia?aj?cego jeszcze xD) i na te ze skryptu poni?ej

PHP:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

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

function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

if(msgcontains(msg, 'zadanie') or msgcontains(msg, 'quest')) then
selfSay('Czy masz przy sobie 20 snopkow pszenicy?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'tak') and talkState[talkUser] == 1) then
if(getPlayerItemCount(cid, 2694) >= 20) then
if(doPlayerRemoveItem(cid, 2694, 10) == TRUE) then
doPlayerRemoveItem(cid, 2694, 10)
setPlayerStorageValue(cid, 23467, 1)
selfSay('Dziekuje! Wlasnie o to mi chodzilo! Teraz mozesz wziasc {kawalek zelaza} ze skrzynki w pokoju obok', cid)
else
selfSay('Wydaje mi sie ze troche Ci brakuje... Wroc gdy nazbierasz 20 snopkow', cid)
end
else
selfSay('Wydaje mi sie ze troche Ci brakuje... Wroc gdy nazbierasz 20 snopkow', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, Nie') and isInArray({1}, talkState[talkUser]) == TRUE) then
talkState[talkUser] = 0
selfSay('A to spadaj...', cid)
end

return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Edit:

Uda?o mi si? naprawi? 1 skrypt
Teraz prosi? bym tylko o pomoc przy "sklejeniu" tych dw?ch skrypt?w w jeden :)
 
Status
Not open for further replies.
Top