LE

[Resolvido] Npc Quest

Por leonvenigor, 18 de abr. de 2012 em Scripts

14
1.6k
leonvenigorL
18 de abril de 2012 às 12:27

galera eu to kerendo um npc de quest, q peça 10 meat em troca ele te da um spell

me ajudem por favor rep +

SubwatS
18 de abril de 2012 às 12:42

como assim explica melhor n entendi

leonvenigorL
18 de abril de 2012 às 12:47

tipo o player vai la e fala com o npc, ai o npc pede tal item, se o player trouxer o item pro npc ele da utevo lux pro player

SubwatS
18 de abril de 2012 às 12:52

ah entendi, vou ver se consigo fazer aki

jhon992J
18 de abril de 2012 às 12:53

@Subwat, reportado por flood. Não é a primeira vez que vejo tu floodando topicos dessa maneira para ganhar mais posts, sendo que qualquer um pode entender oque esse usuario quer, e mesmo depois do usuario explicar melhor você não atende seu pedido.

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

@leonvenigor, o script do npc vai ficar assim:

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

local itemNeed = { -- itens que precisa para completar a troca

{itemid = 1234, quant = 10}, -- id do item, quantidade


}

local spellName = "Light" -- nome da spell que aprendera, os nomes das spells se encontrar no arquivo spells.xml
local lvlNeed = 8 -- lvl necessario para fazer a quest.

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, 'trocar') then

selfSay('Você deseja trocar '.. itemNeed[1].quant ..''.. getItemNameById(itemNeed[1].itemid) ..', pela spell' .. spellName ..'.', cid)
talkState[talkUser] = 2


elseif talkState[talkUser] == 2 then

if msgcontains(msg, 'yes') then

   if getPlayerLevel(cid)  < lvlNeed then
	selfSay('Você não possui level necessario.', cid)
return true
end

for i=1, #itemNeed do
if getPlayerItemCount(cid, itemNeed[i].itemid) < itemNeed[i].quant then
	selfSay('Você não possui os item necessarios para troca.', cid)
return true
end
end

for i=1, #itemNeed do
	doPlayerRemoveItem(cid, itemNeed[i].itemid, itemNeed[i].quant)
end

doPlayerLearnInstantSpell(cid, spellName)
selfSay('Você aprendeu a spell'.. spellName ..'.', cid)


else

selfSay('Você não deseja {trocar}?', cid)

end

end

end

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

Editado Abril 18 por Jhon992

SubwatS
18 de abril de 2012 às 12:57

se tu diz cara, eu devo satisfação a você? acho que não neh cara.

então fica na sua...

ele não pediu level nem nada nem a spell nem nada, ta mal explicado se quer o que? vai lá se não é ninguém não.

flw

leonvenigorL
18 de abril de 2012 às 13:12

vlw cara tu me ajudou bastante... rep+

queria saber se tem como colocar lvl pra fazer a quest... eskeci deste detalhe

jhon992J
18 de abril de 2012 às 13:26

Ta arrumado la emcima jah, para lvl.

leonvenigorL
18 de abril de 2012 às 13:53

ow cara num deu certo tipo ele tira o item e tudo mais qnd vou usar a magia fala q eu nao aprendi, me ajude plx

Editado Abril 18 por leonvenigor

japavrb15J
18 de abril de 2012 às 22:07

Jhon se a magia fosseeditada

seu script tinha q tar + modificado n ?

tenho so 1 duvida

com storage n é mais facil?

 

se eu tive errado me disculpa ;s

jhon992J
19 de abril de 2012 às 08:35

Acho que me confundi, no spellName poem "light healing", pra testar.

 

@XxJapanxX, com storage da pra fazer tbm, mais seria mais complicado colocar storage em todas as spells. Não é tão complicado, mais é mais complicado que colocar para receber a spell com a função doPlayerLearnInstantSpell(cid, spellName) .

leonvenigorL
19 de abril de 2012 às 12:31

resolvido :D

jhon992J
19 de abril de 2012 às 12:46

#Reportado, moverem para Pedidos Atendidos.

VildenV
19 de abril de 2012 às 12:47

Tópico Resolvido.

Movido!