[Release] mySQL in Quest ausgeben

10/13/2011 04:57 ThinSmoke#1
Alsooo, es ist eine sehr Umständliche Lösung, ein Server hatte bei mir angefragt ob ich es ihm machen könnte, da io.popen nicht funktioniert musste eine andere Lösung her, zuerst dachte ich an Perl (Wegen der Leistung) doch dann habe ich mich einfach für Shell PHP entschieden, na nächstes Problem ohne io.popen kann ich auch dies nicht auslesen - nungut - ich habe nun doch eine Lösung gefunden - SEHR UMSTÄNDLICH aber es funktioniert.


Wir erstellen zuerst eine neue Quest Funktion

in die Questlib.lua schreiben wir
Code:
function pit_mysql()
os.execute("/usr/local/bin/php test.php")
for line in io.lines("test.txt") do say(line) end
end
Diese Funktion schreiben wir auch am Ende der folgenden Datei: quest_functions
Code:
pit_mysql
nun erstellen wir im Channel Ordner eine Datei Namens: test.php
In diese Datei schreibt ihr:
PHP Code:
<?php

$dbhost 
'localhost';    //mySQL IP
$dbuser 'root';       //mySQL Username
$dbpassword '';   //mySQL Passwort
$database 'account';       //mySQL Datenbank

$conn mysql_connect($dbhost$dbuser$dbpassword) or die ('mySQL Connecting Error'); 
mysql_select_db($database); 


$sqlIProto "SELECT account, status from account.account LIMIT 10";
$qryIProto mysql_query($sqlIProto);
$ipOut NULL;
while(
$getIProto mysql_fetch_object($qryIProto))
{
$ipOut .= $getIProto->account "|" $getIProto->status "\n";
}
$datei fopen("test.txt","w+");
fwrite($datei$ipOut);
fclose($datei);
        
?>

nun noch fix eine Quest erstellen, die wie folgt heißt test.quest
die Quest sieht wie folgt aus:
Code:
quest test2 begin
	state start begin
		when 30121.chat."Test 2" begin 
		say(pit_mysql())
		end
	end
end
sh make.sh ausführen, fertig.




-> Ich sagte ja, sehr umständlich doch es erfüllt seinen Zweck ;)
(Nicht zu empfehlen bei login quests - da die Festplatte sehr belastet werden kann!)

-> So wie das Beispiel ist, solltet ihr es nicht einfügen. Es sollte nach euren Wünschen angepasst werden.

Ich kann Quests, Scripte euren Wünschen entsprechend erstellen, gegen eine gerige Zeitaufwands Entschädigung.
10/13/2011 05:44 passy305#2
Nice :awesome:
Können bestimmt viele gebrauchen :awesome:
10/13/2011 07:38 .2good4you111#3
Nice Nice,

nur ich würde die Querrie in der Quest festlegen.
Wäre viel mehr möglich, update, insert, delete, drop (xD), Ingame Registrierung :D
10/13/2011 07:45 ~LuckyStrike~#4
Quote:
Originally Posted by .2good4you111 View Post
Nice Nice,

nur ich würde die Querrie in der Quest festlegen.
Wäre viel mehr möglich, update, insert, delete, drop (xD), Ingame Registrierung :D
höhöhö würdeste das machen könntest du mob_proto
leeren und die values in der quest angeben und wenn
der run oder sowas fertig ist die query wieder entfernen lassen
höhööhöhö ....

b2t: nice sicherlich hilfreich für die, dies brauchen können.
10/13/2011 07:51 -TÜRK-#5
false;

Quote:
os.execute("/usr/local/bin/php test.php")
true;

Quote:
os.execute("/usr/local/bin/php/test.php")
10/13/2011 07:52 ThinSmoke#6
Quote:
Originally Posted by -TÜRK- View Post
false;



true;
Falsch, /usr/bin/local/php ruft erstmal die PHP Klasse auf, und test.php ist dann das Script.
10/13/2011 08:00 -TÜRK-#7
Quote:
Originally Posted by xPit View Post
Falsch, /usr/bin/local/php ruft erstmal die PHP Klasse auf, und test.php ist dann das Script.
hmm, okay I get it. Danke.
Aufruf von PHP-Skript :rolleyes:

edit: * THANKS GIVEN *

