Die einzige Möglichkeit ist dann bei einen der Bots den Commandprefix zu ändern.
Liegt nicht daran, der Bot returnt es wenn ein Bot was eingebettet hat, z.B /help oder x!help.
Die einzige Möglichkeit ist dann bei einen der Bots den Commandprefix zu ändern.
Liegt nicht daran, der Bot returnt es wenn ein Bot was eingebettet hat, z.B /help oder x!help.
Du erstellst zwar die Variable DCC_User:author aber gibt dieser Variable nirgends einen Wert. Ich denke mal es gibt eine eine Funktion wie DCC_GetMessageAuthor(message, author); oder so ähnlich, sonst wird die Bot Abfrage wahrscheinlich immer false returnen.
Du erstellst zwar die Variable DCC_User:author aber gibt dieser Variable nirgends einen Wert. Ich denke mal es gibt eine eine Funktion wie DCC_GetMessageAuthor(message, author); oder so ähnlich, sonst wird die Bot Abfrage wahrscheinlich immer false returnen.
Jo klappt, danke dir, hab die Funktion verschlampt.
Hallo!
Ich bekome im MySQL Logimmer folgenden Fehler:
[15:24:20] [ERROR] cache_get_value_name_int: field 'id' not found
[15:24:20] [ERROR] cache_get_value_name_int: field 'adminrang' not found
[15:24:20] [ERROR] cache_get_value_name_int: field 'whitelist' not found
[15:24:20] [ERROR] cache_get_value_name_float: field 'x' not found
[15:24:20] [ERROR] cache_get_value_name_float: field 'y' not found
[15:24:20] [ERROR] cache_get_value_name_float: field 'z' not found
[15:24:20] [ERROR] cache_get_value_name_float: field 'r' not found
[15:24:20] [ERROR] cache_get_value_name_int: field 'interior' not found
[15:24:20] [ERROR] cache_get_value_name_int: field 'welt' not found
Diese Zeilen stehen bei OnUserLogin so drinund in der DB sind die Felder ebenso vorhanden.
Woran kann das liegen?
MfG
Zeig uns Mal die Query und wie die Tabelle in PHPmyadmin aussieht.
Deine Query?
E: Leon war schneller...dieser Mistkerl ![]()
new query[256];
mysql_format(handle, query, sizeof(query), "SELECT * FROM `accounts` WHERE `name` = '%e' AND `passwort` = MD5('%e')",SpielerDaten[playerid][player_Name], inputtext);
mysql_pquery(handle, query, "OnUserLogin", "d", playerid);
Das ist die Query beim Login Dialog
Edit: Meine DB: https://prnt.sc/p27yqw
Jetzt sagt mirder Log folgendes noch dazu:
[15:49:17] [ERROR] error #1054 while executing query "UPDATE `accounts` SET `adminrang` = '0', `whitelist` = '0', `x` = '1958.378296', `y` = '1343.157227', `z` = '15.374607', `r` = '269.142487', `interior` = '0', `welt` = '0' WHERE `id` = '0'": Unknown column 'whitelist' in 'field list'
Die Schreibweise sollte aber richtig sein.
An der Query ist nichts falsch. Zeig uns also Mal bitte wie die Tabelle accounts in PHPmyadmin aussieht.
Fehler gefunden: Ich hab wohl versehentlich die falschen DB Daten kopiert. Danke für eure Hilfe!
MfG
Guten Tag zusammen,
ich hätte mal eine Frage an euch, ich suche eine Alternative zu PVar's, gibt es da etwas ?
Möchte gerne, alle meine Systeme in eine Separate Include Schreiben, was mit natürlich mit einem Enum möglich wäre,
diese aber dann irgendwie alle immer zusammen hängen, was z.B bei PVar's ja nicht der Fall sein muss.
Hoffe Ihr versteht was ich meine.
LG,
●●● ► MGPK ◄ ●●●
Guten Abend!
Gibt es eine Lösung um den Spawnbutton zu verstecken?
Momentan habe ich es so, aber hierbei fleige ich immer durch die Luft.
public OnPlayerRequestClass(playerid)
{
if(!SpielerDaten[playerid][player_Eingeloggt])
//SetPlayerPos(playerid,2090.5776,1743.2261,10.6719);
//SetPlayerCameraPos(playerid,2092.3242,1746.4900,10.6797);
//SetPlayerCameraLookAt(playerid,2092.3242,1746.4900,10.6797);
//SetPlayerFacingAngle(playerid,348.7013);
SetSpawnInfo(playerid,0,187,2090.5776,1743.2261,10.6719,348.7013,0,0,0,0,0,0);
//SpawnPlayer(playerid);
{
query
}
TogglePlayerSpectating(playerid, true);
return 1;
}
Alles anzeigen
Alles anzeigenGuten Abend!
Gibt es eine Lösung um den Spawnbutton zu verstecken?
Momentan habe ich es so, aber hierbei fleige ich immer durch die Luft.
CodeAlles anzeigenpublic OnPlayerRequestClass(playerid) { if(!SpielerDaten[playerid][player_Eingeloggt]) //SetPlayerPos(playerid,2090.5776,1743.2261,10.6719); //SetPlayerCameraPos(playerid,2092.3242,1746.4900,10.6797); //SetPlayerCameraLookAt(playerid,2092.3242,1746.4900,10.6797); //SetPlayerFacingAngle(playerid,348.7013); SetSpawnInfo(playerid,0,187,2090.5776,1743.2261,10.6719,348.7013,0,0,0,0,0,0); //SpawnPlayer(playerid); { query } TogglePlayerSpectating(playerid, true); return 1; }
public OnPlayerRequestClass(playerid, classid)
{
SetSpawnInfo(playerid, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0);
TogglePlayerSpectating(playerid, 1);
SpawnPlayer(playerid);
SetTimerEx("SkipOnPlayerRequestClass", 100, false, "i", playerid);
return 1;
}
//Irgendwo außerhalb eines publics
forward SkipOnPlayerRequestClass(playerid);
public SkipOnPlayerRequestClass(playerid)
{
SpawnPlayer(playerid);
TogglePlayerSpectating(playerid, 0);
return 1;
}
Der Spawnbutto ist zwar weg, jedoh fall ich während em Login immer auf den Nullpunkt.
Der Spawnbutto ist zwar weg, jedoh fall ich während em Login immer auf den Nullpunkt.
Diese Fubktion benutze ich bereits. Immer wenn ich das Passwort falsch eingebe lande ich am Nullpunkt.
Edit:
Ich habs jetzt mal ohne der Funktion von Colney getestet, wenn ich bei OnPlayerRequestClass
TogglePlayerSpectating(playerid, true); reinschreibe und beim Logindialog ei falsches Psswort eingebe lade ich am Nullpunkt, jeoch wen TogglePlayerSpectating(playerid, true); nicht vorhanen ist, steht nur dass das Passwort falsch ist.
Der Login Dialog
case DIALOG_LOGIN:
{
new string[64];
if(!response)return Kick(playerid);
if(strlen(inputtext) < 6 || strlen(inputtext) > 24)
{
format(string,sizeof(string),"{FFFFFF}Der Account {E8BD1A}%s {FFFFFF}wurde gefunden\nBitte gebe das Passwort ein",SpielerDaten[playerid][player_Name]);
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}Anmeldung",string, "{FFFFFF}Weiter", "{FFFFFF}Abbrechen");
}
new query[256];
mysql_format(handle, query, sizeof(query), "SELECT * FROM `accounts` WHERE `name` = '%e' AND `passwort` = MD5('%e')",SpielerDaten[playerid][player_Name], inputtext);
mysql_pquery(handle, query, "OnUserLogin", "d", playerid);
TogglePlayerSpectating(playerid, false);
return 1;
Alles anzeigen
OnUserLogin
CALLBACK: OnUserLogin(playerid)
{
new rows,string[500];
cache_get_row_count(rows);
if(rows == 0)
{
format(string,sizeof(string), "Dieses Passwort ist falsch");
SendClientMessage(playerid,WEISS,string);
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}Anmeldung", "{FFFFFF}Um spielen zu können musst du dich einloggen", "{FFFFFF}Einloggen", "{FFFFFF}Abbrechen");
}
else
{
cache_get_value_name_int(0, "id", SpielerDaten[playerid][player_ID]);
cache_get_value_name_int(0, "adminrang", SpielerDaten[playerid][player_Admin]);
cache_get_value_name_int(0, "whitelist", SpielerDaten[playerid][player_Whitelist]);
cache_get_value_name_float(0, "x", SpielerDaten[playerid][player_Spawn][0]);
cache_get_value_name_float(0, "y", SpielerDaten[playerid][player_Spawn][1]);
cache_get_value_name_float(0, "z", SpielerDaten[playerid][player_Spawn][2]);
cache_get_value_name_float(0, "r", SpielerDaten[playerid][player_Spawn][3]);
cache_get_value_name_int(0, "interior", SpielerDaten[playerid][player_Interior]);
cache_get_value_name_int(0, "welt", SpielerDaten[playerid][player_Welt]);
SpawnPlayer(playerid);
SpielerDaten[playerid][player_Eingeloggt] = true;
format(string,sizeof(string),"{FFFFFF}Willkommen zurück, {ab258a}%s[%d]",SpielerDaten[playerid][player_Name],playerid);
SendClientMessage(playerid,WEISS,string);
new string1[128];
format(string1,sizeof(string1),"%s[%d] hat den Server betreten",SpielerDaten[playerid][player_Name],playerid);
SendClientMessageToAll(WEISS,string1);
}
return 1;
}
Alles anzeigen
Alles anzeigenDiese Fubktion benutze ich bereits. Immer wenn ich das Passwort falsch eingebe lande ich am Nullpunkt.
Edit:
Ich habs jetzt mal ohne der Funktion von Colney getestet, wenn ich bei OnPlayerRequestClass
TogglePlayerSpectating(playerid, true); reinschreibe und beim Logindialog ei falsches Psswort eingebe lade ich am Nullpunkt, jeoch wen TogglePlayerSpectating(playerid, true); nicht vorhanen ist, steht nur dass das Passwort falsch ist.
Der Login Dialog
CodeAlles anzeigencase DIALOG_LOGIN: { new string[64]; if(!response)return Kick(playerid); if(strlen(inputtext) < 6 || strlen(inputtext) > 24) { format(string,sizeof(string),"{FFFFFF}Der Account {E8BD1A}%s {FFFFFF}wurde gefunden\nBitte gebe das Passwort ein",SpielerDaten[playerid][player_Name]); ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}Anmeldung",string, "{FFFFFF}Weiter", "{FFFFFF}Abbrechen"); } new query[256]; mysql_format(handle, query, sizeof(query), "SELECT * FROM `accounts` WHERE `name` = '%e' AND `passwort` = MD5('%e')",SpielerDaten[playerid][player_Name], inputtext); mysql_pquery(handle, query, "OnUserLogin", "d", playerid); TogglePlayerSpectating(playerid, false); return 1;
OnUserLogin
CodeAlles anzeigenCALLBACK: OnUserLogin(playerid) { new rows,string[500]; cache_get_row_count(rows); if(rows == 0) { format(string,sizeof(string), "Dieses Passwort ist falsch"); SendClientMessage(playerid,WEISS,string); ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}Anmeldung", "{FFFFFF}Um spielen zu können musst du dich einloggen", "{FFFFFF}Einloggen", "{FFFFFF}Abbrechen"); } else { cache_get_value_name_int(0, "id", SpielerDaten[playerid][player_ID]); cache_get_value_name_int(0, "adminrang", SpielerDaten[playerid][player_Admin]); cache_get_value_name_int(0, "whitelist", SpielerDaten[playerid][player_Whitelist]); cache_get_value_name_float(0, "x", SpielerDaten[playerid][player_Spawn][0]); cache_get_value_name_float(0, "y", SpielerDaten[playerid][player_Spawn][1]); cache_get_value_name_float(0, "z", SpielerDaten[playerid][player_Spawn][2]); cache_get_value_name_float(0, "r", SpielerDaten[playerid][player_Spawn][3]); cache_get_value_name_int(0, "interior", SpielerDaten[playerid][player_Interior]); cache_get_value_name_int(0, "welt", SpielerDaten[playerid][player_Welt]); SpawnPlayer(playerid); SpielerDaten[playerid][player_Eingeloggt] = true; format(string,sizeof(string),"{FFFFFF}Willkommen zurück, {ab258a}%s[%d]",SpielerDaten[playerid][player_Name],playerid); SendClientMessage(playerid,WEISS,string); new string1[128]; format(string1,sizeof(string1),"%s[%d] hat den Server betreten",SpielerDaten[playerid][player_Name],playerid); SendClientMessageToAll(WEISS,string1); } return 1; }
Ich denke mal @Kaliber und @LeonMrBonnie sind da Erfahrener als ich. Ich sehe da keinen Fehler. ![]()
Nimm das TogglePlayerSpectating(playerid, false) aus dem Login Dialog und Pack es stattdessen über das SpawnPlayer, bei der richtigen Passworteingabe im OnUserLogin Callback.
Moin!
Mein Server nimmt das OnUserRegister nicht an.
CALLBACK: OnUserRegister(playerid)
{
printf("Reg");
SpielerDaten[playerid][player_ID] = cache_insert_id();
SpielerDaten[playerid][player_Eingeloggt] = true;
SpielerDaten[playerid][player_Spawn][0] = 2090.5776;
SpielerDaten[playerid][player_Spawn][1] = 1743.2261;
SpielerDaten[playerid][player_Spawn][2] = 10.6719;
SpielerDaten[playerid][player_Spawn][3] = 348.7013;
SpielerDaten[playerid][player_Interior] = 0;
SpielerDaten[playerid][player_Welt] = 0;
TogglePlayerSpectating(playerid, false);
SpawnPlayer(playerid);
new string[128];
format(string,sizeof(string),"{FFFFFF}Text, {FE0000}%s[%d]",SpielerDaten[playerid][player_Name],playerid);
SendInfo(playerid,string);
return 1;
}
Alles anzeigen
Eigenartigerweise sehe ich den string, jedoch zeigt er dort wo die Farbe gesetztist eine andere Farbe an. Ich hab das Callback nur einmal im Script. Was ist da falsch?
MfG
Edit: Die Funktion wird jetztin der Console geprintet, jedoch wird ingameimmer noch die falsche Farbe angezeigt.
Edit2: Fehler gefunden, aber der Spawnbutton wird noch angezeigt bei der Registration. hab mal die Zeile TogglePlayerSpectating im Code eingefügt, siehe oben. Stimmt das so?
Edit3: Jetzt wird bei der Registrierung der Button nur kurz angezeigt weil ich vorhi de chat löschen lasse aber der Chat soll ganz weg sen mit dem Button, was muss ich da machen? Wenn ichbei der Registrierung das Passwort eingebe spawne ich nicht, sondern fliege durch die Luft, was kan da falsch sein?
So fliege ich durch die Luft: https://prnt.sc/p2sj2t
Edit4: Alles andere hat sich erledigt, nur folgendes pasiert immer noch:
Ich joine auf den Server un dann kommt diese Connectet to Meldungund der Spawn Button ganz kurz und dann wird der Chat geleert, und dann komt der Dialog für Register oder Login ohne Spawn Button. Wie bekomme ich diese Meldung und den Button weg?
Die Funktion ChatLoeschen steht bei OnPlayerConnect und bei OnPlayerRequestClass.
Moin, mir ist gerade was aufgefallen.
Ich habe versucht mit der Funktion [wiki]GetPlayerTargetActor[/wiki] zu arbeiten & sie arbeitet aber mit dem grünen Kegel über dem Kopf wenn man jemanden anvisiert.
Mein Helfer, hat warum auch immer, generell keinen grünen Kegel über seinem Kopf.. die Funktion greift nicht bei ihm.
Ich arbeite nun mit [wiki]GetPlayerCameraTargetActor[/wiki] und ja klar, das funktioniert, aber die Range beim Zielen ist um einiges größer, diese Funktion erfragt ja auch ob man ihn anschaut, nicht ob man ihn anvisiert.
Ist das jemanden schon einmal aufgefallen und gibt es dafür einen Fix/andere Methoden?
Es geht um ein Actor Rob Sytem, drauf zielen heißt, der Raub startet.
Alles anzeigenMoin, mir ist gerade was aufgefallen.
Ich habe versucht mit der Funktion [wiki]GetPlayerTargetActor[/wiki] zu arbeiten & sie arbeitet aber mit dem grünen Kegel über dem Kopf wenn man jemanden anvisiert.
Mein Helfer, hat warum auch immer, generell keinen grünen Kegel über seinem Kopf.. die Funktion greift nicht bei ihm.
Ich arbeite nun mit [wiki]GetPlayerCameraTargetActor[/wiki] und ja klar, das funktioniert, aber die Range beim Zielen ist um einiges größer, diese Funktion erfragt ja auch ob man ihn anschaut, nicht ob man ihn anvisiert.
Ist das jemanden schon einmal aufgefallen und gibt es dafür einen Fix/andere Methoden?
Es geht um ein Actor Rob Sytem, drauf zielen heißt, der Raub startet.
ich habe mich gerade ungelesen und anschließend soll die Funktion GetPlayerTargetActor(); unter folgendem callback nicht funktionieren:
OnPlayerUpdate,
OnPlayerKeyStateChange(Ausnahme du nutzt ein Timer da es sonst rum buggen soll wenn man die Taste gedrückt hält)
Ps: ich habe dies nicht ausprobiert sondern im Englischen Samp Forum gelesen.
//edit was mich wundert in der SAMP wiki wird das Beispiel auch im callback OnPlayerUpdate genutzt.