Okey,
aber ein Problem hab ich x'D.
Ich hab kp wie ich das jetzt machen soll, also.. wie ich die MYSQL Datenbank jetzt beschäftigen kann bzw. wie ich jz iwas permanent abspeicher
Okey,
aber ein Problem hab ich x'D.
Ich hab kp wie ich das jetzt machen soll, also.. wie ich die MYSQL Datenbank jetzt beschäftigen kann bzw. wie ich jz iwas permanent abspeicher
Un
Wie bereits von Beavis erwähnt speichere halt immer wieder irgendwas ab.
Und das würde meinen Fehler verhindern?
Zu 1.
Nein weil die Datenbank dann was zutun hat.
Zu 2.
Auch nein, wenn du es ordentlich speicherst.
Hast du ne Idee wie ich es machen 'Könnte' ? um diesen Fehler vllt. zu umgehen?
noch einfahcer ist alle 5 minuten irgendws an die datenbank senden egal was somit hat er immer was zu tun
1. Frage: Wenn ich alle 5 Minuten was an die Datenbank sende, passiert es nicht mehr?
2.Frage: Ist das nicht viel zu Ressourcendfressend ?
Frag ma beim connect den ping ab vom mysql server
ich hab den verdacht das er die verbingung verliert da das bei blue G sein plugin normal ist
Aber woran liegt das? bzw. wie kann ich es umgehen / vermeiden?
Frag ma beim connect den ping ab vom mysql server
ich hab den verdacht das er die verbingung verliert da das bei blue G sein plugin normal ist
Komm bitte mal kurz aufn TS, wäre dir mega dankbar.
ts.fabulous-life.de:8888 pw: teamspeak
Moin,
habe ein auf Mysql basierendes Login & Register System,
alles kein Problem, jedoch hatte ich das Problem das bei einigen kein Login bzw. Register Dialog erschienen ist,
dies passierte meist nach knapp 10 Minuten...
Also, Server an: alles geht.
10 Minuten später: Kein Dialog geht mehr (login,register)
Jemand ne Idee?
Hier die Dialoge
enum
{
DIALOG_LOGIN,
DIALOG_REGISTER,
DIALOG_AFAHRZEUG,
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case DIALOG_REGISTER:
{
if(response)
{
if(strlen(inputtext) == 0)return ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registration - Der Anfang","Dein Passwort muss mindestens 6 Zeichen enthalten\nBitte wähle ein neues Passwort.","Registration","Abbrechen");
if(strlen(inputtext)>=6)
{
CreateAccount(playerid, inputtext);
Eingeloggt[playerid] = 1;
SpawnPlayer(playerid);
SetCameraBehindPlayer(playerid);
TextDrawHideForPlayer(playerid,LR[playerid][0]);
TextDrawHideForPlayer(playerid,LR[playerid][1]);
TextDrawHideForPlayer(playerid,LR[playerid][2]);
TextDrawHideForPlayer(playerid,LR[playerid][3]);
TextDrawHideForPlayer(playerid,LR[playerid][4]);
TextDrawHideForPlayer(playerid,LR[playerid][5]);
TextDrawHideForPlayer(playerid,LR[playerid][6]);
TextDrawHideForPlayer(playerid,LR[playerid][7]);
TextDrawHideForPlayer(playerid,LR[playerid][8]);
TextDrawHideForPlayer(playerid,LR[playerid][9]);
TextDrawHideForPlayer(playerid,LR[playerid][10]);
TextDrawHideForPlayer(playerid,LR[playerid][11]);
TextDrawShowForPlayer(playerid,SpielerUhr[playerid]);
TextDrawShowForPlayer(playerid,SpielerDatum[playerid]);
SetPlayerVirtualWorld(playerid,0);
StopAudioStreamForPlayer(playerid);
}
else return ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registration - Der Anfang","Dein Passwort muss mindestens 6 Zeichen enthalten\nBitte wähle ein neues Passwort.","Registration","Abbrechen");
}
else return Kick(playerid);
}
case DIALOG_LOGIN:
{
if(response)
{
if(strlen(inputtext) == 0)return ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Anmeldung - Willkommen zurück","Das angegebene Passwort war nicht korrekt.\nBitte gebe nun dein Passwort ein.","Anmelden","Abbrechen");
if(!strcmp(inputtext, mysql_ReturnPasswort(SpielerName(playerid)), true))
{
Eingeloggt[playerid] = 1;
LoadPlayer(playerid);
SpawnPlayer(playerid);
SetCameraBehindPlayer(playerid);
TextDrawHideForPlayer(playerid,LR[playerid][0]);
TextDrawHideForPlayer(playerid,LR[playerid][1]);
TextDrawHideForPlayer(playerid,LR[playerid][2]);
TextDrawHideForPlayer(playerid,LR[playerid][3]);
TextDrawHideForPlayer(playerid,LR[playerid][4]);
TextDrawHideForPlayer(playerid,LR[playerid][5]);
TextDrawHideForPlayer(playerid,LR[playerid][6]);
TextDrawHideForPlayer(playerid,LR[playerid][7]);
TextDrawHideForPlayer(playerid,LR[playerid][8]);
TextDrawHideForPlayer(playerid,LR[playerid][9]);
TextDrawHideForPlayer(playerid,LR[playerid][10]);
TextDrawHideForPlayer(playerid,LR[playerid][11]);
TextDrawShowForPlayer(playerid,SpielerUhr[playerid]);
TextDrawShowForPlayer(playerid,SpielerDatum[playerid]);
SetPlayerVirtualWorld(playerid,0);
StopAudioStreamForPlayer(playerid);
return 1;
}
else return ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Anmeldung - Willkommen zurück","Das angegebene Passwort war nicht korrekt.\nBitte gebe nun dein Passwort ein.","Anmelden","Abbrechen");
}
else return Kick(playerid);
}
case DIALOG_AFAHRZEUG:
{
switch(listitem)
{
case 0:
{
new Float:x, Float:y, Float:z, supporter[MAX_PLAYER_NAME],string[200];
GetPlayerName(playerid,supporter,MAX_PLAYER_NAME);
GetPlayerPos(playerid,x,y,z);
SetVehicleNumberPlate(car[playerid] = CreateVehicle(560,x,y,z,3,0,0,-1),"Supporter");
PutPlayerInVehicle(playerid,car[playerid],0);
SendClientMessage(playerid,0xFFB400FF,"Du hast ein Supporter Mobil gespawnt.");
format(string,sizeof(string),"Support Fahrzeug von %s",supporter);
supportveh[car[playerid]] = Create3DTextLabel(string,0xFFB400FF,0.0,0.0,0.0,30.0,0,1);
Attach3DTextLabelToVehicle(supportveh[car[playerid]],car[playerid],0.0,0.0,2.0);
SetVehicleVirtualWorld(car[playerid],GetPlayerVirtualWorld(playerid));
SupMobil[playerid] = 1;
return 1;
}
case 1:
{
new Float:x, Float:y, Float:z, supporter[MAX_PLAYER_NAME],string[200];
GetPlayerName(playerid,supporter,MAX_PLAYER_NAME);
GetPlayerPos(playerid,x,y,z);
SetVehicleNumberPlate(car[playerid]=CreateVehicle(520,x,y,z,3,0,0,-1),"Supporter");
PutPlayerInVehicle(playerid,car[playerid],0);
SendClientMessage(playerid,0xFFB400FF,"Du hast ein Supporter Mobil gespawnt.");
format(string,sizeof(string),"Support Fahrzeug von %s",supporter);
supportveh[car[playerid]] = Create3DTextLabel(string,0xFFB400FF,0.0,0.0,0.0,30.0,0,1);
Attach3DTextLabelToVehicle(supportveh[car[playerid]],car[playerid],0.0,0.0,2.0);
SetVehicleVirtualWorld(car[playerid],GetPlayerVirtualWorld(playerid));
SupMobil[playerid] = 1;
return 1;
}
case 2:
{
new Float:x, Float:y, Float:z, supporter[MAX_PLAYER_NAME],string[200];
GetPlayerName(playerid,supporter,MAX_PLAYER_NAME);
GetPlayerPos(playerid,x,y,z);
SetVehicleNumberPlate(car[playerid]=CreateVehicle(411,x,y,z,3,0,0,-1),"Supporter");
PutPlayerInVehicle(playerid,car[playerid],0);
SendClientMessage(playerid,0xFFB400FF,"Du hast ein Supporter Mobil gespawnt.");
format(string,sizeof(string),"Support Fahrzeug von %s",supporter);
supportveh[car[playerid]] = Create3DTextLabel(string,0xFFB400FF,0.0,0.0,0.0,30.0,0,1);
Attach3DTextLabelToVehicle(supportveh[car[playerid]],car[playerid],0.0,0.0,2.0);
SetVehicleVirtualWorld(car[playerid],GetPlayerVirtualWorld(playerid));
SupMobil[playerid] = 1;
return 1;
}
}
}
}
return 1;
}
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
if(_:clickedid != INVALID_TEXT_DRAW)
{
if(clickedid == LR[playerid][9])
{
if(Eingeloggt[playerid] == 0)
{
if(mysql_CheckAccount(playerid) == 0)
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registration - Der Anfang","{FFFFFF}Du hast nun die Möglichkeit, ein Passwort einzugeben.\nBedenke das es sicher sein sollte.\nEs muss mindestens 6 Zeichen beinhalten\n","Registrieren","Verlassen");
CancelSelectTextDraw(playerid);
return 1;
}
else if(mysql_CheckAccount(playerid) == 1)
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Anmeldung - Willkommen zurück","Dein Account wurde gefunden.\nBitte gib dein Passwort ein um dich anzumelden.","Anmelden","Verlassen");
CancelSelectTextDraw(playerid);
return 1;
}
}
}
else if(clickedid == LR[playerid][8])
{
if(Eingeloggt[playerid] == 0)
{
if(mysql_CheckAccount(playerid) == 0)
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registration - Der Anfang","{FFFFFF}Du hast nun die Möglichkeit, ein Passwort einzugeben.\nBedenke das es sicher sein sollte.\nEs muss mindestens 6 Zeichen beinhalten\n","Registrieren","Verlassen");
CancelSelectTextDraw(playerid);
return 1;
}
else if(mysql_CheckAccount(playerid) == 1)
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Anmeldung - Willkommen zurück","Dein Account wurde gefunden.\nBitte gib dein Passwort ein um dich anzumelden.","Anmelden","Verlassen");
CancelSelectTextDraw(playerid);
return 1;
}
}
}
}
return 1;
}
Danke euch für eure Hilfe, hatte das Problem heute morgen aber gelöst bekommen.
@Qiuni:
ich denke mal der Bereich zum anklicken ist zu klein.
Wie stell ich das denn ein?
Danke,
Schau mal mein anders Problem mit dem Click Textdraw... kb pennen zu gehen haha
Ja, folgendes Problem die Textdraws sind nicht anklickbar.. warum auch immer.
Das habe ich bei OnPlayerConnect
TextDrawShowForPlayer(playerid,Anmeldebox);
TextDrawShowForPlayer(playerid,Fabulous);
TextDrawShowForPlayer(playerid,Life);
TextDrawShowForPlayer(playerid,Registrieren);
TextDrawShowForPlayer(playerid,Anmelden);
TextDrawShowForPlayer(playerid,Verlassen);
SelectTextDraw(playerid, 0xA3B4C5FF);
Und das hier bei OnGameModInit
TextDrawSetSelectable(Anmeldebox, false); //Nicht anklickbar
TextDrawSetSelectable(Fabulous, false);
TextDrawSetSelectable(Life, false);
TextDrawSetSelectable(Registrieren, true);
TextDrawSetSelectable(Anmelden, true);
TextDrawSetSelectable(Verlassen, true);
Und die Funktionen
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
if(_:clickedid != INVALID_TEXT_DRAW)
{
if(clickedid == Registrieren)
{
if(GetPVarInt(playerid,"Eingeloggt") == 0)
{
if(mysql_CheckAccount(playerid) == 0)
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registration - Der Anfang","{FFFFFF}Du hast nun die Möglichkeit, ein Passwort einzugeben.\nBedenke das es sicher sein sollte.\nEs muss mindestens 6 Zeichen beinhalten\n","Registrieren","Verlassen");
TextDrawHideForPlayer(playerid,Anmeldebox);
TextDrawHideForPlayer(playerid,Fabulous);
TextDrawHideForPlayer(playerid,Life);
TextDrawHideForPlayer(playerid,Registrieren);
TextDrawHideForPlayer(playerid,Anmelden);
TextDrawHideForPlayer(playerid,Verlassen);
CancelSelectTextDraw(playerid);
return 1;
}
else if(mysql_CheckAccount(playerid) == 1)
{
SendClientMessage(playerid,GRAU,"Dieser Account ist schon registriert, benutze den Anmeldebutton.");
return 1;
}
}
else if(clickedid == Anmelden)
{
if(GetPVarInt(playerid,"Eingeloggt") == 0)
{
if(mysql_CheckAccount(playerid) == 0)
{
SendClientMessage(playerid, GRAU,"Du besitzt noch keinen Account, benutze den Registrationsbutton.");
return 1;
}
else if(mysql_CheckAccount(playerid) == 1)
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Anmeldung - Willkommen zurück","Dein Account wurde gefunden.\nBitte gib dein Passwort ein um dich anzumelden.","Anmelden","Verlassen");
TextDrawHideForPlayer(playerid,Anmeldebox);
TextDrawHideForPlayer(playerid,Fabulous);
TextDrawHideForPlayer(playerid,Life);
TextDrawHideForPlayer(playerid,Registrieren);
TextDrawHideForPlayer(playerid,Anmelden);
TextDrawHideForPlayer(playerid,Verlassen);
CancelSelectTextDraw(playerid);
return 1;
}
}
}
else if(clickedid == Verlassen)
{
SendClientMessage(playerid,HELLBLAU,"Du hast den Server verlassen.");
Kick(playerid);
TextDrawHideForPlayer(playerid,Anmeldebox);
TextDrawHideForPlayer(playerid,Fabulous);
TextDrawHideForPlayer(playerid,Life);
TextDrawHideForPlayer(playerid,Registrieren);
TextDrawHideForPlayer(playerid,Anmelden);
TextDrawHideForPlayer(playerid,Verlassen);
CancelSelectTextDraw(playerid);
return 1;
}
}
}
return 1;
}
Moin,
Jemand eine Ahnung wie ich die Box ein wenig... durchsichtig machen kann?
Anmeldebox = TextDrawCreate(240.000000, 120.000000, "_");
TextDrawBackgroundColor(Anmeldebox, 255);
TextDrawFont(Anmeldebox, 1);
TextDrawLetterSize(Anmeldebox, 0.75000000, 17.000000);
TextDrawColor(Anmeldebox, -1);
TextDrawSetOutline(Anmeldebox, 0);
TextDrawSetProportional(Anmeldebox, 1);
TextDrawSetShadow(Anmeldebox, 1);
TextDrawUseBox(Anmeldebox, 1);
TextDrawBoxColor(Anmeldebox, 255);
TextDrawTextSize(Anmeldebox, 400.000000, 200.000000);
Okay ich kann einfach auch mal beides ausprobieren
Das ist das beste, und dann entscheidest du womit du besser arbeiten kannst.
Darauf kann dir keiner eine 'richtige' Antwort geben, der eine kommt mit dem, und der anderem mit dem besser klar.
Es liegt halt daran, mit welchem von beiden Programmen du besser arbeiten kannst,
beide haben Vor & Nachteile..
Wofür stehen denn 'LetterSize' und 'TextSize' beziehungsweise, soll ich im Script an sich mit denn Werten davon herumspielen?
Versteh ich jetzt nicht so genau.
Also, ich habe einen Textdraw erstellt, und ne Box dran gemacht, die box ist aber nur breit,
also ich kann die Höhe nicht regulieren, und der Text steht ja auch da drin :-/
Moin,
Benutze Zamaroths Textdraw Editor, aber ich weis nicht wie ich eine Rechteckige Box erstellen kann,
die dazu auch noch ein wenig transparenz hat, jemand da Ahnung?
Funktioniert schon, trotzdem danke Kaliber
Moin,
Möchte es gerne so haben, das man wenn man schreibt im Umgebungschat schreibt, und nur Leute in unmittelbarer Entfernung es lesen können.
Habe jedoch noch nie mit einem Chatradius gearbeitet.
Danke sehr, funktioniert einwandfrei. jetzt weis ich wenigstens wo mein Fehler war