- Mensajes
- 2.243
- Puntuación de reacción
- 24.527
- Puntos
- 707
- Awards
- 38
Sistema de Cave como Diablo & Neverwinter.
Script para TFS 1.X
Nos iremos en data/global.lua
Agregaremos esta Línea:
Iremos en data/ crearemos un archivo llamado cave_system.lua
Configuraremos cada Línea, a la derecha tenéis la explicación:
En data/creaturescripts/scripts crearemos un archivo llamado cave_window.lua
En data/creaturescripts/scripts/login.lua agregaremos el evento:
En data/creaturescripts/creaturescripts.xml añadiremos:
En data/movements/scripts/ crearemos un archivo cave_teleporter.lua:
En data/movements/scripts/ crearemos un archivo llamado cave_places.lua:
En data/movements/movements.xml añadiremos:
Como indicado el 17868 es la ID del Teleport, y debajo las Posiciones que descubrirán los players, ir incrementando en los números.
Creditos Fresh.
Script para TFS 1.X
Nos iremos en data/global.lua
Agregaremos esta Línea:
dofile('data/cave_system.lua')
Iremos en data/ crearemos un archivo llamado cave_system.lua
Configuraremos cada Línea, a la derecha tenéis la explicación:
-- Config
caves =
{
[1] =
{
name = "Example 1", -- Name
storage = 4402, -- Storage
pos = {x = 128, y = 380, z = 8}, -- Position to be teleported
discoverPos = {x = 128, y = 380, z = 8} -- Position where you discover the cave (Must be UNIQUEID here too)
},
[2] =
{
name = "Example 2",
storage = 4403,
pos = {x = 246, y = 577, z = 12},
discoverPos = {x = 246, y = 577, z = 12}
},
[3] =
{
name = "Example 3",
storage = 4404,
pos = {x = 0, y = 0, z= 0},
discoverPos = {x = 0, y = 0, z= 0}
}
}
-- Functions
cavesFnc = {}
function cavesFnc.window(cid)
caveWindow = ModalWindow(4401, "Cave Teleporter", "Select destination:")
if(caveWindow:getId() == 4401)then
for i = 1, 2 do
if(i == 1)then
caveWindow:addButton(i, "Teleport")
caveWindow:setDefaultEnterButton(i)
else
caveWindow:addButton(i, "Cancel")
caveWindow:setDefaultEscapeButton(i)
end
end
for i = 1, #caves do
if(getPlayerStorageValue(cid, caves.storage) == 1)then
caveWindow:addChoice(i, caves.name)
end
end
end
caveWindow:sendToPlayer(cid)
return true
end
En data/creaturescripts/scripts crearemos un archivo llamado cave_window.lua
function onModalWindow(cid, modalWindowId, buttonId, choiceId)
local player = Player(cid)
if(modalWindowId ~= 4401)then
return false
end
if(buttonId == 1)then
if(getPlayerStorageValue(cid, caves[choiceId].storage) == 1)then
player:teleportTo(caves[choiceId].pos)
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have been teleported to the "..caves[choiceId].name..".")
doSendMagicEffect(caves[choiceId].pos, 11)
else
cavesFnc.window(cid)
end
elseif(buttonId == 255)then
cavesFnc.window(cid)
end
return true
end
En data/creaturescripts/scripts/login.lua agregaremos el evento:
player:registerEvent("cave_window")
En data/creaturescripts/creaturescripts.xml añadiremos:
<event type="modalwindow" name="cave_window" script="cave_window.lua"/>
En data/movements/scripts/ crearemos un archivo cave_teleporter.lua:
function onStepIn(cid, item, position, fromPosition)
local player = Player(cid)
if not(player)then
return true
end
for i = 1, #caves do
if(player:getStorageValue(caves.storage) == 1)then
return cavesFnc.window(cid)
end
end
return true
end
En data/movements/scripts/ crearemos un archivo llamado cave_places.lua:
function onStepIn(creature, item, position, fromPosition)
local player = creature:getPlayer()
if not(player)then
return true
end
for i = 1, #caves do
if(player:getStorageValue(caves.storage) < 1)then
if(caves.discoverPos.x == position.x)and(caves.discoverPos.y == position.y)and(caves.discoverPos.z == position.z)then
player:setStorageValue(caves.storage, 1)
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have discovered the "..caves.name..".")
end
end
end
return true
end
En data/movements/movements.xml añadiremos:
Como indicado el 17868 es la ID del Teleport, y debajo las Posiciones que descubrirán los players, ir incrementando en los números.
<movevent event="StepIn" itemid="17868" script="cave_teleporter.lua"/> <!-- ID Del teleport -->
<movevent event="StepIn" uniqueid="4401" script="cave_places.lua"/> <!-- Posiciones donde descubres -->
<movevent event="StepIn" uniqueid="4402" script="cave_places.lua"/>
<movevent event="StepIn" uniqueid="4403" script="cave_places.lua"/>
Creditos Fresh.