Schönes System :D
10/13/2011 11:48 .Risan.#8
hatte eben angst... Aber nette alternative..
10/13/2011 12:15 .Nagato#9
Wieso muss immer nur immer pub werden. :(
Aber ist ok..
10/13/2011 12:16 ThinSmoke#10
Quote:
Originally Posted by .Nagato View Post
Wieso muss immer nur immer pub werden. :(
Aber ist ok..
Nenn mir nen Grund, warum nicht?
10/13/2011 12:20 .Nagato#11
Manche haben es sich durch's logische denken angeeignet, andere kriegen es wiederum nur in den Arsch geschoben.
Ich weiß, dass einige damit vielleicht nichts anfangen können, aber es wär schon schade drum, wenn jeder X-beliebige Server alles in den Arsch geschoben bekommt.
Bei manchen Sachen, k, but ich finde, dass man eine gewisse Grenze einhalten sollte, zwischen Pub und Nonpub.
10/13/2011 12:25 ThinSmoke#12
Quote:
Originally Posted by .Nagato View Post
Manche haben es sich durch's logische denken angeeignet, andere kriegen es wiederum nur in den Arsch geschoben.
Ich weiß, dass einige damit vielleicht nichts anfangen können, aber es wär schon schade drum, wenn jeder X-beliebige Server alles in den Arsch geschoben bekommt.
Bei manchen Sachen, k, but ich finde, dass man eine gewisse Grenze einhalten sollte, zwischen Pub und Nonpub.
Ach, ich weiß was du meinst .]
Ich veröffentliche auch nicht alles was ich erstellt habe.

Stell dir vor was los wäre, wenn ich eine Comboliste mit 1.000.000 Combos mit nem Account Hack (Client Mod) publizieren würde? funktioniert auf jedem Server (Auch Offiziellen) ... Es würde so eine Welle von geklauten Acc´s geben, so nutze ich es für eigen gebrauch oder verkaufe es an vertrauenswürdige Personen damit es nicht in Umlauf gerät ... :]


Oder, ich arbeite an einem InGame Auktionshaus welches über Website & InGame funktioniert, das sind Sachen die ich nicht veröffentlichen werde - sondern nur für eigen Gebrauch oder an eng- Vertraute weitergebe.

Doch das.. Hrm naja wie soll ich sagen, wenn die Server ~2000 Spieler ON haben mit nem Login Event wird es die Server in die Knie treiben, eigentlich müsste es reichen wenn man sagt, FreeBSD, Ports, mysql-lua ... sollte auch funktionieren .. nur leider ist die LUA Version von Metin ein wenig alt :(
10/13/2011 13:19 .Risan.#13
Quote:
Originally Posted by xPit View Post
Ach, ich weiß was du meinst .]
Ich veröffentliche auch nicht alles was ich erstellt habe.

Stell dir vor was los wäre, wenn ich eine Comboliste mit 1.000.000 Combos mit nem Account Hack (Client Mod) publizieren würde? funktioniert auf jedem Server (Auch Offiziellen) ... Es würde so eine Welle von geklauten Acc´s geben, so nutze ich es für eigen gebrauch oder verkaufe es an vertrauenswürdige Personen damit es nicht in Umlauf gerät ... :]


Oder, ich arbeite an einem InGame Auktionshaus welches über Website & InGame funktioniert, das sind Sachen die ich nicht veröffentlichen werde - sondern nur für eigen Gebrauch oder an eng- Vertraute weitergebe.

Doch das.. Hrm naja wie soll ich sagen, wenn die Server ~2000 Spieler ON haben mit nem Login Event wird es die Server in die Knie treiben, eigentlich müsste es reichen wenn man sagt, FreeBSD, Ports, mysql-lua ... sollte auch funktionieren .. nur leider ist die LUA Version von Metin ein wenig alt :(
Metin2 und Lua SQL funktioniert bestens...
Das mit dem ingame auktionhaus kamm mir auch schon in den Sinn...
10/13/2011 13:21 ThinSmoke#14
Quote:
Originally Posted by ..Xao View Post
Metin2 und Lua SQL funktioniert bestens...
Das mit dem ingame auktionhaus kamm mir auch schon in den Sinn...
Dafür werde ich aber dann kein Tutorial schreiben. Ich hoffe das wird auch kein anderer tun. XD
10/13/2011 14:53 .SoNiice'#15
Ist nicht wirklich schwer gescriptet.
Was mich eher interessiert, ob es wohl möglich ist, einen Butto in der Quest mit einer
MySQL Funktion zu belegen oder einer sonstigen Funktion?
Würd' das wohl gehen? o.O

Vielleicht mit when button begin? D: