Von samp sind max 128
Seit wann denn das? In Dialogen gibt es ein Limit für den Info Teil von 2048 Zeichen seit 0.3x.
strcar gibts ne wiki?
Mfg,
UncleSub
Von samp sind max 128
Seit wann denn das? In Dialogen gibt es ein Limit für den Info Teil von 2048 Zeichen seit 0.3x.
strcar gibts ne wiki?
Mfg,
UncleSub
und der Compiler zeigt mir überall einen tag mismatch an
Musst auch statt
new Text:textdrawname[MAX_PLAYERS];
new PlayerText:textdrawname[MAX_PLAYERS];
Und halt alle Textdraws auch mit dem neuem Tag versehen.
Mfg,
UncleSub
Das sollte so nicht stimmen. Wie oben schon mehrmals erwähnt, musst du das PlayerWeapon Array global definieren. Du solltest dir also erstmal den Unterschied zwischen globalen und lokalen Variablen klar machen.
Globale Variablen:
Sie stehen außerhalb von irgendwelchen Funktionen, vorzugsweise ganz Oben im Script.
Sie können in allen Funktionen benutzt werden.
Lokale Variablen:
Sie stehen in einer Funktion, oder in einem Teil einer Funktion (auch if, for, while,...).
Sie können nur in dem Teil, in dem die Variable deklariert wurde benutzt werden. Außerdem werden sie nach Beendigung der (Teil-) Funktion automatisch gelöscht.
Mfg,
UncleSub
//Edit:
Außerdem geht das
GivePlayerWeapon(playerid, PlayerWeapon[playerid][..][0], PlayerWeapon[playerid][..][1]); // Stimmt das?
nicht.
Du musst die Waffen in einer Schleife (z.B. for Schleife) speichern und laden / geben.
Das sogenannte "learning by doing".
Kann ich nur empfehlen. Klingt zwar nicht viel Versprechend, ist es aber.
Ich habe mir damals alle MrMonat Tutorials angeguckt, wobei ich ehrlich gesagt nichts verstanden habe und nur abgeschrieben habe.
--> Deshalb fang ein Gamemode an und Scripte einfach. Egal wie scheiße das Gamemode wird, nicht aufgeben und weiter probieren. Irgendwann kommt das Verstehen von ganz alleine
(Ich habe bestimmt 20 Gamemodes angefangen und alle verworfen)
Lesen?
Ähm naja:
ZitatIf you are looking for crime report sound IDs, check here.
Quelle: http://wiki.sa-mp.com/wiki/SoundID
ZitatTo be used with PlayCrimeReportForPlayer
Quelle: http://wiki.sa-mp.com/wiki/Crime_List
1. PlayCrimeReportForPlayer (Für PlayerPlaySound müsstest du übrigens 0.0, 0.0, 0.0 als Position verwenden.)
Mfg
Schau dir diese Funktionen an:
1. PlayCrimeReportForPlayer (Für PlayerPlaySound müsstest du übrigens 0.0, 0.0, 0.0 als Position verwenden.)
2. Attach3DTextLabelToPlayer
Obwohl ich dir beim zweiten Problem Player3DTextLabel empfehlen kann, weil du so steuern kannst, wer das Label sieht.
Mfg,
UncleSub
Und das eine Variable keinen RAM bei dem auf 0 setzen benötigt ist falsch!
Hat niemand Behauptet.
immer da und nicht löschbar
Stimmt nicht ganz. Mit dem oben genannten Include ist es möglich.
Mfg
Wenn es Lokale Variablen sind, werden sie automatisch, nachdem die Funktion oder der Teil einer Funktion (z.B. if Statements, Schleifen) ausgeführt wurde, gelöscht.
Globale Variablen würde ich wie oben beschrieben auf 0 setzen, die Memory Nutzung sollte dann sehr gering sein.
Wenn du Ahnung vom Werk hast und DRINGEND Variablen löschen willst, könntest du Y_Less malloc Include verwenden. (NUR WENN DU AHNUNG HAST)
Mfg
Wenn sind das Programmierer.
Keine Scripter
Hast du natürlich Recht, doch ich würde sagen, dass sie gerade dadurch, dass sie Programmierer sind, auch die Besten Scripter sind.
Kalcor
Y_Less
Blue_G
Gamer_Z
Das sind die wahren Meister.
Du musst eine Schleife (z.B. for Schleife) machen, die alle Fahrzeuge durchgeht (MAX_VEHICLES). In dieser Schleife musst du dann abfragen, ob sich ein Fahrzeug beim Tow Truck befindet. Dies machst du, indem du die Position des Spielers mit jeder Position der Fahrzeuge in der Schleife vergleichen.
Könnte so aussehen:
if((floatabs(PLAYERPOSX-VEHICLEAUSSCHLEIFEX)<7.0)&&(floatabs(PLAYERPOSY-VEHICLEAUSSCHLEIFEY)<7.0)&&(floatabs(PLAYERPOSZ-VEHICLEAUSSCHLEIFEZ)<7.0)&&(VEHICLEAUSSCHLEIFE!=GetPlayerVehicleID(playerid)))
Wenn dies zutrifft, nutzt du AttachTrailerToVehicle, um das Fahrzeug anzuhängen.
Falls du noch Fragen hast, immer her damit.
Mfg,
UncleSub
Plugins nein, nur Includes sind erlaubt.
Darf ich Fragen, wieso? Ich habe jetzt zum Beispiel für die Qualifikation ein Deathmatch Script begonnen. Dafür nutze ich aber MySQL, was ebenfalls ein Plugin ist. Wäre so etwas gestattet? Wie sähe es mit dem sscanf Plugin aus?
Mfg
WinRar benutzt die AES-128 Verschlüsselung. AES ist sehr sicher, je nach dem, wie lang und ausgefallen dein Passwort ist.
Das Passwort zu knacken dauert dementsprechend, je nach Passwort,Sekunden - Minuten - Stunden - Jahre.
Bsp.:
Password Length - Single User Attack - Organization Attack
1 - 2 s - 1 s
2 - 1 min - 1 s
3 - 30 min - 1 s
4 - 12 hours - 1 s
5 - 14 days - 1 s
6 - 1 year - 1 s
7 - 10 years - 1 s
8 - 19 years - 20 s
9 - 26 years - 9 min
10 - 37 years - 4 hours
11 - 46 years - 4 days
12 - 55 years - 4 months
13 - 64 years - 4 years
14 - 73 years - 13 years
15 - 82 years - 22 years
16 - 91 years - 31 years
17 - 100 years - 40 years
Alles anzeigen
Aus der 7Zip Hilfe
Mfg,
UncleSub
Ich erkläre es dir noch einmal.
Per-player variables (PVars) werden nach dem Disconnect eines Spielers automatisch resetet. Du musst nichts machen.
Du kannst das auch hier nachlesen, falls du mir nicht glaubst: Klick mich.
Mfg
Die PVar soll wieder auf 0 gesetzt werden nach dem Logout.
Gruß
Ist nicht nötig, da sie sowieso nach dem Logout resetet wird.
Mfg
Du musst PVar's nicht löschen oder auf 0 setzen, da diese nachdem OnPlayerDisconnect ausgeführt wurde automatisch gelöscht werden.
Mfg,
UncleSub
if(sscanf(params,"ud",params)) return SendClientMessage(playerid, ROT, "Benutzung: /cuff [ID]");
Zu
if(sscanf(params,"u",params)) return SendClientMessage(playerid, ROT, "Benutzung: /cuff [ID]");
Ändern.
Mfg,
UncleSub
Ich weiß nicht, ob dein Problem noch besteht, aber so wie ich den Code sehe sollte es noch nicht klappen. Ich kommentier dir mal weshalb es wahrscheinlich nicht klappt:
for(new id; id < MAX_FCARS; id++)
{
new str[520];
format(str,sizeof str,"SELECT * FROM `fraccars`"); //Musst das gar nicht formatieren, da keine Parameter eingefügt werden müssen
mysql_query(str); //Es wird 250 mal ein query (so viele cars sind wahrscheinlich nicht in der datenbank) ausgeführt und immer alles von fraccars geladen.
mysql_store_result();
mysql_fetch_row(str); //Es wir immer nur die erste Zeile "gefetcht"
sscanf(str,"p<|>{i}ddffffs[12]dd",FCarInfo[id][fFrak],FCarInfo[id][fModel],FCarInfo[id][fX],FCarInfo[id][fY],
FCarInfo[id][fZ],FCarInfo[id][fR],FCarInfo[id][fPlate],FCarInfo[id][fC1],FCarInfo[id][fC2]);
mysql_free_result();
//////
new dad = CreateVehicle(FCarInfo[id][fModel],FCarInfo[id][fX],FCarInfo[id][fY],FCarInfo[id][fZ],FCarInfo[id][fR],FCarInfo[id][fC1],FCarInfo[id][fC2],-1);
SetVehicleNumberPlate(dad,FCarInfo[id][fPlate]);
printf("||>>|| F-Car Sys ||<<|| Frak %d Model %d Pos: %f,%f,%f,%f Plate: %s Color: %d, %d wurde geladen",FCarInfo[id][fFrak],FCarInfo[id][fModel],FCarInfo[id][fX],FCarInfo[id][fY],
FCarInfo[id][fZ],FCarInfo[id][fR],FCarInfo[id][fPlate],FCarInfo[id][fC1],FCarInfo[id][fC2]);
}
Du solltest das ganze nicht mit einer for Schleife angehen. Ich empfehel dir eine while Schleife. Mit dieser Methode wird auch nur ein Query ausgeführt, weshalb das ganze auch noch Ressourcenschonend ist.
Bsp.:
new str[520], car_count = 1;
mysql_query("SELECT * FROM `fraccars`");
mysql_store_result();
while(mysql_fetch_row(str))
{
sscanf(str,"p<|>{i}ddffffs[12]dd",FCarInfo[car_count][fFrak],FCarInfo[car_count][fModel],FCarInfo[car_count][fX],FCarInfo[car_count][fY],
FCarInfo[car_count][fZ],FCarInfo[car_count][fR],FCarInfo[car_count][fPlate],FCarInfo[car_count][fC1],FCarInfo[car_count][fC2]);
new dad = CreateVehicle(FCarInfo[car_count][fModel],FCarInfo[car_count][fX],FCarInfo[car_count][fY],FCarInfo[car_count][fZ],FCarInfo[car_count][fR],FCarInfo[car_count][fC1],FCarInfo[car_count][fC2],-1);
SetVehicleNumberPlate(dad,FCarInfo[car_count][fPlate]);
printf("||>>|| F-Car Sys ||<<|| Frak %d Model %d Pos: %f,%f,%f,%f Plate: %s Color: %d, %d wurde geladen",FCarInfo[car_count][fFrak],FCarInfo[car_count][fModel],FCarInfo[car_count][fX],FCarInfo[car_count][fY],
FCarInfo[car_count][fZ],FCarInfo[car_count][fR],FCarInfo[car_count][fPlate],FCarInfo[car_count][fC1],FCarInfo[car_count][fC2]);
car_count++;
}
mysql_free_result();
Mfg,
UncleSub
#define SetPlayerPosA(%0,%1,%2,%3,%4) SetPlayerPos(%0,%1,%2,%3); SetPlayerFacingAngle(%0,%4)
Versuch es mal so
Die Klammern waren unnötig und du hast am ende von FacingAngle auch noch ein Semikolon, obwohl es bei SetPlayerPosA nicht war
Danke hat funktioniert. Das mit den Klammern hatte ich auch mal ohne, aber ich hab einfach mal ein paar Sachen ausprobiert. War wohl das Semikolon.
Danke.
Hallo zusammen,
ich habe mich mal mit dem Pre-Processor auseinander gesetzt und wollte ein kleines Makro basteln. Leider kommt es dabei zu errors.
Hier das Makro:
#define SetPlayerPosA(%0, %1, %2, %3, %4) SetPlayerPos((%0), (%1), (%2), (%3)); \
SetPlayerFacingAngle((%0), (%4));
Ich hatte das ganze auch schon mal so, hat aber auch nichts gebracht.:
#define SetPlayerPosA(%0, %1, %2, %3, %4) { SetPlayerPos((%0), (%1), (%2), (%3)); SetPlayerFacingAngle((%0), (%4));}
Es kommt zu folgenden Errors:
warning 236: unknown parameter in substitution (incorrect #define pattern)
warning 236: unknown parameter in substitution (incorrect #define pattern)
unknown parameter in substitution (incorrect #define pattern)
warning 236: unknown parameter in substitution (incorrect #define pattern)
warning 236: unknown parameter in substitution (incorrect #define pattern)
warning 236: unknown parameter in substitution (incorrect #define pattern)
warning 236: unknown parameter in substitution (incorrect #define pattern)
warning 236: unknown parameter in substitution (incorrect #define pattern)
error 029: invalid expression, assumed zero
warning 215: expression has no effect
error 029: invalid expression, assumed zero
warning 215: expression has no effect
error 029: invalid expression, assumed zero
fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
Alles anzeigen
Weiß jemand weiter?
Mfg,
UncleSub