Ir para conteúdo

[Quest & Npcs] Pedidos ;)


SkyDangerous

Posts Recomendados

Iaew Galerinha ;O

 

Queria saber se alguem que entenda de scripts e npcs possa me ajudar nesse script.

 

Bom , vou tentar explicar o máximo para não dar confusão.

 

1º Npc Script

 

é possivél fazer um script , aonde o npc vende apenas 1 addons .. igual ao tibia rl ?

 

2º Movement

 

é possivél fazer um script , aonde a pessoa só poderá passar se estiver o tal addon

 

3º NPC Script

 

é possível fazer um script , que apenas se tiver um tal addon o npc fala.

 

Se possivél alguem saber uns dos scripts , porfavor me ajudem :)

Link para o comentário
Compartilhar em outros sites

bom, o 1° é bem facil...

 

creio que seu Npc addoner é aquele q vc tem q falar:

 

FIRST nome do addon ADDON

SECOND nome do addon ADDON

 

se for....vc cria os 2 npc lá, 1 q vai vende o addon 1 e o outro que vai vendo o addon 2

 

eu de exemplo peguei o addon mage:

 

-- mage (done)

local outfit_node = keywordHandler:addKeyword({'first mage addon'}, playerBuyAddonNPC, {premium = false, cost = 0, items = {{2182,1}, {2186,1}, {2185,1}, {8911,1}, {2181,1}, {2183,1}, {2190,1}, {2191,1}, {2188,1}, {8921,1}, {2189,1}, {2187,1}, {2392,30}, {5809,1}, {2193,20}}, outfit_female = 138, outfit_male = 130, addon = 1, storageID = 10005})

outfit_node:addChildKeywordNode(yesNode)

outfit_node:addChildKeywordNode(noNode)

local outfit_node = keywordHandler:addKeyword({'second mage addon'}, playerBuyAddonNPC, {premium = false, cost = 0, items = {{5903,1}}, outfit_female = 138, outfit_male = 130, addon = 2, storageID = 10006})

outfit_node:addChildKeywordNode(yesNode)

outfit_node:addChildKeywordNode(noNode)

 

 

simplesmente voce pega o

 

local outfit_node = keywordHandler:addKeyword({'first mage addon'}, playerBuyAddonNPC, {premium = false, cost = 0, items = {{2182,1}, {2186,1}, {2185,1}, {8911,1}, {2181,1}, {2183,1}, {2190,1}, {2191,1}, {2188,1}, {8921,1}, {2189,1}, {2187,1}, {2392,30}, {5809,1}, {2193,20}}, outfit_female = 138, outfit_male = 130, addon = 1, storageID = 10005})

outfit_node:addChildKeywordNode(yesNode)

outfit_node:addChildKeywordNode(noNode)

 

e bota no npc que vende o addon 1...

e a outra parte:

local outfit_node = keywordHandler:addKeyword({'second mage addon'}, playerBuyAddonNPC, {premium = false, cost = 0, items = {{5903,1}}, outfit_female = 138, outfit_male = 130, addon = 2, storageID = 10006})

outfit_node:addChildKeywordNode(yesNode)

outfit_node:addChildKeywordNode(noNode

 

vc bota no npc que vende o addon 2...

 

 

bem, n expliquei bem certo, + vc vai entende, faça com base no script do Addoner

 

abraços

Editado por felipedorgas
Link para o comentário
Compartilhar em outros sites

2° --

 

function onStepIn(cid, item, position, fromPosition)

config = {  
   msg_yes = 'Bem vindo.', 
   msg_no = 'Somentes jogadores com tal outfit podem passar.' 
       } 

local outfit = getCreatureOutfit(cid)

if(isPlayer(cid)) then
if(getPlayerSex(cid) == 1) then
if outfit.lookType == 268  then
doPlayerSendTextMessage(cid, 25, config.msg_yes)  
else 
doTeleportThing(cid, fromPosition) 
doPlayerSendCancel(cid, config.msg_no)  
end
end
end

if(isPlayer(cid)) then
if(getPlayerSex(cid) == 0) then
if outfit.lookType == 269 then
doPlayerSendTextMessage(cid, 25, config.msg_yes)  
else 
doTeleportThing(cid, fromPosition) 
doPlayerSendCancel(cid, config.msg_no)  
end
end
end

return TRUE 
end

 

para male:

 

(getPlayerSex(cid) == 1) -- char male

outfit.lookType == 268 -- 268 é o numero da outfit Nightmare do char male (pode alterar)

 

(getPlayerSex(cid) == 0) -- char female

outfit.lookType == 269 -- 269 representa o numero da outfit Nightmare do char female (pode alterar)

Link para o comentário
Compartilhar em outros sites

É bem fácil fazer um NPC que só atenda se o jogador tiver tal outfit e addons.

 

Você pode usar as duas funções: canPlayerWearOutfit(cid, looktype[, addon = 0]) ou canPlayerWearOutfitId(cid, outfit[, addon = 0])

O script do seu NPC ficaria mais ou menos assim:

 

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 greetCallback(cid)
  local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
  if getPlayerSex(cid) == 1 then
     if canPlayerWearOutfitId(cid, 268, 2) then
        npcHandler:setMessage(MESSAGE_GREET, "Hello Nightmare Master! I want {help} from you!")
        talkState[talkUser] = 1
     else
        npcHandler:setMessage(MESSAGE_GREET, "I don\'t talk with stranges")
        npcHandler:releaseFocus(cid)
     end
  end
  return true
end

function msgCallback(cid, type, msg)
  if(not npcHandler:isFocused(cid)) then
     return false
  end
  local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
end

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

 

Este exemplo simples acima de NPC, faz com que ele só responda ao "Hi" e "Hello" de forma positiva, se o jogador for do sexo Masculino e tiver outfit 268 com 2 addons, no caso o NPC iria responder, "Hello Nightmare Master! I want {help} from you!".

 

Lembrando que é se o jogador tiver a outfit, não se o jogador está vestido com a outfit.

Se o jogador não ser do sexo Masculino e não tiver a outfit, o NPC vai responder "I don't talk with stranges".

Abraços.

Link para o comentário
Compartilhar em outros sites

@Oneshot

 

ae bem legal eu não sabia da existência dessa função do Npc que checka se ele está ou não com a outfit e o addon.

 

Obrigado cara xD

 

abraços

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...