BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

[Pedido] Script NPC y Door

[Pedido] Script NPC y Door

#1 [Pedido] Script NPC y Door el Dom Feb 07, 2016 11:21 am

Acan


Miembro
Hola Amigos les vengo a pedir 2scripts uno es 1Npc y otro para una puerta.
NPC. quisiera que el npc llamado "Portero" al hablar con el te cobre 5 o 10 billetes, para abrir una puerta X y al player cruzarla automáticamente se cierre. esto con el fin de que cada jugador tenga que pagar para poder cruzar...
Espero su ayuda... doy +Rep

#2 Re: [Pedido] Script NPC y Door el Dom Feb 07, 2016 4:36 pm

[VIP] rafael


Miembro
tengo unas dudas con cual de las siguientes formas quieres el pedido:


Spoiler:
Que cuando te cobre el npc dicho item puedas pasar todas las veces que quieras y solo te cobre 1 vez


Spoiler:
Que cuando el npc te cobre al pasar dicha door ( darle click ) cuando intente volver tendra que pagar dicha multa de nuevo ?

Pd: da info de vercion de server y consola Sad

#3 Re: [Pedido] Script NPC y Door el Lun Feb 08, 2016 8:08 am

Acan


Miembro
[Tienes que estar registrado y conectado para ver este vínculo] Oye gracias por tu respuesta seria la opción 2. que cada vez que quieras ir a ese lugar tengas que pagar. (pero la door podrá abrirse automáticamente y al cruzar se cierre sola).

un ejemplo haber si me entiendes de cual es mi idea. si no es de mucha dificulta.
ejemplo:

God [112]: hi
Portero: Hello God! You must pay for entry to "hot"!
God [112]: hot
Portero: Thanks you for comming! NEXT!

ejemplo 2:

bueno mi idea seria algo asi al player decir "hot"!
la door: automáticamente se abriera
player: al cruzar esta door: se cierre automaticamente sola.

y si los player quieren cruzar de nuevo tendrán que pagar cada vez que deseen ir a esa zona.

Intenta ayudarme con ese scripts por favor o si sabes de alguien que lo pueda hacer acelo llegar.

#4 Re: [Pedido] Script NPC y Door el Miér Feb 10, 2016 7:58 pm

[VIP] rafael


Miembro
No te pude aser lo de que al decir HOT te dejara pasar, pero creo que de esta forma te funcionara igual mente el scrip...

funciona de la siguiente forma
Spoiler:
El Npc Portero al decirle Multa te cobrara X item + cantidad de item y te otorgara una storage con la cual al pisar un tile se abra la door automatica mente y al pasarla se cierre

Npc
Código:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Portero" script="data/npc/scripts/Door.lua" walkinterval="2000" floorchange="0">
 <health now="100" max="100"/>
 <look type="133" head="19" body="66" legs="75" feet="95" addons="1"/>
 <parameters>
 <parameter key="message_greet" value="Hola |PLAYERNAME|.Yo soy el protector de la puerta si deceas pasar tienes que pagar una pequeña {Multa}."/>
 </parameters>
</npc>

Scrip del npc
Código:
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)
 local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
 --[[
 REMEMBER TO SET YOUR STORAGE AS YOURSTORAGE!
 ]]--
 local storage = 21235
 local itemid = 2674
 if(msgcontains(msg, 'Ticket') or msgcontains(msg, 'Multa')) then
 if(getPlayerStorageValue(cid, storage) < 1) then
 npcHandler:say("Necesito 5 manzanas para dejarte pasar.", cid)
 setPlayerStorageValue(cid, storage, 1)
 doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Has escuchado las condiciones del Portero para pasar.")
 elseif(getPlayerStorageValue(cid, storage) == 1) then
 npcHandler:say("Tienes las 5 manzanas para dejarte pasar ?", cid)
 talkState[talkUser] = 1
 elseif(getPlayerStorageValue(cid, storage) == 2) then
 npcHandler:say("Ya encontraste los items que te pedi?.", cid)
 end
 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
 if doPlayerRemoveItem(cid, itemid, 5) == TRUE then
 npcHandler:say("Gracias por tu colaboracion, adelante puedes pasar.", cid)
 doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "El Portero te a consedido pasar la puerta temporalmente.")
 doPlayerAddExp(cid, 100)
 local storage = 21236
 setPlayerStorageValue(cid, storage, 1)
 talkState[talkUser] = 0
 else
 npcHandler:say("Tu no tienes lo acordado.", cid)
 talkState[talkUser] = 0
 end
 elseif(msgcontains(msg, 'no') and talkState[talkUser] > 0) then
 npcHandler:say("Ok. Cuando quieras pasar sabes donde encontrarme", cid)
 talkState[talkUser] = 0
 end
 return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())


Movement.xml (Piso que te permitira abrir la door)
Código:
 <movevent type="StepIn" uniqueid="7005" event="script" value="new/Piso Door.lua" />

Scrip Piso

Código:
function onStepIn(cid, item, position, fromPosition, storage)
  local storage = 21236

  flagpos = {x=1009, y=1009, z=7, stackpos=1}
    if isPlayer(cid) then
        if getPlayerStorageValue(cid, storage) == 1 then
            doPlayerSetStorageValue(cid, storage, - 1)
            doTransformItem(getThingfromPos(flagpos).uid, 1230)
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Bienvenido!")

         else
           doTeleportThing(cid, fromPosition, true)
           doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Si no pagaste, no podras pasar.")
        end
    end

  return true
end

GIF
Spoiler:
[Tienes que estar registrado y conectado para ver esa imagen]

Partes a editar

Spoiler:

Scrip en el npc

(local itemid = 2674 ) Id del item que removera
(doPlayerRemoveItem(cid, itemid, 5) ) cantidad del item que removera para el trato

Piso Door
(flagpos = {x=1009, y=1009, z=7, stackpos=1} ) posicion donde se encontrara la puerta que se abra
(doTransformItem(getThingfromPos(flagpos).uid, 1230) ) ID del item que se transformara en X posicion al ser pisado el tile

Pd: perdon por la espera

Creditos 10%
@ Belerofonte

me ayudo en la parte del movement de la door...

Testeado en OTX 2

#5 Re: [Pedido] Script NPC y Door el Miér Feb 10, 2016 8:20 pm

God Assassin


Miembro
:0 que script tan chingon sii chingon Sad felicidades rafa haz elevado las kks en tibia xD

#6 Re: [Pedido] Script NPC y Door el Vie Feb 12, 2016 11:16 am

Acan


Miembro
cerra post buen trabajo [Tienes que estar registrado y conectado para ver este vínculo] 100% test y funciona.

#7 Re: [Pedido] Script NPC y Door Hoy a las 8:47 pm

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.

 

¿Quién está en línea?

En total hay 0 usuarios en línea: 0 Registrados, 0 Ocultos y 0 Invitado

Usuarios navegando en este foro: Ninguno

Forum Statistics

Nuestros miembros han públicado un total de posts en temas.
Actualmente hay miembros registrados.
Démosle la bienvenida al miembro más reciente,
La mayor cantidad de usuarios en línea ha sido de .