Bei allgemeinen Fragen zu Lua: http://www.lua.org/manual/5.1/
Und das Handbuch an sich: http://www.lua.org/manual/5.1/manual.html
Bei allgemeinen Fragen zu Lua: http://www.lua.org/manual/5.1/
Und das Handbuch an sich: http://www.lua.org/manual/5.1/manual.html
require("mysqloo")
Wenn Ich versuche mich zu der Datenbank zu Verbinden wird die onConnectionFailed Funktion aufgerufen und Ich bekomme einen nil error. Ne Idee woran das liegen kann ?
Wenn Ich versuche mich zu der Datenbank zu Verbinden wird die onConnectionFailed Funktion aufgerufen und Ich bekomme einen nil error. Ne Idee woran das liegen kann ?
Ne, aber zeig mal deinen Code.
Für alle, die ein bisschen knobeln wollen: Kluger Kopf gesucht! Das neue Clone Id System.
require( "mysqloo" )
db = mysqloo.connect( "127.0.0.1", "xxx", "xxx", "xxx", 3306 )
function db:onConnected()
print( "Database has connected!" )
local q = self:query( "SELECT 5+5" )
function q:onSuccess( data )
print( "Query successful!" )
PrintTable( data )
end
function q:onError( err, sql )
print( "Query errored!" )
print( "Query:", sql )
print( "Error:", err )
end
q:start()
end
function db:onConnectionFailed( err )
if(!err == nil)then
print("MySQL Connection Failed!")
print(tostring(err))
print("Retrying!")
--db:connect()
else
print("MySQL Connection Failed!")
print("Unkown Error!")
print("Retrying!")
--db:connect()
end
end
db:connect()
if(!err == nil)then
Änder das mal in
if err then
Danke für den Beitrag Airfox
Kein Ding.
Werd ihn weiter machen, sobald ich mehr Zeit habe.
Dann hab mal pls mehr Zeit D: :3
Das ist meine MySQL Datei: https://hastebin.com/wilonuvize.sql
Kann ich denn auch irgendwie db:RunQuery() von außerhalb dieser Datei aufrufen? (Ich muss doch das nehmen um irgendwelche SQL Befehle auszuführen, oder?) Immer wenn ich das versucht habe wurde "db" logischerweise nicht gefunden. Weiß aber nicht wie ich das sonst aufrufen soll.
Hoffe auf Hilfe
Ich leake mal die Datei von EGM:RP. Du kannst sie so natürlich nicht nutzen, aber ist vielleicht ein guter Anhaltspunkt.
---------------------------------------
---------------------------------------
-- Einfach Gaming Roleplay --
-- (EGM:RP) --
-- --
-- Created by --
-- Pascal 'P4sca1' Sthamer, --
-- Jan 'Oninoni' Ziegler, --
-- Konstantin 'Airfox' Zisiadis --
-- --
-- This software is only allowed --
-- on official 'Einfach Gaming' --
-- servers owned by 'P4sca1' --
---------------------------------------
---------------------------------------
---------------------------------------
-- Server | SQL System --
---------------------------------------
require("mysqloo")
-- Initializes the mysql connection with the date given in the config.
function SQL:Init()
self.db = mysqloo.connect(self.ip, self.username, self.password, self.database, self.port)
function self.db.onConnected(db)
LogInfo("Successfully connected to mysql sever")
db:setCharacterSet("utf8")
-- Returning something in SQL.Connected prevents default sql initialization.
if hook.Run("SQL.Connected") == nil then
hook.Run("SQL.CreateTables")
hook.Run("SQL.Ready")
end
end
function self.db.onConnectionFailed(db, error)
LogError("Failed to connect to mysql server: " .. error)
end
hook.Run("SQL.Connect", self.db)
self.db:connect()
end
-- Initialize sql on startup.
hook.Add("Initialize", "SQL.Initialize", function()
SQL:Init()
end)
-- Used to access the db object from outside.
--
-- @return Database db
function SQL:GetDbObject()
return self.db
end
-- Checks whether the mysql database is connected.
--
-- @return Boolean isConnected
function SQL:IsConnected()
return self.db and self.db:status() == mysqloo.DATABASE_CONNECTED
end
-- Used to bind the callback to onSuccess and onFailure.
local function addQueryCallback(query, callback)
local callTrace = debug.traceback()
local args = { query }
function query.onAborted(query)
table.insert(args, false)
table.insert(args, "aborted")
if callback then
callback(unpack(args))
end
end
function query.onError(query, error)
table.insert(args, false)
table.insert(args, error)
if callback then
callback(unpack(args))
end
-- Trace only printed because ErrorNoHalt has a 512 character limit and screws up \n because the string is not written completely.
ErrorNoHalt(error .. "\n")
print(callTrace)
end
function query.onSuccess(query, results)
table.insert(args, true)
table.insert(args, results)
if callback then
callback(unpack(args))
end
end
end
-- Executes the sql string and executes the callback afterwards.
--
-- @param String sqlString
-- @param? Function callback(query, success, results)
-- @param? Boolean wait - can cause huge lag, defaults to false.
-- @return Query query
function SQL:Query(sqlString, callback, wait)
LogDebug(sqlString)
local query = self.db:query(sqlString)
addQueryCallback(query, callback)
query:start()
if wait then
query:wait()
end
return query
end
-- Prepares the query and executes it with the given parameters.
-- Executes the callback afterwards.
--
-- @param String sqlString
-- @param Table params or Any value if there is only one parameter.
-- @param? Function callback(query, success, results)
-- @param? Boolean wait - can cause huge lag, defaults to false.
-- @return PreparedQuery query
function SQL:PreparedQuery(sqlString, params, callback, wait)
if not istable(params) then
params = { params }
end
-- Print sql string and params when in debug mode.
LogDebug(sqlString)
if Config.LogLevel == 0 then
PrintTable(params)
end
local preparedQuery = self.db:prepare(sqlString)
addQueryCallback(preparedQuery, callback)
-- Append parameters to query.
for k, v in pairs(params) do
local varType = type(v)
if varType == "number" then
preparedQuery:setNumber(k, v)
elseif varType == "boolean" then
preparedQuery:setBoolean(k, v)
else
preparedQuery:setString(k, v)
end
end
preparedQuery:start()
if wait then
preparedQuery:wait()
end
return preparedQuery
end
-- Creates a new sql table if it does not exist. Runs synchron.
--
-- @param String tableName
-- @param Table columns
-- @param? Function callback(query, success, data)
-- @return Query query
function SQL:CreateTableIfNotExists(tableName, columns, callback)
local sqlString = "CREATE TABLE IF NOT EXISTS `" .. tableName .. "` ("
for k, column in pairs(columns) do
if k > 1 then
sqlString = sqlString .. ", "
end
sqlString = sqlString .. "`" .. column.name .. "` " .. column.definition
end
sqlString = sqlString .. ") CHARACTER SET utf8"
return self:Query(sqlString, callback, true)
end
-- Inserts the data into the table.
--
-- @param String tableName
-- @param Table data
-- @param? Function callback(query, success, data)
-- @param? Boolean wait - can cause huge lag, defaults to false.
-- @return PreparedQuery query
function SQL:Insert(tableName, data, callback, wait)
local keys = {}
local values = {}
for key, value in pairs(data) do
table.insert(keys, key)
table.insert(values, value)
end
local sqlString = "INSERT INTO `" .. tableName .. "` ("
for k, v in SortedPairs(keys) do
if k > 1 then
sqlString = sqlString .. ", "
end
sqlString = sqlString .. "`" .. v .. "`"
end
sqlString = sqlString .. ") VALUES ("
for i = 1, #keys do
if i > 1 then
sqlString = sqlString .. ", "
end
sqlString = sqlString .. "?"
end
sqlString = sqlString .. ")"
return self:PreparedQuery(sqlString, values, callback, wait)
end
Alles anzeigen
Hey, aktuell arbeite ich an einem Entschlüsselungsscript. Könntes du mir da eventuell helfen?
Wenn ja, können wir uns dann aufm TS treffen?
Hey, aktuell arbeite ich an einem Entschlüsselungsscript. Könntes du mir da eventuell helfen?
Wenn ja, können wir uns dann aufm TS treffen?
Verschlüsselung ist relativ komplex, wieso machst du einen eigenen Alghoritmus?
Hallo,
ich bin super interessiert an Scripting, da ich selbst mal was machen möchte. Nun habe ich das Problem, das ich alleine durch den Guide nicht viel weiter komme bzw. ich mehr bevorzuge, wenn jemand mich im Teamspeak "führt".
Ich bin relativ neu, habe bisher nur paar Zeilen umgeschrieben für diverse Addons.
Falls jemand hier scripten kann und Zeit dafür hätte wär ich sehr froh wenn er mir das beibringen könnte! Ev. will ja auch jemand anders noch dazustossen, falls das klappt.
Ich würde mich umglaublich über jemand freuen der mir beibringt ein Script zu scripten!
MfG.
Mangle
Falls jemand hier scripten kann und Zeit dafür hätte wär ich sehr froh wenn er mir das beibringen könnte!
Ich bin zwar auch kein Profi in speziell Lua aber an sich programmieren kann Ich und das auch in Lua. Ich habe schon öfters die Idee gehabt mal ein paar Leute die da bock drauf hatten was beizubringen nur leider hat sich nie jemand der wirklich motiviert war gefunden.
Das heißt wenn du lust hast kann Ich dir gerne einige Sache zeigen. Kannst ja sonst mal ne Konversation auf machen um genaueres zu besprechen.
Viele Grüße,
Fabian
Wenn du generell Fragen hast oder so kannst du dich auch bei mir melden. Versuche dir so gut wie möglich zu helfen.