-
Posts
1,673 -
Joined
-
Last visited
-
Days Won
6
Everything posted by 0xCiBeR
-
Podes pasar el script entero?, me suena a que estas sobreescribiendo variables.
-
Proba usando: if guiGetVisible(hours_iphone) then guiSetVisible(hours_iphone,false) end
-
Con esto borras la tienda con el nombre 'X' de la base de datos: dbExec(tiendasDB,"DELETE FROM Tiendas WHERE Dueño=(?)",nombre)
-
No lo probé pero deberia funcionar: function cargarTiendas() local consulta = dbQuery(tiendasDB,"SELECT * FROM Tiendas") local resultado = dbPoll( consulta, -1 ) if resultado then for _, v in ipairs(resultado)do local owner = v['Dueño'] local vX = v['PosX'] local vY = v['PosY'] local vZ = v['PosZ'] local rot = v['Rotacion'] local tent = createObject(3243, vX, vY, vZ - 1, 0, 0, rot) setObjectScale(tent, 1.3) local tentCol = createColSphere(vX, vY, vZ, 4) attachElements(tentCol, tent, 0, 0, 0) setElementData(tentCol, "parent", tent) setElementData(tent, "parent", tentCol) setElementData(tentCol, "tent", true) setElementData(tentCol, "vehicle", true) setElementData(tentCol, "MAX_Slots", 100) end end end addEventHandler("onResourceStart",getResourceRootElement (getThisResource()),cargarTiendas)
-
Eso es por que estas intentando insertar un string sin especificarlo. Cambia a esto: addEventHandler("onResourceStart",getResourceRootElement(),function() --Conectar a la base de datos tiendasDB = dbConnect("sqlite",":/Tiendas.db") --Si no se puede conectar, cancelar if not tiendasDB then outputDebugString("[TIENDAS] No se puede conectar a la base de datos.") cancelEvent() return else outputDebugString("[TIENDAS] Sistema iniciado correctamente.") end --Crea la tabla de tiendas en la base de datos si no existe dbExec(tiendasDB,"CREATE TABLE IF NOT EXISTS Tiendas (Dueño TEXT, PosX INTEGER, PosY INTEGER, PosZ INTEGER, Rotacion INTEGER)") end,false) function armarTienda(source) setPedAnimation(source, "BOMBER", "BOM_Plant", -1, false, false, nil, false) local source = source setTimer(function() local x, y, z = getElementPosition(source) local xr, yr, zr = getElementRotation(source) px, py, pz = getElementPosition(source) prot = getPedRotation(source) local offsetRot = math.rad(prot + 90) local vx = px + 5 * math.cos(offsetRot) local vy = py + 5 * math.sin(offsetRot) local vz = pz + 2 local vrot = prot + 180 tent = createObject(3243, vx, vy, z - 1, 0, 0, vrot) setObjectScale(tent, 1.3) tentCol = createColSphere(x, y, z, 4) attachElements(tentCol, tent, 0, 0, 0) setElementData(tentCol, "parent", tent) setElementData(tent, "parent", tentCol) setElementData(tentCol, "tent", true) setElementData(tentCol, "vehicle", true) setElementData(tentCol, "MAX_Slots", 100) vz = z - 1 nombre = getPlayerName(source) dbExec(tiendasDB,"INSERT INTO Tiendas (Dueño, PosX, PosY, PosZ, Rotacion) VALUES ( '"..nombre.."', "..vx..", "..vy..", "..vz..", "..vrot..")") outputChatBox("Tienda creada, Datos: X:"..x.." Y:"..y.." Z:"..z.." R:"..vrot, root, 0, 255, 0) --Debug end, 1500, 1) end addCommandHandler("tienda", armarTienda) PD: No te recomiendo insertar tus valores a esa Query de esa forma, mejor utiliza columna=(?) nombre = "'"..getPlayerName(source).."'" dbExec(tiendasDB,"INSERT INTO Tiendas (Dueño, PosX, PosY, PosZ, Rotacion) VALUES (?, ?, ?, ?, ?)",nombre,vx,vy,vz,vrot)
-
Yo utilizo SQL y una tabla MySQL para mi sistema. Es muy practico y lo único que requiere es conocimientos en consultas SQL.
-
Veo para donde va este Post. Cierro tema ya que no tiene caso mantenerlo abierto.
-
Tenes que pasar source a source. Source como tal no existe dentro del timer. EJ: function outputChange(dataName,oldValue) local Danado = getElementData(source,"Danado") or false if getElementType(source) == "player" and dataName == "blood" then local newValue = getElementData(source,dataName) if newValue-oldValue < 0 then if Danado == false then local time = getRealTime() setElementData ( source, "attacked", time.timestamp ) setElementData ( source, "Contador", 60 ) triggerClientEvent(source, "displayClientInfo", source, "Info", "Has Recibido Daño, espera 1 Minuto.", 200, 200, 22) newSource = source setTimer ( triggerClientEvent, 60000, 1, newSource, "displayClientInfo", newSource, "Info", "Ya Puedes Desconectar.", 200, 200, 22 ) setTimer ( setElementData, 60000, 1, newSource, "Danado", false) setElementData(source,"Danado",true) Tiimer = getElementData(source,"Contador") setTimer ( setElementData, 1000, 60, newSource, "Contador", Tiimer-1 ) -- <== setTimer ( setElementData, 60000, 1, newSource, "Contador", 0 ) end end end end addEventHandler("onElementDataChange",getRootElement(),outputChange)
-
Post sobre recursos descompilados sin autorización del Creador no están Permitidos. Cierro Tema.
-
¿Donde Configurar para detectar gta3.img editado?
0xCiBeR replied to Aruna's topic in Ayuda relacionada al cliente/servidor
Server-Side function revisar() outputChatBox("El jugador: "..getPlayerName(source).." fue expulsado por tener archivos modificados.",getRootElement(),255,0,0,true) kickPlayer ( source, "Tenes un Archivo en tu GTA Modificado." ) end addEventHandler ( "onPlayerModInfo", root, revisar ) Nota: Va a expulsar cualquier jugador con algún tipo de modificación a su GTA. Tenes que agregar el resource como minimo al grupo ACL "SuperModerator" La otra alternativa es activar la detección especial: 20 en el archivo mtaserver.conf Saludos. -
No muestras donde defines "boton", además puedes probar que devuelve "skinName"
-
Puedes utilizar el recurso: https://community.multitheftauto.com/index.php?p=resources&s=details&id=141 Saludos.
-
FosterMyHost.com - Alojamiento de calidad
0xCiBeR replied to FosterMyHost's topic in Soluciones de hosting
Cierro tema ya que la empresa cerro y su sitio web no funciona. Notificado del cierre por PM. Saludos. -
Checking $ $ found on str helloworld$%&
-
local invalid_Characters = {"$", ",", "'", "\\", "?", "%%", "~", "#", "&", "@", "-", "/", "`", "^", "{", "}", "+", "*", "%(", "%)", "!"} function checkInvalidCharacters(str) local state = false for i, tmp in ipairs(invalid_Characters) do outputChatBox("Checking " ..tmp) if string.find(str,tmp,1,true) then outputChatBox(tmp.. " found on str " ..str) state = true break end end return state end checkInvalidCharacters("helloworld") Edit: I made a change in your script, since it was not correctly set. Please do try it out! Result: Checking $ Checking , Checking ' Checking \ Checking ? Checking %% Checking ~ Checking # Checking & Checking @ Checking - Checking / Checking ` Checking ^ Checking { Checking } Checking + Checking * Checking %( Checking %) Checking !
-
[Proyecto] El Quebrados RP
0xCiBeR replied to HardCottomount2.0's topic in Servidores en donde jugar
Por favor evitar desviarse del tema del post hablando sobre si utiliza o no resources robados. Cito la normativa del foro: Lo unico permitido es reportar cuando un usuario pone un resource robado dentro del foro. No esta permitido acusar a servidores de usar resources robados. Gracias. -
Es raro, no me ha pasado antes a menos que uses el comando /svp. ¿Usas una versión oficial o pirateada del gamemode?
-
Probablemente estas usando sus servicios free, y como todo servicio free conlleva sus desventajas, como en este caso su atención al cliente mucho menos dedicada. Como dije antes, el servicio pago es una buena relacion precio-calidad en cuanto al servicio de VPS Saludos.
-
Reservo mi opinión al ámbito privado y claro esta estoy en mi derecho de hacerlo. Por experiencia hablar sobre empresas de Hosting en este foro ha llevado a discusiones mas que opiniones. Por lo tanto, prefiero comentarle por privado Si tengo que hablar directamente, recomiendo completamente el uso o de un dedicado pequeño, o un VPS/VDS. Siempre he utilizado este tipo de servicio y jamás he tenido problemas. Entre los que he usado, destaco: NFOSERVERS ( Sin fanatismos, es la mejor lejos. ) OVH ( La segunda mejor en mi opinión ) HOSTINGER ( Solo el servicio de VPS va bien en relación precio - calidad.) Saludos.
-
Rápidamente simplificado podría ser así: if weapon == 25 or weapon == 26 or weapon == 27 or weapon == 29 or weapon == 30 or weapon == 31 or weapon == 33 or weapon == 35 or weapon == 36 or weapon == 37 or weapon == 38 then ID = 1 elseif weapon == 1 or weapon == 2 or weapon == 3 or weapon == 3 or weapon == 4 or weapon == 5 or weapon == 6 or weapon == 7 or weapon == 8 or weapon == 22 or weapon == 24 or weapon == 28 or weapon == 29 or weapon == 32 then ID = 2 elseif weapon == 16 or weapon == 17 or weapon == 18 or weapon == 39 or weapon == 46 then ID = 3 end De igual manera, es una manera muy poco eficiente.
-
Los elseif son leídos aunque el primer IF devuelva true o false. La única manera que no sea leído es si interrumpes el condicional. En cuanto al break si funciona en Lua, se utiliza para interrumpir un loop. Si consideramos que un loop por ejemplo, "loopea" unas 5 veces, y queremos interrumpir el loop a la 3era vez, utilizamos un break. En otras palabras completa el loop antes de tiempo. El while se utiliza como condicional en un loop, para establecer que mientras un valor es verdadero (true), se sigue ejecutando el loop, de lo contrario no lo hará.
