yeah perdonen
unknown
lua
4 years ago
43 kB
6
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...