yeah perdonen
unknown
lua
4 years ago
43 kB
9
Indexable
-- >>Tablas<<
exports["RPA-SQL"]:query("\
CREATE TABLE IF NOT EXISTS mta_casas(\
id int(11) NOT NULL AUTO_INCREMENT,\
entrada_x decimal(6,2) NOT NULL,\
entrada_y decimal(6,2) NOT NULL,\
entrada_z decimal(6,2) NOT NULL,\
entrada_tx decimal(6,2) NOT NULL,\
entrada_ty decimal(6,2) NOT NULL,\
entrada_tz decimal(6,2) NOT NULL,\
entrada_rot decimal(5,2) NOT NULL,\
entrada_int int(5),\
entrada_dim int(5),\
salida_x decimal(6,2) NOT NULL,\
salida_y decimal(6,2) NOT NULL,\
salida_z decimal(6,2) NOT NULL,\
salida_tx decimal(6,2) NOT NULL,\
salida_ty decimal(6,2) NOT NULL,\
salida_tz decimal(6,2) NOT NULL,\
salida_rot decimal(5,2) NOT NULL,\
salida_int int(5),\
salida_dim int(5),\
costo_venta int(11) NOT NULL DEFAULT 0,\
en_venta int(1) NOT NULL DEFAULT 1,\
costo_renta int(11) NOT NULL DEFAULT 0,\
rentando int(1) NOT NULL DEFAULT 0,\
cerrada int(1) NOT NULL DEFAULT 1,\
dejar_muebles int(1) NOT NULL DEFAULT 0,\
PRIMARY KEY(id)\
)")
exports["RPA-SQL"]:query("\
CREATE TABLE IF NOT EXISTS mta_casas_llaves(\
id_personaje int(11) NOT NULL,\
id_casa int(11) NOT NULL,\
tipo int(2) NOT NULL,\
permisos varchar(255) NOT NULL,\
FOREIGN KEY (id_personaje) REFERENCES mta_personajes(idpersonaje) ON UPDATE CASCADE ON DELETE CASCADE,\
FOREIGN KEY (id_casa) REFERENCES mta_casas(id) ON UPDATE CASCADE ON DELETE CASCADE,\
PRIMARY KEY(id_personaje, id_casa)\
)")
exports["RPA-SQL"]:query("\
CREATE TABLE IF NOT EXISTS mta_muebles(\
id int(11) NOT NULL AUTO_INCREMENT,\
model int(5) NOT NULL,\
costo int(11) NOT NULL DEFAULT 0,\
tipo int(2) NOT NULL DEFAULT 0,\
PRIMARY KEY(id)\
)")
exports["RPA-SQL"]:query("\
CREATE TABLE IF NOT EXISTS mta_muebles_colocados(\
id_mueble int(11) NOT NULL,\
x decimal(6,2) NOT NULL,\
y decimal(6,2) NOT NULL,\
z decimal(6,2) NOT NULL,\
rx decimal(5,2) NOT NULL,\
ry decimal(5,2) NOT NULL,\
rz decimal(5,2) NOT NULL,\
interior int(5) NOT NULL,\
dimension int(5) NOT NULL,\
id_casa int(5) NOT NULL,\
FOREIGN KEY (id_mueble) REFERENCES mta_muebles_personajes(id_mueble) ON UPDATE CASCADE ON DELETE CASCADE,\
FOREIGN KEY (id_casa) REFERENCES mta_casas(id) ON UPDATE CASCADE ON DELETE CASCADE,\
PRIMARY KEY(id_mueble)\
)")
exports["RPA-SQL"]:query("\
CREATE TABLE IF NOT EXISTS mta_muebles_personajes(\
id_personaje int(11) NOT NULL,\
id_mueble int(11) NOT NULL,\
FOREIGN KEY (id_personaje) REFERENCES mta_personajes(idpersonaje) ON UPDATE CASCADE ON DELETE CASCADE,\
FOREIGN KEY (id_mueble) REFERENCES mta_muebles(id) ON UPDATE CASCADE ON DELETE CASCADE,\
PRIMARY KEY(id_personaje, id_mueble)\
)")
exports["RPA-SQL"]:query("\
CREATE TABLE IF NOT EXISTS mta_casas_bloqueados(\
id_personaje int(11) NOT NULL,\
id_casa int(11) NOT NULL,\
FOREIGN KEY (id_personaje) REFERENCES mta_personajes(idpersonaje) ON UPDATE CASCADE ON DELETE CASCADE,\
FOREIGN KEY (id_casa) REFERENCES mta_casas(id) ON UPDATE CASCADE ON DELETE CASCADE,\
PRIMARY KEY(id_personaje, id_casa)\
)")
exports["RPA-SQL"]:query("\
CREATE TABLE IF NOT EXISTS mta_ultimas_conexiones(\
id_personaje int(11) NOT NULL,\
ultima_conexion int(11) NOT NULL,\
FOREIGN KEY (id_personaje) REFERENCES mta_personajes(idpersonaje) ON UPDATE CASCADE ON DELETE CASCADE,\
PRIMARY KEY(id_personaje)\
)")
exports["RPA-SQL"]:query("\
CREATE TABLE IF NOT EXISTS mta_tienda_muebles(\
id int(5) NOT NULL AUTO_INCREMENT,\
model int(5) NOT NULL,\
tipo int(2) NOT NULL DEFAULT 0,\
costo_venta int(11) NOT NULL DEFAULT 0,\
PRIMARY KEY(id)\
)")
-- >>Fin Tablas<<
casas_parents = {}
function cargarCasas()
local result = exports["RPA-SQL"]:query("\
SELECT c.*,\
MAX(CASE WHEN l.tipo = 1 THEN p.Nombre ELSE NULL END) AS propietario,\
MAX(CASE WHEN l.tipo = 2 THEN p.Nombre ELSE NULL END) AS rentador\
FROM mta_casas c\
LEFT JOIN mta_casas_llaves l\
ON c.id = l.id_casa\
LEFT JOIN mta_personajes p\
ON l.id_personaje = p.idpersonaje\
GROUP BY c.id\
")
for i,v in ipairs(result) do
local id = v.id
if casas_parents[id] and isElement(casas_parents[id]) then
local marker = casas_parents[id]:getData("Marker")
if marker and isElement(marker) then
marker:destroy()
end
casas_parents[id]:destroy()
casas_parents[id] = nil
end
local ent_col = ColShape.Sphere(v.entrada_x, v.entrada_y, v.entrada_z, 5)
ent_col:setData("Casa_Data", v)
ent_col:setInterior(v.entrada_int)
ent_col:setDimension(v.entrada_dim)
sal_marker = Marker(v.salida_x, v.salida_y, v.salida_z-0.8, "arrow", 1, 0, 0, 255, 100)
sal_marker:setData("Parent", ent_col)
sal_marker:setInterior(v.salida_int)
sal_marker:setDimension(v.salida_dim)
ent_col:setData("Marker", sal_marker)
casas_parents[id] = ent_col
end
end
addEventHandler("onResourceStart", resourceRoot, cargarCasas)
function cargarCasa(id)
local result = exports["RPA-SQL"]:query("\
SELECT c.*,\
MAX(CASE WHEN l.tipo = 1 THEN p.Nombre ELSE NULL END) AS propietario,\
MAX(CASE WHEN l.tipo = 2 THEN p.Nombre ELSE NULL END) AS rentador\
FROM mta_casas c\
LEFT JOIN mta_casas_llaves l\
ON c.id = l.id_casa\
LEFT JOIN mta_personajes p\
ON l.id_personaje = p.idpersonaje\
WHERE c.id=?\
GROUP BY c.id\
LIMIT 1\
", id)
if result[1] then
local ent_col = ColShape.Sphere(result[1].entrada_x, result[1].entrada_y, result[1].entrada_z, 5)
ent_col:setData("Casa_Data", result[1])
ent_col:setInterior(result[1].entrada_int)
ent_col:setDimension(result[1].entrada_dim)
sal_marker = Marker(result[1].salida_x, result[1].salida_y, result[1].salida_z-0.5, "corona", 0.75, 0, 0, 255, 100)
sal_marker:setData("Parent", ent_col)
sal_marker:setInterior(result[1].salida_int)
sal_marker:setDimension(result[1].salida_dim)
ent_col:setData("Marker", sal_marker)
casas_parents[id] = ent_col
end
end
function refrescarCasa(id)
local result = exports["RPA-SQL"]:query("\
SELECT c.*,\
MAX(CASE WHEN l.tipo = 1 THEN p.Nombre ELSE NULL END) AS propietario,\
MAX(CASE WHEN l.tipo = 2 THEN p.Nombre ELSE NULL END) AS rentador\
FROM mta_casas c\
LEFT JOIN mta_casas_llaves l\
ON c.id = l.id_casa\
LEFT JOIN mta_personajes p\
ON l.id_personaje = p.idpersonaje\
WHERE c.id=?\
GROUP BY c.id\
LIMIT 1\
", id)
if result[1] then
local id = result[1].id
if casas_parents[id] and isElement(casas_parents[id]) then
local marker = casas_parents[id]:getData("Marker")
if marker and isElement(marker) then
marker:destroy()
end
casas_parents[id]:destroy()
casas_parents[id] = nil
end
local ent_col = ColShape.Sphere(result[1].entrada_x, result[1].entrada_y, result[1].entrada_z, 5)
ent_col:setData("Casa_Data", result[1])
ent_col:setInterior(result[1].entrada_int)
ent_col:setDimension(result[1].entrada_dim)
sal_marker = Marker(result[1].salida_x, result[1].salida_y, result[1].salida_z-0.5, "corona", 0.75, 0, 0, 255, 100)
sal_marker:setData("Parent", ent_col)
sal_marker:setInterior(result[1].salida_int)
sal_marker:setDimension(result[1].salida_dim)
ent_col:setData("Marker", sal_marker)
casas_parents[id] = ent_col
triggerClientEvent(res..":updateCasa", root, id)
end
end
function eliminarCasa(id, player)
local result = exports["RPA-SQL"]:querypoll("DELETE FROM mta_casas WHERE id=?", id)
if result then
if result[2] == 1 then
if player then
outputChatBox("Eliminaste la casa #FFFF00#"..id, player, 255, 0, 0, true)
end
else
if player then
outputChatBox("La casa #FFFF00#"..result[3].." #FF0000ya esta eliminada", player, 255, 0, 0, true)
end
end
if casas_parents[id] and isElement(casas_parents[id]) then
local marker = casas_parents[id]:getData("Marker")
if marker and isElement(marker) then
marker:destroy()
end
casas_parents[id]:destroy()
casas_parents[id] = nil
end
end
end
addEvent(res..":requestWarp", true)
function requestWarp(tipo, id)
if casas_parents[id] and isElement(casas_parents[id]) then
local data = casas_parents[id]:getData("Casa_Data")
if data then
if not source:getData("ViendoCasa") then
if not source:isBloqueado(id) then
if data.cerrada == 0 then
local x, y, z, r, int, dim
if tipo == "entrada" then
x, y, z, r, int, dim = data.salida_tx, data.salida_ty, data.salida_tz, data.salida_rot, data.salida_int, data.salida_dim
else
x, y, z, r, int, dim = data.entrada_tx, data.entrada_ty, data.entrada_tz, data.entrada_rot, data.entrada_int, data.entrada_dim
end
startWarpTo(source, x, y, z, r, int, dim, _, id, tipo)
else
avisos2(source, "La casa esta cerrada.", 255, 0, 0)
end
else
avisos2(source, "Estas bloqueado en esta propiedad.", 255, 0, 0)
end
else
avisos2(source, "Actualmente estas viendo una casa, espera a que el tiempo termine.", 255, 0, 0)
end
end
end
end
addEventHandler(res..":requestWarp", root, requestWarp)
addEvent(res..":toggleCerradura", true)
function toggleCerradura(id)
if casas_parents[id] then
if source:isHavePermiso(id, "cerradura") then
local data = casas_parents[id]:getData("Casa_Data")
if data then
if data.cerrada == 0 then
data.cerrada = 1
else
data.cerrada = 0
end
casas_parents[id]:setData("Casa_Data", data)
exports["RPA-SQL"]:query("UPDATE mta_casas SET cerrada=? WHERE id=?", data.cerrada, id)
end
end
end
end
addEventHandler(res..":toggleCerradura", root, toggleCerradura)
addEvent(res..":requestCompra", true)
function requestCompra(id)
if casas_parents[id] and isElement(casas_parents[id]) then
local data = casas_parents[id]:getData("Casa_Data")
if data then
if not source:isBloqueado(id) then
if data.propietario ~= source:getNombre() then
if data.en_venta then
if isHaveCuentaBancaria(source:getNombre()) then
local costo = data.costo_venta
if source:getMoney() >= costo then
local old_propietario, old_pj_id = obtenerPropietario(id)
if cambiarPropietario(source:getNombre(), id) then
source:takeMoney(costo)
if old_propietario then
local result = exports["RPA-SQL"]:querypoll("UPDATE mta_cuentas_bancarias SET Saldo=Saldo+? WHERE Propietario=?", costo, old_propietario)
local propietario = Player(old_propietario)
if propietario then
if result then
if result[2] == 1 then
outputChatBox("Se deposito $"..comma(costo).." a tu cuenta bancaria por vender la casa #"..id..".", propietario, 0, 255, 0)
else
outputChatBox("Ocurrio un error al depositar $"..comma(costo).." a tu cuenta bancaria por vender la casa #"..id..".", propietario, 255, 0, 0)
end
end
end
end
outputChatBox("Compraste la casa #FFFF00#"..id.." #00FF00por #FFFF00$"..comma(costo)..".", source, 0, 255, 0, true)
else
avisos2(source, "Algo salio mal al comprar la casa.", 255, 0, 0)
end
else
avisos2(source, "No tienes suficiente dinero para comprar esta casa.", 255, 0, 0)
end
else
avisos2(source, "Necesitas una cuenta bancaria para poder comprar.", 255, 0, 0)
end
else
avisos2(source, "La casa no se encuentra en venta.", 255, 0, 0)
end
else
avisos2(source, "Esta casa ya te pertenece.", 255, 0, 0)
end
else
avisos2(source, "Estas bloqueado en esta propiedad.", 255, 0, 0)
end
end
end
end
addEventHandler(res..":requestCompra", root, requestCompra)
addEvent(res..":requestRenta", true)
function requestRenta(id)
if casas_parents[id] and isElement(casas_parents[id]) then
local data = casas_parents[id]:getData("Casa_Data")
if data then
if not source:isBloqueado(id) then
if data.propietario ~= source:getNombre() then
if data.rentador ~= source:getNombre() then
if data.rentando then
if isHaveCuentaBancaria(source:getNombre()) then
if #obtenerCasaRenta(source:getNombre()) == 0 then
local costo = data.costo_renta
if source:getMoney() >= costo then
local old_propietario, old_pj_id = obtenerPropietario(id)
if cambiarRentador(source:getNombre(), id) then
source:takeMoney(costo)
if old_propietario then
local result = exports["RPA-SQL"]:querypoll("UPDATE mta_cuentas_bancarias SET Saldo=Saldo+? WHERE Propietario=?", costo, old_propietario)
local propietario = Player(old_propietario)
if propietario then
if result then
if result[2] == 1 then
outputChatBox("Se deposito $"..comma(costo).." a tu cuenta bancaria por rentar la casa #"..id..".", propietario, 0, 255, 0)
else
outputChatBox("Ocurrio un error al depositar $"..comma(costo).." a tu cuenta bancaria por rentar la casa #"..id..".", propietario, 255, 0, 0)
end
end
end
end
outputChatBox("Rentaste la casa #FFFF00#"..id.." #00FF00por #FFFF00$"..comma(costo)..".", source, 0, 255, 0, true)
else
avisos2(source, "Algo salio mal al rentar la casa.", 255, 0, 0)
end
else
avisos2(source, "No tienes suficiente dinero para rentar esta casa.", 255, 0, 0)
end
else
avisos2(source, "Solo puedes rentar 1 casa.", 255, 0, 0)
end
else
avisos2(source, "Necesitas una cuenta bancaria para poder rentar.", 255, 0, 0)
end
else
avisos2(source, "La casa no se encuentra en venta.", 255, 0, 0)
end
else
avisos2(source, "Ya estas rentando esta casa.", 255, 0, 0)
end
else
avisos2(source, "Esta casa ya te pertenece.", 255, 0, 0)
end
else
avisos2(source, "Estas bloqueado en esta propiedad.", 255, 0, 0)
end
end
end
end
addEventHandler(res..":requestRenta", root, requestRenta)
addEvent(res..":cambiarVenta", true)
function cambiarVenta(id, costo)
if casas_parents[id] and isElement(casas_parents[id]) then
local data = casas_parents[id]:getData("Casa_Data")
if data then
if source:isHavePermiso(id, "vender") then
if data.en_venta == 0 then
if tonumber(costo) then
costo = math.floor(costo)
if costo > 0 then
local result = exports["RPA-SQL"]:query("UPDATE mta_casas SET en_venta=1, costo_venta=? WHERE id=?", costo, id)
if result then
outputChatBox("Pusiste en venta la casa #FFFF00#"..id.." #00FF00por #FFFF00$"..comma(costo)..".", source, 0, 255, 0, true)
refrescarCasa(id)
else
avisos2(source, "Algo salio mal al poner en venta esta casa.", 255, 0, 0)
end
else
avisos2(source, "El costo de venta debe ser mayor a $0.", 255, 0, 0)
end
else
avisos2(source, "El costo de venta no es valido.", 255, 0, 0)
end
else
local result = exports["RPA-SQL"]:query("UPDATE mta_casas SET en_venta=0 WHERE id=?", id)
if result then
outputChatBox("Dejaste de vender la casa #FFFF00#"..id..".", source, 0, 255, 0, true)
refrescarCasa(id)
else
avisos2(source, "Algo salio mal al quitar de la venta esta casa.", 255, 0, 0)
end
end
else
avisos2(source, "No tienes permiso para poner en venta esta casa.", 255, 0, 0)
end
end
end
end
addEventHandler(res..":cambiarVenta", root, cambiarVenta)
addEvent(res..":cambiarRenta", true)
function cambiarRenta(id, costo)
if casas_parents[id] and isElement(casas_parents[id]) then
local data = casas_parents[id]:getData("Casa_Data")
if data then
if source:isHavePermiso(id, "rentar") then
if data.rentando == 0 then
if not data.rentador then
if tonumber(costo) then
costo = math.floor(costo)
if costo > 0 then
local result = exports["RPA-SQL"]:query("UPDATE mta_casas SET rentando=1, costo_renta=? WHERE id=?", costo, id)
if result then
outputChatBox("Habilitaste la renta en la casa #FFFF00#"..id.." #00FF00por #FFFF00$"..comma(costo)..".", source, 0, 255, 0, true)
refrescarCasa(id)
else
avisos2(source, "Algo salio mal al habilitar la renta esta casa.", 255, 0, 0)
end
else
avisos2(source, "El costo de renta debe ser mayor a $0.", 255, 0, 0)
end
else
avisos2(source, "El costo de renta no es valido.", 255, 0, 0)
end
else
avisos2(source, "No puedes rentar una casa que ya tiene un rentador.", 255, 0, 0)
end
else
local result = exports["RPA-SQL"]:query("UPDATE mta_casas SET rentando=0 WHERE id=?", id)
if result then
outputChatBox("Deshabilitaste la renta en la casa #FFFF00#"..id..".", source, 0, 255, 0, true)
refrescarCasa(id)
else
avisos2(source, "Algo salio mal al deshabilitar la renta esta casa.", 255, 0, 0)
end
end
else
avisos2(source, "No tienes permiso para poner en renta esta casa.", 255, 0, 0)
end
end
end
end
addEventHandler(res..":cambiarRenta", root, cambiarRenta)
addEvent(res..":eliminarRentador", true)
function eliminarRentador(id)
if casas_parents[id] and isElement(casas_parents[id]) then
local data = casas_parents[id]:getData("Casa_Data")
if data then
if source:isHavePermiso(id, "rentar") then
if data.rentador then
exports["RPA-SQL"]:query("DELETE FROM mta_casas_llaves WHERE id_casa=? AND tipo=2", id)
local result = exports["RPA-SQL"]:query("UPDATE mta_casas SET rentando=0 WHERE id=?", id)
if result then
outputChatBox("Eliminaste al rentador de la casa #FFFF00#"..id.." ("..data.rentador..").", source, 255, 255, 0, true)
refrescarCasa(id)
else
avisos2(source, "Algo salio mal al habilitar la renta esta casa.", 255, 0, 0)
end
end
else
avisos2(source, "No tienes permiso para poner en renta esta casa.", 255, 0, 0)
end
end
end
end
addEventHandler(res..":eliminarRentador", root, eliminarRentador)
--
function cambiarPropietario(nombre, id, player)
local pj_id = getPersonajeIDFromName(nombre)
if pj_id then
exports["RPA-SQL"]:query("DELETE FROM mta_casas_llaves WHERE id_casa=? AND tipo=1", id)
local result = exports["RPA-SQL"]:querypoll("INSERT INTO mta_casas_llaves (id_personaje, id_casa, tipo, permisos) VALUES (?, ?, 1, ?)", pj_id, id, getPermisosJSONFromName({"todos los permisos"}))
if result then
if result[2] == 1 then
exports["RPA-SQL"]:query("UPDATE mta_casas SET en_venta=0,rentando=0 WHERE id=?", id)
if player then
outputChatBox("Pusiste de propietario a "..nombre.." en la casa #FFFF00#"..id, player, 0, 255, 0, true)
end
refrescarCasa(id)
return true
else
if player then
outputChatBox("No se pudo cambiar de propietario a la casa #FFFF00#"..id, player, 0, 255, 0, true)
end
end
end
end
return false
end
function cambiarRentador(nombre, id, player)
local pj_id = getPersonajeIDFromName(nombre)
if pj_id then
exports["RPA-SQL"]:query("DELETE FROM mta_casas_llaves WHERE id_casa=? AND tipo=2", id)
local result = exports["RPA-SQL"]:querypoll("INSERT INTO mta_casas_llaves (id_personaje, id_casa, tipo, permisos) VALUES (?, ?, 2, ?)", pj_id, id, getPermisosJSONFromName({"cerradura", "editar muebles", "almacenar muebles"}))
if result then
if result[2] == 1 then
exports["RPA-SQL"]:query("UPDATE mta_casas SET rentando=0 WHERE id=?", id)
if player then
outputChatBox("Pusiste de rentador a "..nombre.." en la casa #FFFF00#"..id, player, 0, 255, 0, true)
end
refrescarCasa(id)
return true
else
if player then
outputChatBox("No se pudo cambiar de rentador a la casa #FFFF00#"..id, player, 0, 255, 0, true)
end
end
end
end
return false
end
addEvent(res..":requestLlaves", true)
function requestLlaves(id)
if casas_parents[id] and isElement(casas_parents[id]) then
local data = casas_parents[id]:getData("Casa_Data")
if data then
local llaves = obtenerLlaves(id)
if llaves then
triggerClientEvent(source, res..":sendLlaves", source, llaves)
else
avisos2(source, "Ocurrio un error al cargar los jugadores con llave.", 255, 0, 0)
end
end
end
end
addEventHandler(res..":requestLlaves", root, requestLlaves)
addEvent(res..":requestBloqueados", true)
function requestBloqueados(id)
if casas_parents[id] and isElement(casas_parents[id]) then
local data = casas_parents[id]:getData("Casa_Data")
if data then
local bloqueados = obtenerBloqueados(id)
if bloqueados then
triggerClientEvent(source, res..":sendBloqueados", source, bloqueados)
else
avisos2(source, "Ocurrio un error al cargar los jugadores bloqueados.", 255, 0, 0)
end
end
end
end
addEventHandler(res..":requestBloqueados", root, requestBloqueados)
function agregarLlave(nombre, id, player)
local pj_id = getPersonajeIDFromName(nombre)
if pj_id then
local result = exports["RPA-SQL"]:querypoll("INSERT INTO mta_casas_llaves (id_personaje, id_casa, tipo, permisos) VALUES (?, ?, 3, ?)", pj_id, id, getPermisosJSONFromName({"cerradura"}))
if result then
if result[2] == 1 then
if player then
outputChatBox("Le diste una llave a "..nombre.." en la casa #FFFF00#"..id, player, 0, 255, 0, true)
end
return true
else
if player then
outputChatBox("No se pudo agregar la llave de "..nombre.." en la casa #FFFF00#"..id, player, 0, 255, 0, true)
end
return nombre.." ya tiene una llave"
end
end
else
return nombre.." no existe"
end
return false
end
addEvent(res..":darLlave", true)
function darLlave(nombre, id)
if casas_parents[id] and isElement(casas_parents[id]) then
local data = casas_parents[id]:getData("Casa_Data")
if data then
if data.propietario ~= nombre then
if data.rentador ~= nombre then
local result = agregarLlave(nombre, id)
if result == true then
outputChatBox("Agregaste una llave para "..nombre.." en la casa #FFFF00#"..id..".", source, 0, 255, 0, true)
local llaves = obtenerLlaves(id)
if llaves then
triggerClientEvent(source, res..":sendLlaves", source, llaves)
end
elseif result == false then
avisos2(source, "Algo salio mal al agregar la llave.", 255, 0, 0)
else
avisos2(source, result, 255, 0, 0)
end
else
avisos2(source, "El nombre escrito es del rentador, asi que ya posee una llave.", 255, 0, 0)
end
else
avisos2(source, "El nombre escrito es del propietario, asi que ya posee una llave.", 255, 0, 0)
end
end
end
end
addEventHandler(res..":darLlave", root, darLlave)
function agregarBloqueado(nombre, id, player)
local pj_id = getPersonajeIDFromName(nombre)
if pj_id then
local result = exports["RPA-SQL"]:querypoll("INSERT INTO mta_casas_bloqueados (id_personaje, id_casa) VALUES (?, ?)", pj_id, id)
if result then
if result[2] == 1 then
if player then
outputChatBox("Bloqueaste a "..nombre.." en la casa #FFFF00#"..id..".", player, 0, 255, 0, true)
end
return true
else
if player then
outputChatBox("No se pudo bloquear a "..nombre.." de la casa #FFFF00#"..id..".", player, 0, 255, 0, true)
end
return nombre.." ya se encuentra bloqueado."
end
end
else
return nombre.." no existe."
end
return false
end
addEvent(res..":bloquear", true)
function bloquear(nombre, id)
if casas_parents[id] and isElement(casas_parents[id]) then
local data = casas_parents[id]:getData("Casa_Data")
if data then
if data.propietario ~= nombre then
if data.rentador ~= nombre then
local result = agregarBloqueado(nombre, id)
if result == true then
outputChatBox("Bloqueaste a "..nombre.." en la casa #FFFF00#"..id..".", source, 0, 255, 0, true)
local bloqueados = obtenerBloqueados(id)
if bloqueados then
triggerClientEvent(source, res..":sendBloqueados", source, bloqueados)
end
elseif result == false then
avisos2(source, "Algo salio mal al bloquear al jugador.", 255, 0, 0)
else
avisos2(source, result, 255, 0, 0)
end
else
avisos2(source, "El nombre escrito es del rentador, no puedes bloquearlo, primero da click en (Eliminar rentador).", 255, 0, 0)
end
else
avisos2(source, "El nombre escrito es del propietario, no puedes bloquearlo.", 255, 0, 0)
end
end
end
end
addEventHandler(res..":bloquear", root, bloquear)
function eliminarLlave(nombre, id, player)
local pj_id = getPersonajeIDFromName(nombre)
if pj_id then
local result = exports["RPA-SQL"]:querypoll("DELETE FROM mta_casas_llaves WHERE id_personaje=? AND id_casa=?", pj_id, id)
if result then
if result[2] == 1 then
if player then
outputChatBox("Eliminaste la llave de "..nombre.." en la casa #FFFF00#"..id..".", player, 0, 255, 0, true)
end
return true
else
if player then
outputChatBox("No se pudo eliminar la llave de "..nombre.." en la casa #FFFF00#"..id..".", player, 0, 255, 0, true)
end
return nombre.." no tiene una llave."
end
end
else
return nombre.." no existe."
end
return false
end
addEvent(res..":quitarLlave", true)
function quitarLlave(nombre, id)
if casas_parents[id] and isElement(casas_parents[id]) then
local data = casas_parents[id]:getData("Casa_Data")
if data then
if data.propietario ~= nombre then
if data.rentador ~= nombre then
local result = eliminarLlave(nombre, id)
if result == true then
outputChatBox("Eliminaste la llave de "..nombre.." en la casa #FFFF00#"..id..".", source, 0, 255, 0, true)
local llaves = obtenerLlaves(id)
if llaves then
triggerClientEvent(source, res..":sendLlaves", source, llaves)
end
elseif result == false then
avisos2(source, "Algo salio mal al eliminar la llave.", 255, 0, 0)
else
avisos2(source, result, 255, 0, 0)
end
else
avisos2(source, "El nombre seleccionado es del rentador, para borrar su llave haz click en (Eliminar rentador).", 255, 0, 0)
end
else
avisos2(source, "El nombre seleccionado es del propietario, no puedes quitarle su llave.", 255, 0, 0)
end
end
end
end
addEventHandler(res..":quitarLlave", root, quitarLlave)
function eliminarBloqueo(nombre, id, player)
local pj_id = getPersonajeIDFromName(nombre)
if pj_id then
local result = exports["RPA-SQL"]:querypoll("DELETE FROM mta_casas_bloqueados WHERE id_personaje=? AND id_casa=?", pj_id, id)
if result then
if result[2] == 1 then
if player then
outputChatBox("Eliminaste el bloqueo de "..nombre.." en la casa #FFFF00#"..id, player, 0, 255, 0, true)
end
return true
else
if player then
outputChatBox("No se pudo eliminar el bloqueo de "..nombre.." en la casa #FFFF00#"..id, player, 0, 255, 0, true)
end
return nombre.." no esta bloqueado"
end
end
else
return nombre.." no existe"
end
return false
end
addEvent(res..":desbloquear", true)
function desbloquear(nombre, id)
if casas_parents[id] and isElement(casas_parents[id]) then
local data = casas_parents[id]:getData("Casa_Data")
if data then
local result = eliminarBloqueo(nombre, id)
if result == true then
outputChatBox("Desbloqueaste a "..nombre.." en la casa #FFFF00#"..id..".", source, 0, 255, 0, true)
local bloqueados = obtenerBloqueados(id)
if bloqueados then
triggerClientEvent(source, res..":sendBloqueados", source, bloqueados)
end
elseif result == false then
avisos2(source, "Algo salio mal al bloquear al jugador.", 255, 0, 0)
else
avisos2(source, result, 255, 0, 0)
end
end
end
end
addEventHandler(res..":desbloquear", root, desbloquear)
-- >>Inicio Permisos<<
addEvent(res..":eliminarPermiso", true)
function eliminarPermiso(jugador, permiso, id)
if casas_parents[id] and isElement(casas_parents[id]) then
local data = casas_parents[id]:getData("Casa_Data")
if data then
local pj_id = getPersonajeIDFromName(jugador)
if pj_id then
local id_permiso = data_permisos2[permiso]
if id_permiso ~= "1" then
local permisos = getPersonajePermisosTable(jugador, id)
if not permisos["1"] then
permisos[id_permiso] = nil
local json = toJSON(permisos)
local result = exports["RPA-SQL"]:querypoll("UPDATE mta_casas_llaves SET permisos=? WHERE id_casa=? AND id_personaje=?", json, id, pj_id)
if result then
if result[2] == 1 then
outputChatBox("Le quitaste el permiso ("..permiso..") a "..jugador..".", source, 255, 255, 0, true)
else
outputChatBox(jugador.." no posee el permiso ("..permiso..").", source, 255, 0, 0, true)
end
else
avisos2(source, "Algo salio mal al remover el permiso.", 255, 0, 0)
end
local llaves = obtenerLlaves(id)
if llaves then
triggerClientEvent(source, res..":sendLlaves", source, llaves)
end
else
outputChatBox(jugador.." posee todos los permisos, no puedes removerle ningun permiso.", source, 255, 0, 0, true)
end
else
avisos2(source, "Este permiso no se puede remover (solo administradores).", 255, 0, 0)
end
else
avisos2(source, "No se encontro un jugador con ese nombre.", 255, 0, 0)
end
end
end
end
addEventHandler(res..":eliminarPermiso", root, eliminarPermiso)
addEvent(res..":agregarPermiso", true)
function agregarPermiso(jugador, permiso, id)
if casas_parents[id] and isElement(casas_parents[id]) then
local data = casas_parents[id]:getData("Casa_Data")
if data then
local pj_id = getPersonajeIDFromName(jugador)
if pj_id then
local id_permiso = data_permisos2[permiso]
if id_permiso ~= "1" then
local permisos = getPersonajePermisosTable(jugador, id)
if not permisos["1"] then
permisos[id_permiso] = true
local json = toJSON(permisos)
local result = exports["RPA-SQL"]:querypoll("UPDATE mta_casas_llaves SET permisos=? WHERE id_casa=? AND id_personaje=?", json, id, pj_id)
if result then
if result[2] == 1 then
outputChatBox("Le diste el permiso ("..permiso..") a "..jugador..".", source, 0, 255, 0, true)
else
outputChatBox(jugador.." ya posee el permiso ("..permiso..").", source, 255, 0, 0, true)
end
else
avisos2(source, "Algo salio mal al remover el permiso.", 255, 0, 0)
end
local llaves = obtenerLlaves(id)
if llaves then
triggerClientEvent(source, res..":sendLlaves", source, llaves)
end
else
outputChatBox(jugador.." ya posee todos los permisos.", source, 255, 0, 0, true)
end
else
avisos2(source, jugador.." no puedes agregar este permiso (solo administradores).", 255, 0, 0)
end
else
avisos2(source, "No se encontro un jugador con ese nombre.", 255, 0, 0)
end
end
end
end
addEventHandler(res..":agregarPermiso", root, agregarPermiso)
addEvent(res..":eliminarPermisos", true)
function eliminarPermisos(jugador, id)
if casas_parents[id] and isElement(casas_parents[id]) then
local data = casas_parents[id]:getData("Casa_Data")
if data then
local pj_id = getPersonajeIDFromName(jugador)
if pj_id then
local permisos = getPersonajePermisosTable(jugador, id)
if not permisos["1"] then
local json = toJSON({})
local result = exports["RPA-SQL"]:querypoll("UPDATE mta_casas_llaves SET permisos=? WHERE id_casa=? AND id_personaje=?", json, id, pj_id)
if result then
if result[2] == 1 then
outputChatBox("Removiste todos los permisos de "..jugador..".", source, 0, 255, 0, true)
else
outputChatBox(jugador.." no posee ningun permiso.", source, 255, 0, 0, true)
end
else
avisos2(source, "Algo salio mal al remover el permiso.", 255, 0, 0)
end
local llaves = obtenerLlaves(id)
if llaves then
triggerClientEvent(source, res..":sendLlaves", source, llaves)
end
else
outputChatBox(jugador.." posee todos los permisos, no puedes removerle ningun permiso.", source, 255, 0, 0, true)
end
else
avisos2(source, "No se encontro un jugador con ese nombre.", 255, 0, 0)
end
end
end
end
addEventHandler(res..":eliminarPermisos", root, eliminarPermisos)
-- >>Fin Permisos<<
-- >>Inicio ver casa<<
addEvent(res..":verCasa", true)
function verCasa(id)
if casas_parents[id] and isElement(casas_parents[id]) then
local data = casas_parents[id]:getData("Casa_Data")
if data then
if not source:isBloqueado(id) then
if data.propietario ~= source:getNombre() then
outputChatBox("Tienes "..duracion_vercasa.." segundos para ver esta casa.", player, 0, 255, 0)
local x, y, z, r, int, dim = data.salida_tx, data.salida_ty, data.salida_tz, data.salida_rot, data.salida_int, data.salida_dim
startWarpTo(source, x, y, z, r, int, dim, _, id, "entrada")
Timer(terminarVerCasa, (duracion_vercasa+4)*1000, 1, source, id)
source:setData("ViendoCasa", id)
else
avisos2(source, "Ya eres el propietario de esta casa.", 255, 0, 0)
end
else
avisos2(source, "Estas bloqueado en esta propiedad.", 255, 0, 0)
end
end
end
end
addEventHandler(res..":verCasa", root, verCasa)
function terminarVerCasa(player, id)
if isElement(player) then
if casas_parents[id] and isElement(casas_parents[id]) then
local data = casas_parents[id]:getData("Casa_Data")
if data then
outputChatBox("Tu tiempo para ver la casa termino.", player, 255, 255, 0)
local x, y, z, r, int, dim = data.entrada_tx, data.entrada_ty, data.entrada_tz, data.entrada_rot, data.entrada_int, data.entrada_dim
startWarpTo(player, x, y, z, r, int, dim, _, id, "salida")
player:removeData("ViendoCasa")
end
end
end
end
-- >>Fin ver casa<<
-- >>Inicio cobro<<
-- >>Fin cobro<<Editor is loading...