Postado Outubro 30, 2015 9 anos Boa noite pessoal, estou tendo um problema, eu queria um NPC Travel que antes de viajar desse um check na storage e se tiver tal storage o NPC te leva, sendo que pra ter tal storage teria que dar um item a esse mesmo NPC. Eu achei esse script aqui no forum, que o usuario Maxwellden postou, tentei fazer as modificações mas não consegui Eu tentei por um getPlayerStorageValue, getPlayerItemCount, setPlayerStorageValue e doPlayerRemoveItem dentro do elseif, mas o NPC não aparecia no mapa local STORAGE = 5021 -- Storage necessária para viajar local DESTINO = {x = 160, y = 54, z = 7} -- POSIÇÃO DE DESTINO local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg:lower()) end function onThink() npcHandler:onThink() end local talkState = {} 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, "cinnabar") then selfSay("Você deseja ser teletransportado para cinnabar?", cid) talkState[talkUser] = 1 elseif msgcontains(msg, "yes") and talkState[talkUser] == 1 then if getPlayerStorageValue(cid, STORAGE) > 0 then selfSay("Aí está!", cid) doSendMagicEffect(getThingPos(cid), 10) npcHandler:releaseFocus(cid) doTeleportThing(cid, DESTINO) doSendMagicEffect(DESTINO, 10) else selfSay("Me desculpe, mas você não tem acesso a cinnabar.", cid) end talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Essa é a primeira vez que mexo com NPC, se alguem puder me passar um tutorial de npc em lua, agradeço desde já. @EDIT, TFS 1.2 Editado Outubro 30, 2015 9 anos por RXSora (veja o histórico de edições)
Postado Outubro 31, 2015 9 anos Solução 18 horas atrás, RXSora disse: eu queria um NPC Travel que antes de viajar desse um check na storage e se tiver tal storage o NPC te leva, sendo que pra ter tal storage teria que dar um item a esse mesmo NPC. @EDIT, TFS 1.2 Aqui..travel.lua (data\npc\scripts) local item, pos, key = {5432, 1}, {x = 123, y = 456, z = 7}, 54321 -- {itemid, count}, {xyz position to teleport}, storage key local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) 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 local function creatureSayCallback(cid, type, msg) if not npcHandler:isFocused(cid) then return false end local p = Player(cid) if msgcontains(msg, 'yes') and npcHandler.topic[cid] == 0 and p:getStorageValue(key) < 1 then npcHandler:say('Ok, but first you need to bring me '..item[2]..' '..ItemType(item[1]):getName()..(item[2] > 1 and 's' or '')..'. Do you have it?', cid) npcHandler.topic[cid] = 1 elseif npcHandler.topic[cid] == 1 then if msgcontains(msg, 'yes') then if p:removeItem(item[1], item[2]) then p:setStorageValue(key, 1) npcHandler:say('Sure. Do you want to go now?', cid) npcHandler.topic[cid] = 0 else npcHandler:say('You don\'t have any '..ItemType(item[1]):getName()..'. Get out of here!', cid) npcHandler:releaseFocus(cid) end end else npcHandler:say('Have a good trip!', cid) npcHandler:releaseFocus(cid) p:teleportTo(pos) pos:sendMagicEffect(CONST_ME_TELEPORT) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Travel.xml (data\npc) <npc name="Travel" script="travel.lua" walkinterval="3000" floorchange="0"> <health now="100" max="100" /> <look type="151" head="20" body="39" legs="45" feet="7" addons="0" /> <parameters> <parameter key="message_greet" value="Hail |PLAYERNAME|. Would you like to take a trip?"/> <parameter key="message_decline" value="Hm, okay. Get out of here!"/> <parameter key="message_walkaway" value="Sure." /> </parameters> </npc> Editado Outubro 31, 2015 9 anos por Wise (veja o histórico de edições) The corrupt fear us. The honest support us. The heroic join us.
Postado Outubro 31, 2015 9 anos Autor Perfeito :D Editado Outubro 31, 2015 9 anos por RXSora (veja o histórico de edições)
Postado Outubro 31, 2015 9 anos 23 horas atrás, RXSora disse: se alguem puder me passar um tutorial de npc em lua Em relação a isso, brother, recomendo que vc adquira conhecimento na linguagem Lua em si, não especificamente p/ NPCs. Eis um dos melhores sites com conteúdo dessa linguagem: lua-users.org (meu favorito) ;] The corrupt fear us. The honest support us. The heroic join us.
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.