[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
  • Ich will aber nicht das es so riesig ist soll ja so sein wie es halt ist

    Die PlayerTextDrawTextSize musst du nur bei dem Textdraw erhöhen, das den Text des Fahrzeugs beinhaltet, nicht den der Box.
    Einfach gleichsetzen, oder etwas größer machen. Wenn keine Box vorhanden ist, siehst du das auch nicht. Es kommt dann aber kein Zeilenumbruch mehr.
    17 ist aber definitiv zu klein.

  • Ja habe es hinbekommen wusste nicht was gemeint war danke♥



    Seitdem ich diese Sachen ganz oben unter onplayerstatechange habe funktionieren alle Sachen darunter nicht


    //EDIT das kann auch der Grund sein warum er mir nicht den Treibstoff Namen sagt und da garnichts steht

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

    Einmal editiert, zuletzt von Jameso ()

  • Seitdem ich diese Sachen ganz oben unter onplayerstatechange habe funktionieren alle Sachen darunter nicht

    Du sprengst das Array, dadurch geht der Code darunter nicht mehr.
    Lösung siehe hier: Tankvolumen und Treibstoff an Fahrzeugen zuordnen


    Ich schlage auch vor, wir bleiben in dem separaten Thread ab jetzt, um nicht an mehreren Stellen gleichzeitig Code stehen zu haben.
    Das Tanksystem geht nämlich weit über eine kleine Frage hinaus.

  • wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Kleines Problem (Das ist irgendwie immer nur beim PayDay System ;( xD)


    Ich habe eine Function namens PayDay. , wenn sie ausgeführt wird, wird nur die erste SendClientMessage - Anweisung angezeigt.


    Auszug:

    Code
    if(PlayerInfo[playerid][pJob] != 0) {
    	    	PlayerInfo[playerid][pCash] += floatround(netto, floatround_ceil);
    	    	format(string, sizeof(string), "Aktueller Job: {D4A356}%s {FFFFFF}| Gehalt: {D4A356}%d$", JobName(PlayerInfo[playerid][pJob]), PlayerInfo[playerid][pJobMoney]);
                SendClientMessage(playerid, COLOR_WHITE, string);
    			format(string, sizeof(string), "AV: {D4A356}%d$ {FFFFFF}({D4A356}%0.2f{FFFFFF}) | RV: {D4A356}%d$ {FFFFFF}({D4A356}%0.2f{FFFFFF}) | KV: {D4A356}%d$ {FFFFFF}({D4A356}%0.2f{FFFFFF}) | Netto: {D4A356}+%d$ ", strval(avo), avp, strval(rvo), rvp, strval(kvo), kvp, floatround(netto, floatround_ceil));
    			SendClientMessage(playerid, COLOR_WHITE, string);
    		}


    Das heißt beim PayDay wird dem Spieler nur das angezeigt:
    Aktueller Job: Landwirt | Gehalt: 5000$


    Er soll aber auch die zweite SendClientMessage, Anweisung ausführen. Bei Befehlen etc funktioniert das reibungslos nur immer beim Payday nicht... -.-



    Hilfe bitte! ?(

    Wer PALWAL-Sternchen vergibt, bekommt aus Prinzip ein Like 😏


    @palwal Donald Trump ist einer der besten Präsidenten welche die USA je hatte, meine Meinung.

  • Wie kann man in PAWN ausdrücken, dass etwas mit einer x%-tigen Chance passiert.


    Beispiel:


    Eine 5 prozentige Chance, dass ein Spieler ein Paket (Pickup-spawn) in Form von EXP, Geld droppt.


    random() solle da etwas unzuverlässig arbeiten, hab ich gehört.

  • Beitrag von Dr. Frauenarzt ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Fehler Gefunden habe ein return vergessen ;D ().
  • format(string,sizeof(string),"Du bist noch %i:%02d Minuten gemuted.",floatround(Spieler[playerid][pMuteTime]/60),floatround(Spieler[playerid][pMuteTime]%60));return SendClientMessage(playerid,WEISS,string);



    Sry ist mit Handy wen ich mit return 1 mache kakt der Compiler ab aber so funktioniert es :) Trd danke




    //E:






    format(string,sizeof(string),"Handys\nCoins kaufen\t%i$\nFlatrate\t%i$",
    BizInfo[biz][biz_artikel][4],BizInfo[biz][biz_artikel][5]);
    ShowPlayerDialog(playerid,DIALOG_BUWTHINGSINBIZ,DIALOG_STYLE_TABLIST_HEADERS,"Handyladen",string,"Kaufen","Abbrechen");



    Kann mir einer verraten warum das so ist :/?

  • @BrightLeaN Eigentlich nicht, alles was du wissen musst steht da. Wie gesagt item ist ein String der z.B. "Nitro" enthält, schreibe ich die Zeile so: PlayerCar[playerid][x][Nitro] += amount; funktioniert es, ersetze ich Nitro jedoch durch item krieg ich den error ausgespuckt, wahrscheinlich weil der String item noch Anführungszeichen mitliefert..



    Was ich im Prinzip brauch ist das wenn ich im Script den stock AddItem(playerid, x, Nitro, 1); verwende, im stock dann vor das Nitro noch ein Wort geschrieben werden muss:



    Code
    stock AddItem(playerid, x, item[28], amount)
    {
    	strins(item, "Test", 0);
    	PlayerCar[playerid][x][item] += amount;
    }

    Sodass item quasi für TestNitro steht

    Einmal editiert, zuletzt von Jadeclon ()

  • Code
    PlayerCar[playerid][x][item] += amount;

    item ist ein String "Nitro", bekomme den error "array must be indexed (variable "item")"
    Wenn ich Nitro so eingeben würde, würde es natürlich funktionieren...

    Das kann so nicht funktionieren.
    PlayerCar[playerid][x][Nitro] ist nicht das selbe wie PlayerCar[playerid][x]["Nitro"]



    enum e_Array
    {
    A, // 0
    B, // 1
    [.....], // usw.
    }


    new Array[e_Array];
    // Array[1] wäre das selbe wie Array[B]
    // Wenn du jetzt aber Array["B"] benutzen würdest könnte er damit absolut nichts anfangen



    [wiki]Keywords:Initialisers#enum[/wiki]

  • wahrscheinlich weil der String item noch Anführungszeichen mitliefert..

    Ja das hab ich schon selber bemerkt, aber könntest du mir auch weiterhelfen bei meinem Problem?


    Kann man eventuell Variablen ergänzen oder so? Er gibt AddItem(playerid, x, Nitro, 1); ein & im stock
    soll TestNitro ankommen, um es in PlayerCar[playerid][x][item] += amount; zu verwenden.

  • Code
    if(dialogid == DIALOG_AUTOHAUS1)
    	{
    		if(response)
    		{
    			if(!pInfo[playerid][pGeld] > Autohausauto1_preis[1]) return SendClientMessage(playerid,-1,"{c45461}hast nicht genug Bananen");
    			ShowPlayerDialog(playerid, DIALOG_AUTOHAUS2, DIALOG_STYLE_MSGBOX, "Autohaus X", "Dein Fahrzeug steht auf dem Parkplatz...", "Tammam", "");
    		}
    		return 1;
    	}


    Code
    Autohausauto1_preis[ 0 ] = 928;
    	Autohausauto1_preis[ 1 ] = 863;
    	Autohausauto1_preis[ 2 ] = 829;
        format(Autohausauto1_name[ 0 ], 16,"Hotring Racer C");
    	format(Autohausauto1_name[ 1 ], 16,"Hotring Racer B");
    	format(Autohausauto1_name[ 2 ], 16,"Hotring Racer A");

    Ich habe ja einmal das Auto [1] und das Auto [2] aber wie kann ich abfragen das genau das Auto gemeint ist in dem er drin ist?

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.