Ir para conteúdo
  • Cadastre-se

(Resolvido)[PEDIDO] Quest de livro escrito


Ir para solução Resolvido por MaTTch,

Posts Recomendados

Tava querendo criar uns 30 livros espalhados com misterio pelo mapa, tu abre a quest vem um livro escrito uma parada

 

Ah e outra coisa vi um sistema de multilingua no fórum que funciona por storage 8971

sem valor (-1 ou 0 n sei como é)= ingles

1= ingles

2= portugues

Link para o post
Compartilhar em outros sites

totalmente confuso, explica melhor isso

Toda terça-feira um tópico novo:

Descanso para curar mana (Spell): https://tibiaking.com/forums/topic/94615-spell-descanso-para-curar-mana/

Peça sua spell (Suporte):                https://tibiaking.com/forums/topic/84162-peça-sua-spell/                        

Chuva de flechas (Spell):                https://tibiaking.com/forums/topic/72232-chuva-de-flechas-spell/

Doom (Spell):                                https://tibiaking.com/forums/topic/51622-doom-spell/

Utilização do VS Code (Infra)       https://tibiaking.com/forums/topic/94463-utilizando-o-visual-studio-code-notepad-nunca-mais/

SD com Combo (Spell):                 https://tibiaking.com/forums/topic/94520-sd-modificada/

Alteração attack speed (C++):        https://tibiaking.com/forums/topic/94714-c-attack-speed-spells-itens-e-onde-você-quiser/  

Bônus de Speed (NPC)                  https://tibiaking.com/forums/topic/94809-npc-concede-bônus-aos-players/
 

Link para o post
Compartilhar em outros sites

Este sistema de multilingua que você se refere é o que fiz neste tópico?

--Comando que muda linguagem.
local lang = {
    ["portuguese"] = 1,
    ["english"] = 2,
    ["spanish"] = 3,
}
local storage = 8971
function onSay(cid, words, param)
    if not param or param == "" then
        return doPlayerSendCancel(cid, "Command: command portuguese/english/spanish")
    elseif not lang[param:lower()] then
        return doPlayerSendCancel(cid, "This language isn't available.")
    elseif getPlayerStorageValue(cid, storage) == lang[param:lower()] then
        return doPlayerSendCancel(cid, "Your game is already on this language.")
    end
    doPlayerSendTextMessage(cid, 27, "Game language changed to "..param..".")
    setPlayerStorageValue(cid, storage, lang[param:lower()])
    return true
end
 
--Exemplo de talkaction que manda um popup com linguagem dependendo da configurada pelo comando acima.
local messages = {
    [1] = "Oi, como vai?",
    [2] = "Hello, how are you?",
    [3] = "Hola, cómo estás?",
}
local default = "Hello, how are you?"    --Mensagem padrão.
function onSay(cid, words)
    return doPlayerPopupFYI(cid, messages[getPlayerStorageValue(cid, 8971)] or default)
end
Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

 

Este sistema de multilingua que você se refere é o que fiz neste tópico?

--Comando que muda linguagem.
local lang = {
    ["portuguese"] = 1,
    ["english"] = 2,
    ["spanish"] = 3,
}
local storage = 8971
function onSay(cid, words, param)
    if not param or param == "" then
        return doPlayerSendCancel(cid, "Command: command portuguese/english/spanish")
    elseif not lang[param:lower()] then
        return doPlayerSendCancel(cid, "This language isn't available.")
    elseif getPlayerStorageValue(cid, storage) == lang[param:lower()] then
        return doPlayerSendCancel(cid, "Your game is already on this language.")
    end
    doPlayerSendTextMessage(cid, 27, "Game language changed to "..param..".")
    setPlayerStorageValue(cid, storage, lang[param:lower()])
    return true
end
 
--Exemplo de talkaction que manda um popup com linguagem dependendo da configurada pelo comando acima.
local messages = {
    [1] = "Oi, como vai?",
    [2] = "Hello, how are you?",
    [3] = "Hola, cómo estás?",
}
local default = "Hello, how are you?"    --Mensagem padrão.
function onSay(cid, words)
    local msg = messages[getPlayerStorageValue(cid, 8971)]
    if not msg then
        msg = default
    end
    doPlayerPopupFYI(cid, msg)
    return true
