Ir para conteúdo

Featured Replies

Postado

TFS 0.4

 

1- Queria um script de um npc que seria tipo um barco, mas ao inves de entregar gold, você pagaria um item pra ele.
ou

2- Queria um script de piso q você pisa no sqm e se tiver com 1 item na bp você é teleportado para um lugar (Tipo o livro da poi) o item deve sumir

Editado por Orientalz (veja o histórico de edições)

  • Respostas 8
  • Visualizações 1.2k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • 2- Da para fazer da seguinte forma e que eu consegui fazer foi:  O player passa pelo tile perde o item, porém não é teleportado, da para você colocar um portal logo na frente do tile para o playe

Postado

Em (data/npc/scripts) crie teleport.lua

dentro coloque

Spoiler





local tab = {
	pos = {x = 123, y = 456, z = 7}, -- posição x, y, z do local a teleportar o player
	item = {5432, 1}, -- {itemID, count}
	price = 0
}

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 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, 'teleport')) then
		talkState[talkUser] = 1
		selfSay('Are you sure?', cid)
		selfSay('Remember..you need '..tab.item[2]..' '..getItemNameById(tab.item[1])..' and '..tab.price..' crystal coins to be teleported.', cid)
	elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
		if (getPlayerItemCount(cid, tab.item[1]) >= tab.item[2] and doPlayerRemoveMoney(cid, tab.price * 10000)) then 
			doTeleportThing(cid, tab.pos)
		 	doPlayerRemoveItem(cid, tab.item[1], tab.item[2])
            doPlayerRemoveMoney(cid, tab.price * 10000)	
			doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
			selfSay('Have a good trip.', cid)
		else
			talkState[talkUser] = 0
			selfSay('I can not teleport you. You do not have the required items.', cid)
		end
	elseif (msgcontains(msg, 'no') and talkState[talkUser] == 1) then
		talkState[talkUser] = 0
		selfSay('Okay, maybe another time.', cid)
	end
	
	return true
end

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

 

Em (data/npc) crie teleport.xml

dentro coloque

Spoiler








<npc name="Teleporter Man" script="data/npc/scripts/teleport.lua" access="5" lookdir="1">
<health now="1000" max="1000"/>
<look type="123" head="45" body="67" legs="79" feet="10" addons="1"/>
	<parameters>
		<parameter key="message_greet" value="Hello |PLAYERNAME|. I can {teleport} you to an area." />
	</parameters>
</npc>

 

 

 

Ajudei?? Rep+ ?

Editado por Thony D. Serv (veja o histórico de edições)

Postado
  • Autor
33 minutos atrás, Thony D. Serv disse:

Em (data/npc/scripts) crie teleport.lua

dentro coloque

  Mostrar conteúdo oculto




local tab = {
	pos = {x = 123, y = 456, z = 7}, -- posição x, y, z do local a teleportar o player
	item = {5432, 1}, -- {itemID, count}
	price = 0
}

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 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, 'teleport')) then
		talkState[talkUser] = 1
		selfSay('Are you sure?', cid)
		selfSay('Remember..you need '..tab.item[2]..' '..getItemNameById(tab.item[1])..' and '..tab.price..' crystal coins to be teleported.', cid)
	elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
		if (getPlayerItemCount(cid, tab.item[1]) >= tab.item[2] and doPlayerRemoveMoney(cid, tab.price * 10000)) then 
			doTeleportThing(cid, tab.pos)
		 	doPlayerRemoveItem(cid, tab.item[1], tab.item[2])
            doPlayerRemoveMoney(cid, tab.price * 10000)	
			doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
			selfSay('Have a good trip.', cid)
		else
			talkState[talkUser] = 0
			selfSay('I can not teleport you. You do not have the required items.', cid)
		end
	elseif (msgcontains(msg, 'no') and talkState[talkUser] == 1) then
		talkState[talkUser] = 0
		selfSay('Okay, maybe another time.', cid)
	end
	
	return true
end

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

 

Em (data/npc) crie teleport.xml

dentro coloque

  Mostrar conteúdo oculto







<npc name="Teleporter Man" script="data/npc/scripts/teleport.lua" access="5" lookdir="1">
<health now="1000" max="1000"/>
<look type="123" head="45" body="67" legs="79" feet="10" addons="1"/>
	<parameters>
		<parameter key="message_greet" value="Hello |PLAYERNAME|. I can {teleport} you to an area." />
	</parameters>
</npc>

 

 

 

Ajudei?? Rep+ ?

Como remove a parte do price man?

Postado

2- Da para fazer da seguinte forma e que eu consegui fazer foi:

 O player passa pelo tile perde o item, porém não é teleportado, da para você colocar um portal logo na frente do tile para o player ser teleportado para a pos desejada.

caso queira utilizar, tá ai:

Em movements/script/crie um arquivo.lua e coloque:

 

Spoiler

function onStepIn(cid, item, position, fromPosition)

    local id,amount = 2419,1 -- id, quantidade para poder passar pelo tile
    
    if not doPlayerRemoveItem(cid, id, amount) then
    
        doTeleportThing(cid, fromPosition, true)
        
        doPlayerSendTextMessage(cid, 25, "Você só pode passar se tiver " .. amount .. " " .. getItemNameById(id) .. ".")
        
        doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
        
        return true
        
    end
    
    return true
    
end

Em movements.xml adiciona:


<movevent type="StepIn" actionid="25364" event="script" value="nomedoarquivo.lua"/>

 

Configurando:

actionid="25364" -- Action que você coloca na tile no RME.

Editado por Nysman (veja o histórico de edições)

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo