Mache die Anpassungen, die ich oben gepostet habe.
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
So , ich begebe mich jetzt ran an mein Projekt.
Ich habe ein Team-Deathmatch worin es ebenfalls darum geht das Bett eines Gegnerteams zu vernichten.
Das Hauptziel besteht darin das Bett als erstes zu vernichten, und dannach die Spieler des Gegnerteams zu vernichten.
3 Bots sollen als Team fungieren, und jedes Team soll eine gewisse Rollenverteilung haben.
Diese 3 Bots sollen zwischen verschiedenen Optionen abwägen, bspw. ob es wichtiger ist das Bett zu vernichten, oder die Spieler, oder ob das Team offensiv, oder defensiv sein soll.Gibt es da Tipps wie ich das scripttechnisch am besten angehe?
Ich rechne da schon mit einem 10000 Zeilen Trümmer mit Schach-Engine ähnlichem Aufbau ( Werde ich mir mal von Stockfisch abkucken)Das hier habe ich mal gefunden was ich als Fundament nehme https://forum.sa-mp.com/showthread.php?t=504181
Kaliber hat mir noch den Thread hier verlinkt, auch nochmal danke dafuer.
-
Beitrag von ReborN ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Hatte einen Denkfehler drin (). -
Kannst du uns mal Beispiel Koordinaten geben, bzw die die du verwendest.
Sonst ist das schwer zu reproduzieren, was du da machst

-
Hey,
Ich stehe gerade voll auf den schlauch frage mich gerade warum

Also man sollte einmalig den Waffenpreis Bezahlen was wäre z.b bei der Desert Eagle 1500
bei dieser Waffe sind pro Schuss 20$.So wen ich jetzt eine kaufe z.b eine Desert Eagle mit 20 Schuss wären das 1900$
Aber ich komme immer auf 30.000 kann mir einer sagen warum das so ist.C
Alles anzeigencase DIALOG_BUYGUN_DEAGLE_AMMO: { if(response) { new string[128]; new ammo = strval(inputtext); new preis = GunPrice[3][0]*ammo; if(GetMoney(playerid) < preis)return SendClientMessage(playerid, COLOR_WHITE, ERROR_MONEY); if(Biz[1][bProdukte] < 1)return GameTextForPlayer(playerid, "~r~Ausverkauft", 5000, 1); if(strfind(inputtext, "-", true) != -1)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}ERROR"); if(ammo <= 0){ SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du musst einen Wert zwischen 1 und 500 auswählen!"); } if(ammo > 500){ SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du musst einen Wert zwischen 1 und 500 auswählen!"); } GiveMoney(playerid, -preis); GiveWeapon(playerid, 24, ammo); Biz[1][bKasse] += preis; Biz[1][bProdukte] --; UpdateBizLabel(1, Biz[1][bOwned]); format(string, sizeof(string), "{33AA33}Du hast eine Desert Eagle mit %d Munition für %d$ gekauft", ammo, preis); SendClientMessage(playerid, COLOR_WHITE, string); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); } }Munitions Preise:
//E:
Fehler gefunden habe es so gemacht:
new preis = GunPrice[3][0] + MunitionPrice[3][0]*ammo;
-
Hallo komme nicht weiter bin neu in MySQL
enum eGeschenke
{
ID,
Float:GeschenkX,
Float:GeschenkY,
Float:GeschenkZ,
Erstellt,
Ersteller[MAX_PLAYER_NAME],
Object,
Label
};
new Geschenke[MaxGeschenke][eGeschenke];ID, Float:GeschenkX, Float:GeschenkZ, Float:GeschenkZ, Erstellt, Ersteller möchte ich in der Datenbank speichern die Tabelle habe ich schon erstellt.
stock SaveGeschenke()
{
print("SaveGeschenke wurde aufgerufen.");
for(new i = 0; i < MaxGeschenke; i++)
{
print("SaveGeschenke | Schleife wurde aufgerufen");
new query[256];
mysql_format(handle, query, sizeof(query), "INSERT INTO geschenke (id, x, y, z, erstellt, ersteller) VALUES ('%d', '%f', '%f', '%f', '%d', '%e'", Geschenke[i][ID], Geschenke[i][GeschenkX], Geschenke[i][GeschenkY], Geschenke[i][GeschenkZ], Geschenke[i][Erstellt], Geschenke[i][Ersteller]);
mysql_pquery(handle, query, "OnGeschenkErstellt","d","");
}
}ocmd:save(playerid,params[])
{
SaveGeschenke();
return 1;
}Doch es passiert nix
-
Wird denn etwas in den MySQL Log geschrieben?
Werden die beiden Prints in der Funktion auch aufgerufen? -
Das ding ist
in "OnGeschenkErstellt"
habe ich nix stehen weiß nicht was dort rein muss ist mir gerade aufgefallen das es leer ist
//Edit
[16:22:35] SaveGeschenke wurde aufgerufen.
[16:22:35] SaveGeschenke | Schleife wurde aufgerufen
[16:22:35] SaveGeschenke | Schleife wurde aufgerufen
[16:22:35] SaveGeschenke | Schleife wurde aufgerufen
[16:22:35] SaveGeschenke | Schleife wurde aufgerufen
[16:22:35] SaveGeschenke | Schleife wurde aufgerufen
[16:22:35] SaveGeschenke | Schleife wurde aufgerufen
[16:22:35] SaveGeschenke | Schleife wurde aufgerufen
[16:22:35] SaveGeschenke | Schleife wurde aufgerufen -
Den "OnGeschenkErstellt" Callback kannst du dir sparen, da du den (denke ich mal) nicht brauchst.
Ändere dafür einfach Zeile 9 zu dem:
mysql_pquery(handle, query);Dazu immernoch dei Frage; Wird etwas in den MySQL Log geschrieben?
-
beim einmal aufrufen von SaveGeschenke() kommt
[13:58:27] [plugins/mysql] error #1064 while executing query "INSERT INTO geschenke (id, x, y, z, erstellt, ersteller) VALUES ('0', '1959.378296', '1344.157227', '15.374607', '1', 'Abbas'": You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
[13:58:27] [plugins/mysql] error #1064 while executing query "INSERT INTO geschenke (id, x, y, z, erstellt, ersteller) VALUES ('0', '0.000000', '0.000000', '0.000000', '0', ''": You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
[13:58:27] [plugins/mysql] error #1064 while executing query "INSERT INTO geschenke (id, x, y, z, erstellt, ersteller) VALUES ('0', '0.000000', '0.000000', '0.000000', '0', ''": You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
[13:58:27] [plugins/mysql] error #1064 while executing query "INSERT INTO geschenke (id, x, y, z, erstellt, ersteller) VALUES ('0', '0.000000', '0.000000', '0.000000', '0', ''": You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
[13:58:27] [plugins/mysql] error #1064 while executing query "INSERT INTO geschenke (id, x, y, z, erstellt, ersteller) VALUES ('0', '0.000000', '0.000000', '0.000000', '0', ''": You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
[13:58:27] [plugins/mysql] error #1064 while executing query "INSERT INTO geschenke (id, x, y, z, erstellt, ersteller) VALUES ('0', '0.000000', '0.000000', '0.000000', '0', ''": You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
[13:58:27] [plugins/mysql] error #1064 while executing query "INSERT INTO geschenke (id, x, y, z, erstellt, ersteller) VALUES ('0', '0.000000', '0.000000', '0.000000', '0', ''": You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
[13:58:27] [plugins/mysql] error #1064 while executing query "INSERT INTO geschenke (id, x, y, z, erstellt, ersteller) VALUES ('0', '0.000000', '0.000000', '0.000000', '0', ''": You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1 -
-
Du hast ganz am Ende des Querys ein ) vergessen.
-
Du hast ganz am Ende des Querys ein ) vergessen.
Hä wo ?
-
Hä wo ?
"INSERT INTO geschenke (id, x, y, z, erstellt, ersteller) VALUES ('%d', '%f', '%f', '%f', '%d', '%e')"
-
-
Wann sollte man CreateVehicle benutzen und wann AddStaticVehicle?
-
Wann sollte man CreateVehicle benutzen und wann AddStaticVehicle?
Was ich noch von damals weiß das AddStaticVehicle nur bei OnGameModeInit bzw. FilterScriptInit funktioniert hat. Wie eben auch schon der Name sagt "Static"
d.h dass du während der Laufzeit kein Statische Vehicle erstellen kannst was hingegen mit CreateVehicle funktioniert.
CreateVehicle kann jederzeit verwendet werden und wird auch meist bei "Vehicle-Spawn"-Cmds verwendet um es einer Variable o.ä zuweisen zu können (Während der Laufzeit halt ^^) -
AddStaticVehicle?
damit kannst du auch Züge erstellen
-
Hallo!
Woran kann es liegen, dass der Compiler ewig braucht zu compilen wenn ich folgendes ins Script einfüge?
MfG
public OnPlayerText(playerid, text[])
{
new message[128];
if(text[0] == '$')
{
if(iPAA(playerid,2))return rangniedrig;
if(!text[1]) return SCM(playerid, ROT,"$ [Text]"),0;
format(message, sizeof(message), "(([Adminchat] %s: %s ))", SpielerDaten[playerid][pName],text[1]);
return SAM(ROT,message),0;
}
new message1[128];
if(text[0] == '§')
{
if(iPAA(playerid,1))return rangniedrig;
if(!text[1]) return SCM(playerid, ROT,"§ [Text]"),0;
format(message1, sizeof(message1), "(([Helferchat] %s: %s ))", SpielerDaten[playerid][pName],text[1]);
return SAM(HGREEN,message1),0;
}
new message2[128];
format(message2, sizeof(message2), "{969696}%s sagt: {FFFFFF}%s", SpielerDaten[playerid][pName], text);
return ProxDetector(7.0, playerid, message2, WEISS,WEISS,WEISS,WEISS,WEISS),0;
}public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
{
if(iPAA(playerid,4))return rangniedrig;
SetPlayerPosFindZ(playerid, fX, fY, fZ);
return 1;
} -
Wie hast du denn rangniedrig definiert?
-
#define rangniedrig SCM (playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl.")
Dasliegt in der defindes.inc
-