end

 

É esse aí mesmo! kkkk

Link para o post
Compartilhar em outros sites
local config = {
--[uid] = {bookId, "texto"}
	[55560] = {6533, "Texto1"},
	[55561] = {6533, "Texto2"}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(config[item.uid] ~= nil) then
		if(getPlayerStorageValue(cid, item.uid) == -1) then
			local book, text = doPlayerAddItem(cid, config[item.uid][1], 1), config[item.uid][2]
			doSetItemText(book, text)
			doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You have found a "..getItemNameById(config[item.uid][1])..".")
			setPlayerStorageValue(cid, item.uid, 1)
		else
			doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "It's empty.")
		end
	end
	return true
end

Editado por MaTTch (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
local config = {
--[uid] = {bookId, "texto"}
	[55560] = {6533, "Texto1"},
	[55561] = {6533, "Texto2"}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(config[item.uid] ~= nil) then
		if(getPlayerStorageValue(cid, item.uid) == -1) then
			local book, text = doPlayerAddItem(cid, config[item.uid][1], 1), config[item.uid][2]
			doSetItemText(book, text)
			doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You have found a "..getItemNameById(config[item.uid][1])..".")
			setPlayerStorageValue(cid, item.uid, 1)
		else
			doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "It's empty.")
		end
	end
	return true
end

 

Pode me explicar esse script? Onde é o livro? As linguagens, sei lá, como ta? Pra eu configurar vários?

Link para o post
Compartilhar em outros sites
local config = {
--[uid] = {bookId, "texto"}
	[55560] = {6533, "Texto1"},
	[55561] = {6533, "Texto2"}
}

Dentro do [ ] você coloca o uniqueid do baú, o 6533 é o ID do livro e o "Texto1" é o que vai ser escrito dentro, então se tu clicar no baú que tem o uid 55560, vai ganhar o item de id 6533 (livro) que dentro vai estar escrito "Texto1".

 

em actions.xml você coloca:

<action uniqueid="55560-55561" event="script" value="NOME_DO_ARQUIVO.lua"/>

 perceba que os números  do uniqueid vai do 55560 ao 55561 que é o mesmo que esta no script, você pode muda-los.

Link para o post
Compartilhar em outros sites
  • Solução
local config = {
	langStorage = 8971,
	[55560] = {6533, eng = "Text1", pt = "Texto1"},
	[55561] = {6533, eng = "Text2", pt = "Texto2"}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(config[item.uid] ~= nil) then
		if(getPlayerStorageValue(cid, item.uid) == -1) then
			local book, text = doPlayerAddItem(cid, config[item.uid][1], 1), getPlayerStorageValue(cid, config.langStorage) >= 2 and config[item.uid].pt or config[item.uid].eng
			doSetItemText(book, text)
			doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You have found a "..getItemNameById(config[item.uid][1])..".")
			setPlayerStorageValue(cid, item.uid, 1)
		else
			doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "It's empty.")
		end
	end
	return true
end
Link para o post
Compartilhar em outros sites

    [55560] = {6533, "Texto1"},
    [55561] = {6533, "Texto2"}

 

E esse 55560, 61 é pra eu criar varias quests de livros né?

6533 é o id dos livros o item ,certo?

Link para o post
Compartilhar em outros sites

Quem tem o storage 8971 maior ou igual a 2, ele respondera em português e quem tem menos de 2, ele respondera em inglês.

E como os players recebem essas storages?

Link para o post
Compartilhar em outros sites

    [55560] = {6533, "Texto1"},

    [55561] = {6533, "Texto2"}

 

E esse 55560, 61 é pra eu criar varias quests de livros né?

6533 é o id dos livros o item ,certo?

Sim, mas use o que já esta em multilinguagem logo acima.

 

 

E como os players recebem essas storages?

Ai é você que decide, por NPC, Talkactions, Movements e etc... tem varias formas.

Link para o post
Compartilhar em outros sites
  • 3 years later...

@MaTTch o meu livro ele é meio que uma informação para os eventos do meu servidor, tipo vai ter um livro com o id 8977 na sala de eventos e um player vai chegar la e vai da use nele e após ele der use, vai abrir o livro com o horário, dia e nome do evento tem algum script para esse tipo de livro?

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