Warum willst du aber das Haussystem in Dini schreiben?
Will ich ungern, nur ich wollte fragen ob es Nachteile gibt wenn man MySQL und Dini zusammen benutzt.
Warum willst du aber das Haussystem in Dini schreiben?
Will ich ungern, nur ich wollte fragen ob es Nachteile gibt wenn man MySQL und Dini zusammen benutzt.
Hallo liebe Communty,
Ich möchte gerne wissen, ob es Nachteile gibt, wenn man MySQL und Dini Funktionen im Script verwendet. z.B Registration und Login in MySQL, und Haus System in Dini.
Mit freundlichen Grüßen.
Alles anzeigenMach es doch genau so wie du es mit format und SendClientMessage machen tust.
Erst query, dann mysql_function_query.
Dann wieder so.
bsp:
format(query,128,"Passwort='%s'",Passwort);
mysql_function_query(connhandle,query,false,"","");
format(query,128,"Passwort='%s'",Passwort);
mysql_function_query(connhandle,query,false,"","");
//EDIT: Warum benutzt du auch direkt 800?
Reicht wenn du es auf 300-400 hast
Ich verstehe nicht richtig wie das funktionieren soll. Ich habe bereits getestet eine zweite query zu machen, und 2 Sachen drin einzuspeichern. Leider wird in der Datenbank eine neue Tabelle angelegt ohne Namen, da in der ersten query ja der Name steht.
Vielleicht hast du mein Problem nicht ganz verstanden. Wenn ich die Zeile so stehen lasse, steht dass sie zu lang ist. Ist ja auch verständlich so lang wie sie nach rechts aus dem Bildschirm ragt. Wie kann ich diese kürzen, ohne dass es etwas beschädigt, ohne Fehler..
EDIT: Ich benutze 800 da 300 oder 400 zu wenig ist. Wenn es zu wenig ist kann man sich nicht mehr registrieren. Deshalb habe ich es auf 800 erhöht.
Hallo liebe Community, meine query Zeile ist leider zu lang. Ich habe schon hier im Forum mir die Threads dazu angeschaut, doch ich weiß nicht richtig welche Möglichkeit ich anwenden soll, und wie es sich erfolgreich umschreibt.
Ich weiß nicht wie ich eine Query in einer neuen Zeile anfangen kann, wenn ich im Bereich der "" bin.
new query[800], name[MAX_PLAYER_NAME], escpassword[129];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
mysql_real_escape_string(name, name);
mysql_real_escape_string(password, escpassword);
//Kommende Zeile zu lang.
format(query, sizeof query, "INSERT INTO `accounts` (`Name`, `Password`, `Level`, `Geld`, `Admin`, `Skin`, `Kills`, `Tode`, `Fraktion`, `Drogen`, `Rank`, `Navi`, `Hitsound`, `Levelpunkte`, `Job`, `Wanteds`, `Personalausweis`, `AutoSchein`, `MotorradSchein`, `FlugzeugSchein`,`BootSchein`, `Arbeitslosengeld`, `PayDay`, `PayDayGeld`,`FirstLog`) VALUES ('%s', '%s', '1', '500', '0', '137', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1')",
name, escpassword, SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld], SpielerInfo[playerid][pAdmin], SpielerInfo[playerid][pSkin], SpielerInfo[playerid][pKills], SpielerInfo[playerid][pTode], SpielerInfo[playerid][pFraktion], SpielerInfo[playerid][pDrogen],
SpielerInfo[playerid][pRank], SpielerInfo[playerid][pNavi], SpielerInfo[playerid][pHitsound], SpielerInfo[playerid][pLevelpunkte], SpielerInfo[playerid][pJob], SpielerInfo[playerid][pWanteds], SpielerInfo[playerid][pPerso], SpielerInfo[playerid][pAutoSchein],
SpielerInfo[playerid][pMotorradSchein], SpielerInfo[playerid][pFlugzeugSchein], SpielerInfo[playerid][pBootSchein], SpielerInfo[playerid][pArbeitslosenGeld], SpielerInfo[playerid][pPayDay], SpielerInfo[playerid][pPayDayGeld], SpielerInfo[playerid][pFirstLog]);
mysql_function_query(1, query, false, "", "");
Ich würde mich über Hilfe freuen.
Mit freundlichen Grüßen.
z.b. hiermit
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "SERVER: Administrator %s hat %s %d$ gegeben !",sendername,giveplayer,money);
MfG
Aber habe ich das denn nicht oben schon gemacht? Wenn ich ID 0 bin, und ein Mitspieler ID 1, und ich der ID 1 etwas gebe, steht dass ich mir das Geld gegeben habe. Das ist halt zurzeit mein Problem und ich verstehe es auch nicht richtig wieso sowas kommt.
Hallo liebe Community, ich möchte einen sehr guten ocmd Befehl schreiben, doch kriege es nicht hin.
Ich möchte als Beispiel einen Befehl namens /givemoney [Playerid] [Menge] erstellen. Wenn ich aber den Befehl auf dem Server ausführe, soll mir eine Nachricht geschickt werden dass ich dem Spieler das Geld gegeben habe. Und der Playerid soll auch eine Nachricht geschickt werden, von wem er das Geld bekommen hat und wie viel. Also muss ich die Playerid in den jeweiligen Namen umändern. Ich habe einen Befehl versucht zu schreiben, doch er scheint nicht richtig zu funktionieren.
Ich würde mich freuen wenn jemand mal ein Auge drüber werfen würde, und mir sagen könnte, was ich ändern sollte.
ocmd:givemoney(playerid,params[])
{
if(SpielerInfo[playerid][pAdmin] >= 6)
{
new plID,dollars,cents,name[MAX_PLAYER_NAME],pname[MAX_PLAYER_NAME], Geld,string[100],string2[100];
GetPlayerName(plID, name, MAX_PLAYER_NAME);
GetPlayerName(playerid,pname,MAX_PLAYER_NAME);
if(sscanf(params,"up.dd",plID,dollars,cents)) return SendClientMessage(playerid,RotD,"Benutze: [ID] [Geld]");
SpielerInfo[plID][pGeld] += Geld;
GivePlayerCash(plID,dollars,cents);
format(string, sizeof(string),"Du hast dem Spieler %s %i$ gegeben.",name,Geld);
SendClientMessage(playerid,Orange,string);
format(string2, sizeof(string2),"Der Spieler %s gab dir %i$.",pname,Geld);
SendClientMessage(plID,Orange,string2);
}
else return SendClientMessage(playerid,RotD,"Du hast keine Rechte um diesen Befehl auszuführen.");
return 1;
}
Mit freundlichen Grüßen.
lass doch den Timer und mach playerid raus und ersätzt das durch eine Schleife.
for(new i = 0; MAX_PLAYERS >= i; i++)
Okay. Ich habe das jetzt mit der Schleife gemacht, jetzt wird leider noch nicht der Wert aus der Datenbank ausgegeben. Zurzeit wird "--/--" angezeigt, ich werde aber das jetzt noch ändern. Falls ich es hin bekomme
EDIT: Also ich kriege es anscheinend nicht richtig hin, da einem Mitspieler auf dem Server der selbe Wert angezeigt wird wie mir. Eigentlich sollte er einen eigenen bekommen, da der Wert ja in der Datenbank gespeichert und geladen wird.
Es liegt an deiner Uhrzeit beim Timer du hast zwar beim forward playerid rein geschreiben und beim public aber SetTimer nimmt keine playerid.
und Createn also den Textdraw reicht doch bei ongamemodeinit oder?
Ja, doch ich kann bei OnGameModeInit keine playerid eingeben. Ich schreibe jetzt eben einen neuen Timer, der nur für dieses Textdraw zuständig ist.
Wird kein Wert angezeigt? Oder wird es nicht aktualisiert?
Es wird momentan nichts angezeigt, also gar keine Zahl.
Ist denn das Textdraw im richtigen Public? Vielleicht liegt es ja daran, bin mir nicht so sicher.
Kannst du den Code bitte richtig posten, damit man auch was lesen kann?
Nutze den Reiter Quellcode, nicht Editor.
Danke, wusste nicht wie es geht. Jetzt sollte es richtig sein :).
Hallo liebe Community. Ich habe ein kleines Problem, und zwar möchte ich ein Textdraw erstellen, damit ganz unten im Bild ein Wert angezeigt wird, welcher aus der Datenbank ausgegeben wird.
Ich will den Wert vom PayDay ausgeben, und das als Textdraw.
Mein Code sieht zurzeit so aus:
forward Uhrzeit(playerid);
new Text:PayDayTi[MAX_PLAYERS];
public OnGameModeInit()
{
SetTimer("Uhrzeit",1000,true);
return 1;
}
public Uhrzeit(playerid)
{
PayDayTi[playerid] = TextDrawCreate(556.000000, 425.000000, "--/--");
TextDrawBackgroundColor(PayDayTi[playerid], 255);
TextDrawFont(PayDayTi[playerid], 1);
TextDrawLetterSize(PayDayTi[playerid], 0.360000, 1.100000);
TextDrawColor(PayDayTi[playerid], -1);
TextDrawSetOutline(PayDayTi[playerid], 0);
TextDrawSetProportional(PayDayTi[playerid], 1);
TextDrawSetShadow(PayDayTi[playerid], 1);
new string[256];
format(string,sizeof(string),"%02d/60",SpielerInfo[playerid][pPayDay]);
TextDrawSetString(PayDayTi[playerid],string);
}
public OnPlayerSpawn(playerid)
{
TextDrawShowForPlayer(playerid, PayDayTi[playerid]);
return 1;
}
So sieht mein Code aus, und es funktioniert einfach nicht. Unter Uhrzeit ist noch die Uhrzeit, sowie das Datum und beides funktioniert.
Ich würde mich über Antworten freuen.