Ok Funktioniert nun, habe einfach den Primären schlüssel entfernt!
Beiträge von Kasakow
-
-
Guten Morgen,
Mein Name lautet CIBERKILLER.
Und zwar bräuchte ich mal eure Hilfe!
Ich habe ein Problem mit meinem Query.Die Log
Code[01:07:02] CMySQLHandler::Query(INSERT INTO `Gruppenfahrzeuge` (`gID`,`gX`,`gY`,`gZ`,`gA`,`gCM`,`gC1`,`gC2`) VALUES (1,2128.4402,-1117.6268,24.9398,250.6837,411,1,0)) - An error has occured. (Error ID: 1062, Duplicate entry '1' for key 'PRIMARY')Skript:
format(queryle, sizeof(queryle), "INSERT INTO `Gruppenfahrzeuge` (`gID`,`gX`,`gY`,`gZ`,`gA`,`gCM`,`gC1`,`gC2`) VALUES (%i,2128.4402,-1117.6268,24.9398,250.6837,%i,%i,%i)",
sStats[playerid][sGruppenID],gIn[0], gIn[1], gIn[2]);Mit freundlichen Grüßen,
CIBERKILLER.
-
Ja das hast du, @[NGD]Manne war aber schneller.
Vielen Dank, Funktioniert nun wie gewollt

-
Guten Abend,
Mein Name lautet CIBERKILLER.
Und zwar brauche ich mal eure Hilfe.Ich hab ein Problem bei dem Skripten von zwei anklickbaren Textdraw´s.
Die beiden Textdraws sind Parallel auf der Y Achse zueinander.
Das heißt im Klartext wenn ich auf Abbrechen klicke ganz normal, er bricht ab. Wenn ich auf Kaufen klicke passiert das selbe.
Textdraw[48] = TextDrawCreate(487.333435, 399.881744, "Kaufen");
TextDrawLetterSize(Textdraw[48], 0.814999, 1.828148);
TextDrawAlignment(Textdraw[48], 1);
TextDrawColor(Textdraw[48], -1);
TextDrawSetShadow(Textdraw[48], 0);
TextDrawSetOutline(Textdraw[48], 0);
TextDrawBackgroundColor(Textdraw[48], 51);
TextDrawFont(Textdraw[48], 0);
TextDrawSetProportional(Textdraw[48], 1);
TextDrawSetSelectable(Textdraw[48], true);Textdraw[49] = TextDrawCreate(325.666656, 398.222229, "Abbrechen");
TextDrawLetterSize(Textdraw[49], 0.664999, 1.765926);
TextDrawAlignment(Textdraw[49], 1);
TextDrawColor(Textdraw[49], -1);
TextDrawSetShadow(Textdraw[49], 0);
TextDrawSetOutline(Textdraw[49], 0);
TextDrawBackgroundColor(Textdraw[49], 51);
TextDrawFont(Textdraw[49], 0);
TextDrawSetProportional(Textdraw[49], 1);
TextDrawSetSelectable(Textdraw[49], true);Mit freundlichen Grüßen,
CIBERKILLER.
-
Ja das wollte ich dir gestern eigentlich noch machen
Machs mal so:
(Das ist nur ein Beispiel)
format(query, sizeof(query), "UPDATE `accounts` SET `geld`=zahl,blabla=wert",wert1,wert2);
format(query, sizeof(query), "%s,blabla2=wert,aha=wert WHERE `Name`='%s'",query, wert3, wert4, name);
print(query);
//Der Query sollte dann so aussehen:
UPDATE `accounts` SET `geld`=zahl,blabla=wert,blabla2=wert,aha=wert WHERE `Name`='%s
So kann du einen string anhängen, lass das ganze mal am ende printen (ist im beispiel) -
Überprüfe mal deine Recording-Dateien, ob diese auch richtig in den entsprechenden NPC-Skripts geladen werden, nicht das du da 2x die selben lädst

mfg.

Wir recht du hast (y)
Ich hatte auch bei Franz beim Recording "Sebastian" hingeschrieben!
Klappt nun wie gewollt

-
Nö eigentlich nicht, gestern gings ja auch noch
-
Guten Morgen,
Mein Name lautet CIBERKILLER.
Und zwar habe ich aktuell Problem mit Bot`s!
Gestern hat dieses Problem noch nicht bestanden.
Und zwar ist der Bot an einer ungewöhnlichen Stelle!
Er Spawnt neben einem anderen Bot
Hier mal ein Screen:

Qellcode:
//NPC/BOT
ConnectNPC("Sebastian", "Sebastian");
ConnectNPC("Franz", "Franz");public OnPlayerSpawn(playerid)
{
//NPC/BOT
if(IsPlayerNPC(playerid)){
if(!strcmp(GetName(playerid), "Sebastian", true)){
BotLabel[0] = Create3DTextLabel("Fahrlehrer: {FFFFFF}Sebastian", Gelb1, 0.0, 0.0, 0.0, 20.0, 0, 1);
Attach3DTextLabelToPlayer(BotLabel[0], playerid, 0.0, 0.0, 0.1);
SetPlayerSkin(playerid, 171);
}
else if(!strcmp(GetName(playerid), "Franz", true)){
SetPlayerSkin(playerid, 188),SetPlayerFacingAngle(playerid, 1.2410);
BotLabel[1] = Create3DTextLabel("Autopate: {FFFFFF}Franz", Gelb1, 0.0, 0.0, 0.0, 20.0, 0, 1);
Attach3DTextLabelToPlayer(BotLabel[1], playerid, 0.0, 0.0, 0.1);
}
return 1;
}
}Ich finde das leicht komisch, kann mir jemand bei dem Problem helfen?
Mit freundlichen Grüßen,CIBERKILLER.
-
Nein ich habe ihm gestern geholfen, Funktioniert nun wie gewollt

-
Vielen Dank, nun weiß ich bescheid welchen Variablen Typen ich für welchen Benutzen kann

-
Ah okay, vielen Dank endlich weis ich mal static so macht.
Ich hätte noch eine Frage zu einem anderen Variablen Typen, und zwar "const".
Also nach meinem Wissen ist der Variablen Typ const für eine Konstante Variable gedacht eine die man nicht manuell bearbeiten kann.
Oder irre ich mich da? -
Also Prinzipiell ist static für eine Zwischenspeicherung seines alten Wertes da ?
-
Guten Abend,
Mein Name lautet CIBERKILLER.
Und zwar bräuchte ich mal eine Erklärung von euch!Ich bräuchte eine Gewissheit für diese 2 Variablen Typen!
Also wie ich in der Wiki auf Englisch nachgelesen habe (Mein Englisch ist schlecht
), ist new für eine Globale Variable da und static für eine Lokale.
Aber was genau ist nun der unterschied zwischen new & static?Bringt einer der 2 Variablen Typen vorteile im gegensatz zum anderen oder wieso sollte es für mich einen Grund geben static zu verwenden?
z.B
Was wäre allgemein besser: static Float:pos[4]; oder new Float:pos[4];
Würde mich freuen wenn mir einer Gewissheit gibt
Mit freundlichen Grüßen,
CIBERKILLER.
-
Meld dich mal in meinem Teamspeak (5.175.226.136), ich kann dir dabei schnell helfen

-
Für so welche Fälle schreibt man sich Extra Funktionen
//Zum Geld addieren
stock GivePlayerMoneyEx(playerid, amount){
SetPVarInt(playerid, "geld", GetPVarInt(playerid, "geld") + amount );
GivePlayerMoney(playerid, amount);
}//Zum Geld setzen
stock SetPlayerMoneyEx(playerid, amount){
SetPVarInt(playerid, "geld", 0);
GivePlayerMoneyEx(playerid, amount);
}//Zum geld auslesen
stock GetPlayerMoneyEx(playerid)return GetPVarInt(playerid, "geld");//Der Timer den du irgendwo starten musst (optional)
SetTimerEx("@Timer", 1000, true, "i", playerid);//Der Timer an sich!
@Timer(playerid); @Timer(playerid){
if(GetPlayerMoney(playerid) > GetPlayerMoneyEx(playerid)){
//Geldcheat
}
return 1;
}Falls der Code Fehlerhaft dann tut es mir leid (ich bin grad noch im halbschlaf)
-
Also ich habe den TS Connector mal ausprobiert, bei mir bereitet er keine Probleme vor.
Ist der Server auf deinem Lokalen Rechner oder auf einem vServer/Rootserver ?
Denn wenn es der Fall ist dass er Lokal gestartet wird, musst du den Port 9987 bei deinen Routereinstellungen unter Portweiterleitung eintragen!
-
Gut, wie ist die Reihenfolge der Plugins ( welche werden zuerst geladen etc. )
Sofern mehrere nicht geladen werden müssen Plugins quasi 'verschoben'
werden, sprich X darf nich vor Y geladen werden usw.
Was faselst du da
Die Reihenfolge ist unrellevant
-
Vielen Dank scheint nun zu Funktionieren!
-
bitte
Kaliber das war ein Beispiel mit 4 Namen.
Es können insgesamt 495 gleichzeitige Tickets abgesendet werden.
Aktuell Funktioniert es nicht!for(new i,tmp[MAX_PLAYER_NAME];i<GetMaxPlayers();i++)
{
if(!IsPlayerConnected(i))continue;
if(IsPlayerNPC(i))continue;
if(!sStats[i][Eingeloggt])continue;
if(!GetPVarInt(i, "JustReport"))continue;
GetPVarString(i, "ticketinput", in, 72);
GetPlayerName(d_Namen[i],tmp,MAX_PLAYER_NAME);
format(string, sizeof(string), "{FFFFFF}Author: %s | Inhalt: %s\n%s", tmp, in, string);
count ++;
}Das ist mein Jetziger Code, also der Richtige name in der Liste wird angezeigt auch der Richtige Inhalt.
Nur wenn ich drauf klicke passiert nichts!Ich lasse d_Namen so zuweisen!
d_Namen[playerid] = playerid;
Dies wird in /support zugewiesen, aber ich finde was ich da geschrieben macht kein Sinn!
new tmp_id = d_Namen[listitem];
-
Alles anzeigen
Schau:
//Du machst oben in dein Skript:
new d_Namen[4];//Dann weißt du der Variable die IDs von den Spielern zu, die du haben willst:
d_Namen[0] = 5; //Also hier hätten wir jetzt Spielerid 5 mit drinnen..usw//Dann da wo du deinen Dialog anzeigen willst:
for(new i,tmp[MAX_PLAYER_NAME]; i<sizeof d_Namen; i++) {
GetPlayerName(d_Namen[i],tmp,MAX_PLAYER_NAME);
//Hier formatierst du alles zu einem String und zeigst dann die Namen im Dialog an
}//Und dann unter OnDialogResponse
if(dialogid == DIALOG_TICKETS) {
if(listitem >= sizeof d_Namen || !response) return 1;
new tmp_id = d_Namen[listitem];
if(!IsPlayerConnected(tmp_id))return SendClientMessage(playerid, HellRot, "...");
if(!GetPVarInt(tmp_id, "JustReport"))return SendClientMessage(playerid, HellRot, "FEHLER:{FFFFFF} ...");
if(tmp_id==playerid)return SendClientMessage(playerid, HellRot, "FEHLER:{FFFFFF} ...");
}mfg.

Bist du dir Sicher das dass hier Richtig ist ?
for(new i,tmp[MAX_PLAYER_NAME]; i<sizeof d_Namen; i++) {
GetPlayerName(d_Namen[i],tmp,MAX_PLAYER_NAME);
}Soweit mir bekannt ist der 1. Parameter von GetPlayerName (playerid). Und du benutzt da d_namen[i]
Beziehungsweise d_namen kann ja auch als Feldervariable genutzt werden..
Aber du lässt das ganze ja in tmp ausgeben, dass lässt sich dann nicht einfach mit d_namen wieder auslesen.
Muss das ganze dann nicht so aussehen ?
for(new i; i<GetMaxPlayers(); i++) {
GetPlayerName(i,d_namen[i],MAX_PLAYER_NAME);
}sizeof(d_namen); sollte auch gehen solange genügend Felder erlaubt sind
Ich bitte um Antwort