[SAMMELTHREAD] Kleine Scripting Fragen

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
  • 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.

    "Dem wird befohlen, der sich nicht selbst gehorchen kann" - Friedrich Nietzsche

  • 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 :)

    "Dem wird befohlen, der sich nicht selbst gehorchen kann" - Friedrich Nietzsche

  • 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

    "Dem wird befohlen, der sich nicht selbst gehorchen kann" - Friedrich Nietzsche

  • sizeof gibt die Größe des Arrays zurück.
    Da deine Konstante kein Array ist, kann sizeof auch keinen Wert zurückgeben

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • 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?

    "Dem wird befohlen, der sich nicht selbst gehorchen kann" - Friedrich Nietzsche

  • 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

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • 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?

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • Setze die Objectid in einer Variable.


    new blub;
    blub = CreateObject..
    AttachObjectToVehicle..

  • Weiteres Prob :D



    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

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • Wo hast du denn die Zeile, in der du die Sirene erstellst, in dein Script eingefügt?

    Die besten Zitate aus dem sa-mp.de Forum

    Zitat

    -Wenn hier die sache nicht drine ist aber sie brachen es vlt kann ich es und dann mache ich es für sie!)

    Zitat

    Die Prüfungen(Fahrprüfungen), welche sehr realitätsnah entworfen sind, kann jeder Spieler allein absolvieren ohne auf andere angewiesen zu sein.

    Zitat

    Features: Ausgeprägte und leicht verständliche Serverregeln!

    Zitat

    aber wer dumme Antworten gibt bekommt eine Dumme zurück ... und chill mal dein Leben!

    Zitat

    Ich bin für Luca, wieso weiß ich nicht, aber der andere hat so hässlige Haare..

    Zitat

    Ich habe mir eig. immer nur die Castings angesehen, weil die da immer Runtergemacht wurden.

    Zitat

    Unknown processor
    übersetzt (by google translator)
    unbekannten Prozessor

    Zitat

    Verkaufe Minecraft Keys
    Nur für 20,-€ PaySafeCard.
    Unfassbar in mindestens 5 Minuten hast du dein Key!

  • Mach das new sirene; oben hin.

  • Stimme Reloadet zu und ann einfach unter public OnGameModeInit() sirene = CreateObject...

    Die besten Zitate aus dem sa-mp.de Forum

    Zitat

    -Wenn hier die sache nicht drine ist aber sie brachen es vlt kann ich es und dann mache ich es für sie!)

    Zitat

    Die Prüfungen(Fahrprüfungen), welche sehr realitätsnah entworfen sind, kann jeder Spieler allein absolvieren ohne auf andere angewiesen zu sein.

    Zitat

    Features: Ausgeprägte und leicht verständliche Serverregeln!

    Zitat

    aber wer dumme Antworten gibt bekommt eine Dumme zurück ... und chill mal dein Leben!

    Zitat

    Ich bin für Luca, wieso weiß ich nicht, aber der andere hat so hässlige Haare..

    Zitat

    Ich habe mir eig. immer nur die Castings angesehen, weil die da immer Runtergemacht wurden.

    Zitat

    Unknown processor
    übersetzt (by google translator)
    unbekannten Prozessor

    Zitat

    Verkaufe Minecraft Keys
    Nur für 20,-€ PaySafeCard.
    Unfassbar in mindestens 5 Minuten hast du dein Key!

  • 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?

    "Dem wird befohlen, der sich nicht selbst gehorchen kann" - Friedrich Nietzsche

  • 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? :S

  • 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!");
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen