Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Fala ai galerinha do Tk, estou trazendo hoje meu 1 script, não posso dizer que é 100% meu pois tive ajuda da lista de funções do Matheus e tirei a ideia do RadBr, então vou colocar 1 credito a eles.
O script é de uma quest unica que para acessa-la você deve clicar em uma placa no caso, você pode mudar para outro item se quiser! 
 
Funciona da seguinte maneira:
O player clica na placa, se ele nunca tiver feito a quest e tiver o level necessario para faze-la ele é teleportado para posição inicial da quest, porém se ele já fez a quest ou não tem o level necessario para fazer ele é teleportado para o templo ou para a posição que você desejar !
 
Para adicionar você deve ir até data/actions/scripts, copiar e colar um arquivo .lua e renomear ele para questunica.lua, depois apague tudo dentro do arquivo e cole isso:

 

function onUse(cid, item, fromPos, itemEx, toPos)
pos = {x = 160, y = 54, z = 7} -- Local da quest caso nunca tenha feito.
pos2 = {x = 160, y = 56, z = 7} -- Local para teleportar, caso já tenha feito.


local storage = 13909 -- Storage da placa, se for mudar não se esqueça de mudar também no script questunicabau.lua !!
local plevel = 16 -- Level minimo para fazer a quest.


if getPlayerStorageValue(cid,storage) == -1 then
if getPlayerLevel(cid) >= plevel then
doTeleportThing(cid,pos)
doSendMagicEffect(toPos,2) -- Efeito ao teleportar para a quest, para ver mais efeitos diga /z e o numero do efeito, se quiser mudar é só alterar no valor 2
   doSendMagicEffect(fromPos,2)
   else
doPlayerSendTextMessage(cid,25,"Voce precisa ser level "..plevel.." para fazer essa quest.")
end
   else
doTeleportThing(cid,pos2)
doPlayerSendCancel(cid, "Voce ja fez essa quest!")
doSendMagicEffect(pos2,29) -- Efeito ao teleportar para fora da quest, para ver mais efeitos diga /z e o numero do efeito, se quiser mudar é só alterar no valor 2
doSendMagicEffect(fromPos,2)
   
   return 1
   end
 end
 

 
Agora vá em data/actions e abra o actions.xml, depois adicione essa linha:
 

<action uniqueid="13909" script="questunica.lua"/>

Então terminamos de adicionar a uniqueid que da acesso a quest, agora vamos adicionar o baú da quest.
Vá até data/actions/scripts, copiae e cole um arquivo .lua e renomeie ele para questunicabau.lua, depois apague tudo dentro do arquivo e cole isso:

function onUse(cid, item, frompos, item2, topos)

storage = 13910 -- Storage do baú da quest.
premio = 2393 -- ID do premio da quest.
storageplaca = 13909 -- Storage da placa para entrar na quest. Não se esqueça de mudar nos 2 scripts, caso queira mudar.
nome = "Demon Helmet"


if item.uid == storage then
if getPlayerStorageValue(cid,storage) == -1 then
doPlayerSendTextMessage(cid,25,"You have found a "..nome..".")
doPlayerAddItem(cid,2493,1)
setPlayerStorageValue(cid,storage,1)
setPlayerStorageValue(cid,storageplaca,1)
else
doPlayerSendTextMessage(cid,25,"The is empty.")
return true
end
end
end

Agora vá em data/actions e abra o actions.xml, depois adicione essa linha:
 

<action uniqueid="13910" script="questunicabau.lua"/>

 
Agora para montar a quest no seu OT, você coloca o uniqueid 13909 na placa ou em outro objeto para teleportar o player até a quest e o uniqueid 13910 no baú no final da quest, assim quando ele clicar no baú não poderá fazer novamente a quest.
 
Bom é isso, espero que gostem do script, se tiver algo errado, algo faltando ou até mesmo algo que facilite o uso de outros membros, é só me dizer que eu tento arrumar.

 

 

Creditos:

RadBr 5% - Pela ideia da quest!

Matheus 10% - Pela lista de funções, sem ela não teria o script oakpsk.

Link para o post
Compartilhar em outros sites

Simples mas pode ajudar alguns. Obrigado por compartilhar.

Peço que, se possível, leia sobre endentação .. melhora muito a leitura do código, igualmente o espaço depois de vírgulas.

Este tópico foi movido: Para: "OTServScriptingActions e TalkActions"

Dê uma lida nessa código que eu refiz do seu script ... quem sabe pode te ajudar aprender mais.

local table = {
	positionTrue = {x = 160, y = 54, z = 7}, -- Local da quest caso nunca tenha feito.
	positionFalse = {x = 160, y = 56, z = 7}, -- Local para teleportar, caso já tenha feito.
	storageQuest = 13909, -- Storage da quest.
	levelMin = 16,
	rewardQuest = {id_item = 2493, quantidade = 1, nome = "Demon Helmet"}
}

function onUse(cid, item, fromPos, itemEx, toPos)

	if item.uid == 13909 then
		if getPlayerStorageValue(cid, table.storageQuest) < 1 then
			if getPlayerLevel(cid) >= table.levelMin then
				doTeleportThing(cid, table.positionTrue)
				doSendMagicEffect(toPos, 2)
			else
				doTeleportThing(cid, table.positionFalse)
				return doPlayerSendCancel(cid, "Voce precisa ser level superior a ".. table.levelMin ..".")
			end
		else
			doTeleportThing(cid, table.positionFalse)
			return doPlayerSendCancel(cid, "Voce ja fez essa quest!")
		end
	
	elseif item.uid == 13910 then
		if getPlayerStorageValue(cid, table.storageQuest) < 1 then
			doPlayerSendTextMessage(cid, 25, "You have found a ".. table.rewardQuest.nome ..".")
			doPlayerAddItem(cid, table.rewardQuest.id_item, table.rewardQuest.quantidade)
			setPlayerStorageValue(cid, table.storageQuest, 1)
		else
			doTeleportThing(cid, table.positionFalse)
			return doPlayerSendCancel(cid, "Voce ja fez essa quest!")
		end
		
	end
	
	return true
end
<action uniqueid="13909" script="questFirst.lua"/>
<action uniqueid="13910" script="questFirst.lua"/>
Link para o post
Compartilhar em outros sites

 

Simples mas pode ajudar alguns. Obrigado por compartilhar.

Peço que, se possível, leia sobre endentação .. melhora muito a leitura do código, igualmente o espaço depois de vírgulas.

Este tópico foi movido: Para: "OTServScriptingActions e TalkActions"

Dê uma lida nessa código que eu refiz do seu script ... quem sabe pode te ajudar aprender mais.

local table = {
	positionTrue = {x = 160, y = 54, z = 7}, -- Local da quest caso nunca tenha feito.
	positionFalse = {x = 160, y = 56, z = 7}, -- Local para teleportar, caso já tenha feito.
	storageQuest = 13909, -- Storage da quest.
	levelMin = 16,
	rewardQuest = {id_item = 2493, quantidade = 1, nome = "Demon Helmet"}
}

function onUse(cid, item, fromPos, itemEx, toPos)

	if item.uid == 13909 then
		if getPlayerStorageValue(cid, table.storageQuest) < 1 then
			if getPlayerLevel(cid) >= table.levelMin then
				doTeleportThing(cid, table.positionTrue)
				doSendMagicEffect(toPos, 2)
			else
				doTeleportThing(cid, table.positionFalse)
				return doPlayerSendCancel(cid, "Voce precisa ser level superior a ".. table.levelMin ..".")
			end
		else
			doTeleportThing(cid, table.positionFalse)
			return doPlayerSendCancel(cid, "Voce ja fez essa quest!")
		end
	
	elseif item.uid == 13910 then
		if getPlayerStorageValue(cid, table.storageQuest) < 1 then
			doPlayerSendTextMessage(cid, 25, "You have found a ".. table.rewardQuest.nome ..".")
			doPlayerAddItem(cid, table.rewardQuest.id_item, table.rewardQuest.quantidade)
			setPlayerStorageValue(cid, table.storageQuest, 1)
		else
			doTeleportThing(cid, table.positionFalse)
			return doPlayerSendCancel(cid, "Voce ja fez essa quest!")
		end
		
	end
	
	return true
end
<action uniqueid="13909" script="questFirst.lua"/>
<action uniqueid="13910" script="questFirst.lua"/>

Nossa, fez 1 diferença enorme, ficou BEM mais facil de entender e bem mais organizado, valeu pela ajuda :)

Link para o post
Compartilhar em outros sites
  • 5 months later...

Eu adicionei esse Script no meu ot do jeito que o Administrador coloco ali no posto dele vejam se esta certo

 

 

local table = {

positionTrue = {x = 1070, y = 2115, z = 7}
positionFalse = {x = 3972, y = 1447, z = 6}
storageQuest = 13909
levelMin = 20
rewardQuest = {id_item = 2493, quantidade = 1, nome = "Demon Helmet"}
}
 
function onUse(cid, item, fromPos, itemEx, toPos)
 
if item.uid == 13909 then
if getPlayerStorageValue(cid, table.storageQuest) < 1 then
if getPlayerLevel(cid) >= table.levelMin then
doTeleportThing(cid, table.positionTrue)
doSendMagicEffect(toPos, 2)
else
doTeleportThing(cid, table.positionFalse)
return doPlayerSendCancel(cid, "Voce precisa ser level superior a ".. table.levelMin ..".")
end
else
doTeleportThing(cid, table.positionFalse)
return doPlayerSendCancel(cid, "Voce ja fez essa quest!")
end
 
elseif item.uid == 13910 then
if getPlayerStorageValue(cid, table.storageQuest) < 1 then
doPlayerSendTextMessage(cid, 25, "You have found a ".. table.rewardQuest.nome ..".")
doPlayerAddItem(cid, table.rewardQuest.id_item, table.rewardQuest.quantidade)
setPlayerStorageValue(cid, table.storageQuest, 1)
else
doTeleportThing(cid, table.positionFalse)
return doPlayerSendCancel(cid, "Voce ja fez essa quest!")
end
 
end
 
return true
end

 

 

eu acho que tem alguma coisa errada ai por que quando eu coloco o server online da um erro

 

[Error - LuaScriptInterface::loadFile] data/actions/scripts/Quest Unica.lua:3: '

}' expected (to close '{' at line 1) near 'positionFalse'
[Warning - Event::loadScript] Cannot load script (data/actions/scripts/Quest Uni
ca.lua)
data/actions/scripts/Quest Unica.lua:3: '}' expected (to close '{' at line 1) ne
ar 'positionFalse'
[Error - LuaScriptInterface::loadFile] data/actions/scripts/Quest Unica.lua:3: '
}' expected (to close '{' at line 1) near 'positionFalse'
[Warning - Event::loadScript] Cannot load script (data/actions/scripts/Quest Uni
ca.lua)
data/actions/scripts/Quest Unica.lua:3: '}' expected (to close '{' at line 1) ne
ar 'positionFalse'

 

alguém pode me ajudar pf

Link para o post
Compartilhar em outros sites

Logicamente não vai funcionar, você esqueceu das vírgulas após cada variável da tabela.

local table = {
    positionTrue = {x = 1070, y = 2115, z = 7},
    positionFalse = {x = 3972, y = 1447, z = 6},
    storageQuest = 13909,
    levelMin = 20,
    rewardQuest = {id_item = 2493, quantidade = 1, nome = "Demon Helmet"}
}

PS: No último não é obrigatório.

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

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