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 ?
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
Alles anzeigenIch gebe dir im folgenden eine Hilfestellung.
Dies soll nicht heißen, dass ich dir komplett bei deiner Aufgabe helfe, sondern dir nur einen Denkanstoß gebe bzw. ein Beispiel, wie man es machen könnte.
ocmd:a(playerid,params[]) //Ein Beispiel für den Adminrang Supporter
{
new message[128],name[MAX_PLAYER_NAME]; //Ein String namens message und eine Variable namens name wird erstellt.
GetPlayerName(playerid,name,sizeof(name)); //Der Name aus der Variable name wird ausgelesen.
if(GetPVarInt(playerid,"Adminlevel")==1) //Es wird abgefragt, ob der Spieler das Adminlevel 1 besitzt.
{
if(sscanf(params,"s",message))return SendClientMessage(playerid,Grau,"Verwendung: /a [Text]"); //Sollte klar sein.
format(message,sizeof(message),"* Supporter %s: %s",name,message); //Der String message wird formatiert, sodass dort der ausgelesene Name verwendet werden kann.
SendAdminMessage(Gelb,message); //Der Stock SendAdminMessage sendet den formatierten String nur an Spieler, die einen Adminrang besitzen. Weiteres dazu unten.
}
return 1;
}
stock SendAdminMessage(farbe,const message[]) //Ein Stock mit den Parametern farbe und message wird erstellt.
{
new playerid;
for(;playerid!=MAX_PLAYERS;playerid++)
{
if(!IsPlayerConnected(playerid)) continue;
if(GetPVarInt(playerid,"Adminlevel"))SendClientMessage(playerid,farbe,message); // Wenn der Spieler ein Adminlevel besitzt, wird die Message weitergeleitet.
}
}
Hab mir das jetzt 3x Durchgelesen, aber ich verstehe trotzdem nicht was ich da jz genau falsch gemacht habe, was die einzelnen Dinge bewirken weis ich ja, nur irgendwie funktioniert es in dieser zusammensetzung nicht so wie ich es möchte.
Wie müsste ich es denn machen das er das nur mit Level 1 - 3 kann?
Was meinst du? Code steht doch da
// Irgendiwe kommt da gar nix