Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Olá, alguém poderia ajudar com isso?

Preciso de um npc de troca que não de sempre o mesmo item, sao 4 itens brinde ao todo, a chance eh variada.

por exemplo:

 

tem todo um dialogo antes

p: hi

npc: oi, esta interessado em forjar um {item}?

p: item

npc: somente guerreiros persistentes vao ganhar meus brindes, voce eh um? {guerreiro}

p: guerreiro

npc: preciso de a, b, c, d itens, voce os tem?

p: yes

npc: aqui esta o seu item1

npc2: aqui esta seu item2

assim por diante

 

os itens requeridos são os mesmos, só o reward é aleatório.

Editado por roach95 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Ta bem "simplão", mas é o que deu pra fazer aqui rapidão .. espero que funcione!

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

-------------------------------------- CONFIG ---------------------------------------------
local rand = math.random(0, 10)
local item1, quantidade1 = 6666, 1 -- item1 e quantidade
local item2, quantidade2 = 6666, 1 -- item2 e quantidade
local item3, quantidade3 = 6666, 1 -- item3 e quantidade
local item4, quantidade4 = 6666, 1 -- item4 e quantidade
local reward1, quantidade5, porcentagem = 6666, 1, 1 -- recompensa 1, quantidade e porcentagem (1 - 10) total 100%, ou seja, 1 = 10% de chance!
local reward2, quantidade6 = 6666, 1 -- recompesa 2 e qunatidade.
--------------------------------------------------------------------------------------------

function teste1(cid, message, keywords, parameters, node)
    if(not npcHandler:isFocused(cid)) then return false end
      
	if getPlayerItemCount(cid, item1) >= quantidade1 and getPlayerItemCount(cid, item2) >= quantidade2 and getPlayerItemCount(cid, item3) >= quantidade3 and  getPlayerItemCount(cid, item4) >= quantidade4 then
		if doPlayerRemoveItem(cid, item1, quantidade1) and doPlayerRemoveItem(cid, item2, quantidade2) and doPlayerRemoveItem(cid, item3, quantidade3) and  doPlayerRemoveItem(cid, item4, quantidade4) then
			if rand <= porcentagem then
				npcHandler:say('Você ganhou a recompensa 1!', cid)
				doPlayerAddItem(cid, reward1, quantidade5)
			else
				npcHandler:say('Você ganhou a recompensa 2!', cid)
				doPlayerAddItem(cid, reward2, quantidade6)
			end
        end
	else
		npcHandler:say('You don\'t have these items!', cid)
    end
end

keywordHandler:addKeyword({'item'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "Somente guerreiros persistentes vao ganhar meus brindes, voce eh um? {guerreiro}"})

local node1 = keywordHandler:addKeyword({'gurreiro'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Para tentar forjar a arma X você precisa ter os items Y, W, Z e V, você tem eles???'})
    node1:addChildKeyword({'sim'}, teste1, {npcHandler = npcHandler, onlyFocus = true, reset = true})
    node1:addChildKeyword({'nao'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Volte Sempre.', reset = true})

npcHandler:addModule(FocusModule:new())
Link para o post
Compartilhar em outros sites

funcionou perfeitamente o script, so falta alguns ajustes, ele ta entregando so a recompensa 2, eu troquei 100x os itens e deu as 100x a mesma coisa..

e queria colocar 4 itens de reward, nao 2 so, tem como?

se tiver como editar a porcentagem tambem eh melhor

tipo item1 = 40%  item2 = 30% item3 20% e item 4 10%

Editado por roach95 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Muda aqui:

local reward1, quantidade5, porcentagem = 6666, 1, 1 -- recompensa 1, quantidade e porcentagem (1 - 10) total 100%, ou seja, 1 = 10% de chance!
local reward2, quantidade6 = 6666, 1 -- recompesa 2 e qunatidade.

Para:

local reward1, quantidade5 = 6666, 1 -- recompensa 1 e quantidade.
local reward2, quantidade6 = 6666, 1 -- recompensa 2 e quantidade.
local reward3, quantidade7 = 6666, 1 -- recompensa 1 e quantidade.
local reward4, quantidade8 = 6666, 1 -- recompensa 2 e quantidade.

Depois mude essa parte:

			if rand <= porcentagem then
				npcHandler:say('Você ganhou a recompensa 1!', cid)
				doPlayerAddItem(cid, reward1, quantidade5)
			else
				npcHandler:say('Você ganhou a recompensa 2!', cid)
				doPlayerAddItem(cid, reward2, quantidade6)
			end

Para:
 

			if rand <= 4 then
				npcHandler:say('Você ganhou a recompensa 1!', cid)
				doPlayerAddItem(cid, reward1, quantidade5)
			elseif rand >= 5 and rand <= 7 then
				npcHandler:say('Você ganhou a recompensa 1!', cid)
				doPlayerAddItem(cid, reward2, quantidade6)
			elseif rand >= 8 and rand <= 9 then
				npcHandler:say('Você ganhou a recompensa 1!', cid)
				doPlayerAddItem(cid, reward3, quantidade7)	
			elseif rand == 10 then
				npcHandler:say('Você ganhou a recompensa 1!', cid)
				doPlayerAddItem(cid, reward4, quantidade8)					
			else
				return false
			end

Espero que funcione, abraços!

Link para o post
Compartilhar em outros sites

consegui ajeitar os rewards com essa sua explicação, obrigado, mas só falta essa coisa de ficar dando o mesmo reward somente

sempre cai no reward2, não tem como colocar rand fixo para cada item? tipo rand de 1 a 4 pro reward 1, por ai vai.. que daí o npc ia randomizar o cálculo e já taria fixo ^^ , eu tentei fazer aqui mas minha incompetência é extrema..

Editado por roach95 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

não to entendo muito o sistema de porcentagem, não ta dando certo, sempre o mesmo item..

troquei cerca de 200 vezes e deu o mesmo reward.. se tu puder fazer, os ids tão ai: (quantidade 1 para todos)

item1 2150

item2 2146

item3 2147

item4 2149

reward1 2544

reward2 2545

reward3 2546

reward4 7364

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo