const MAX_PLAYER_CARS = 2;
for(new i=0;i < sizeof MAX_PLAYER_CARS;i++)
Kann mir einer sagen warum er an der Stelle den Fehler
error 039: constant symbol has no size
ausgibt, trotzdem ich oben doch eine Wertzuweisung mache.
const MAX_PLAYER_CARS = 2;
for(new i=0;i < sizeof MAX_PLAYER_CARS;i++)
Kann mir einer sagen warum er an der Stelle den Fehler
error 039: constant symbol has no size
ausgibt, trotzdem ich oben doch eine Wertzuweisung mache.
mach es ohne sizeof.
Sizeof macht nur bei Arrays Sinn
mach es ohne sizeof.
Sizeof macht nur bei Arrays Sinn
Habe ich schon getan, dennoch:
Kannst du mir auch erklären warum das so nicht geht? Dann kann ich es mir besser verinnerlichen
Warum der fehler ohne sizeof auch kommt oder was möchtest du wissen?
Nein ohne sizeof geht alles, eher warum er mit sizeof kommt.
Ich verstehe die Zeile so
i ist gleich 0, Rechne ab 0 bis zur Größe von MAX_PLAYER_CARS,Zähle einen hoch in jedem Durchlauf
sizeof gibt die Größe des Arrays zurück.
Da deine Konstante kein Array ist, kann sizeof auch keinen Wert zurückgeben
Das heisst das z.B. eine Variable in der ich später meinen Dateipfad hinneinlege, quasi mit z.B. save[40] schon ein Array ist und nicht wie ich annahm ein string?
Guten Tag!
Wie kann man es mit ocmd machen, dass z.B. "/ooc" und "/o" den gleichen Befehl meinen.
Ich hoffe ihr versteht was ich meine.
LG
Re3pEr
Jeder String ist prinzipiell ein Array und jeder Array ist prinzipiell ein String,
denn in PAWN werden die Zeichen einzeln gespeichert und wie Zahlen nach den ASCII-Code behandelt.
Sprich
new Test[6] = "Hallo";
ergibt
Test[0] -> 'H' -> 72
Test[1] -> 'a' -> 97
Test[2] -> 'l' -> 108
Test[3] -> 'l' -> 108
Test[4] -> 'o' -> 111
Test[5] -> '\0' -> ende des Strings
Das heißt
du könntest deinen string so erstellen
Test[0] = 72;
Test[1] = 97;
Test[2] = 108;
Test[3] = 108;
Test[4] = 111;
das ergibt nachher das
Test -> Hallo
Hey Leute,
bräuchte auch mal eure Hilfe
Kurz & Knapp: Hab einen Befehl für Cops gemacht:
if(strcmp(cmd, "/sirene", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(IsACop(playerid))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Staats Mitglied!");
{
AttachObjectToVehicle(18646,vehicleid,0.0,0.0,0.0,0.0,0.0,0.0);#
}
}
return 1;
}
Hier der Sireneaus Befehl:
if(strcmp(cmd, "/sireneaus", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(IsACop(playerid))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Staats Mitglied!");
{
DestroyObject(
}
}
return 1;
}
Wie ihr seht komm ich bei DestroyObject nicht weiter... Da steht objectid, soll ich dann hinschreiben 18646?
Setze die Objectid in einer Variable.
new blub;
blub = CreateObject..
AttachObjectToVehicle..
Weiteres Prob
new sirene = CreateObject(18646,0.0,0.0,0.0,0.0,0.0,0.0,0.0); // Stand so im Wiki.. :D
P.S: Weis jemand zufällig die X,Y,Z Koords damit sich das Object immer ans Auto anpasst?
Trotz dass ich sirene definiert hab, sagt er mir immer:
Zeile (35181) : Unbekannte Variable : "sirene"
Zeile: DestroyObject(sirene);
MfG
Wo hast du denn die Zeile, in der du die Sirene erstellst, in dein Script eingefügt?
Alles anzeigenWeiteres Prob
new sirene = CreateObject(18646,0.0,0.0,0.0,0.0,0.0,0.0,0.0); // Stand so im Wiki.. :D
P.S: Weis jemand zufällig die X,Y,Z Koords damit sich das Object immer ans Auto anpasst?
Trotz dass ich sirene definiert hab, sagt er mir immer:
Zeile (35181) : Unbekannte Variable : "sirene"
Zeile: DestroyObject(sirene);
MfG
Mach das new sirene; oben hin.
Stimme Reloadet zu und ann einfach unter public OnGameModeInit() sirene = CreateObject...
Du darfst das hier:
new sirene = CreateObject(18646,0.0,0.0,0.0,0.0,0.0,0.0,0.0); // Stand so im Wiki.. :D
nicht frei im script rumwirren lassen du musst also jedem Commando einem Public zuweisen. soll das Object Created werden sobald das Gamemode geladen wird musst du es so machen wie DeadHole schon gesagt hatte.
richtig wäre also
public irgendeinpublic()
{
new sirene = CreateObject(18646,0.0,0.0,0.0,0.0,0.0,0.0,0.0); // Stand so im Wiki.. :
}
du kannst es z.B. auch unter OnPlayerConnect machen. Dann wird das ausgeführt wenn ein Spieler Connected. (Auch wenn das in dem Falle kein Sinn macht ;))
new string2[10],nummernschild[10+ MAX_PLAYER_NAME];strmid(string2,name, 0,2);format(nummernschild,sizeof(nummernschild),"LS-%s-%d",string2,vehicleid);
Ich wollte die Nummernschilder so aussehen lassen: LS-XX-YY
Das XX steht für die ersten beiden Zeichen des Namens des Fahrzeugbesitzers. Jedoch will ich die Buchstaben groß schreiben lassen. Gibt es eine Möglichkeit dies bei der Formatierung anzugeben?
wie wäre es mit toupper?
Ich habe eine kleine Frage
Ich möchte gerne ein "Handy" wie bei GTA IV auf meinem Server mit Texturen machen. Es gibt ja einen Textdraw Editor von Zamaroth im Englischem Forum.
Um erstmal eine Handytextur zu bekommen, muss man ja erst eine erstellen. Dafür habe ich TXDWORKSHOP 4.5 benutzt. Das Filterscript lädt dann die .txd aus dem Ordner "SAMP" im GTA Ordner.
Frage: Seh ich dann nur das Handy wenn ich alles einbaue oder wird das dann für alle geladen?
Ich hab ein Problem mit ShowPlayerDialog:
Wieso geht das nicht?:
dcmd_stats(playerid,params[]) {
new string[128], pDeaths, player1, h, m, s;
if(!strlen(params)) player1 = playerid;
else player1 = strval(params);
if(IsPlayerConnected(player1)) {
TotalGameTime(player1, h, m, s);
if(PlayerInfo[player1][Deaths] == 0) pDeaths = 1; else pDeaths = PlayerInfo[player1][Deaths];
format(string, sizeof(string), "{00B9FF} %s's Stats: \nKills: %d \nDeaths: %d \nScore: %d \nRatio: %0.2f \nMoney: $%d \nTime: %d hrs %d mins %d secs",PlayerName2(player1), PlayerInfo[player1][Kills], PlayerInfo[player1][Deaths],GetPlayerScore(player1), Float:PlayerInfo[player1][Kills]/Float:pDeaths,GetPlayerMoney(player1), h, m, s);
return ShowPlayerDialog(playerid, 98771, DIALOG_STYLE_MSGBOX, "{00B9FF}Stats", string, "ok", "ok");
} else return SendClientMessage(playerid, red, "Player Not Connected!");
}
Mit SendClientMsg gehts doch auch!:
dcmd_stats(playerid,params[]) {
new string[128], pDeaths, player1, h, m, s;
if(!strlen(params)) player1 = playerid;
else player1 = strval(params);
if(IsPlayerConnected(player1)) {
TotalGameTime(player1, h, m, s);
if(PlayerInfo[player1][Deaths] == 0) pDeaths = 1; else pDeaths = PlayerInfo[player1][Deaths];
format(string, sizeof(string), "| %s's Stats: Kills: %d | Deaths: %d | Score: %d | Ratio: %0.2f | Money: $%d | Time: %d hrs %d mins %d secs |",PlayerName2(player1), PlayerInfo[player1][Kills], PlayerInfo[player1][Deaths],GetPlayerScore(player1), Float:PlayerInfo[player1][Kills]/Float:pDeaths,GetPlayerMoney(player1), h, m, s);
return SendClientMessage(playerid, green, string);
} else return SendClientMessage(playerid, red, "Player Not Connected!");
}