[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
  • Danke @Kaliber


    Hab ein neues Problem.


    Bei der Fraktion Terroristen wird ein unterfeld vom Dialog nicht geöffnet welcher aber bei Bundeswehr und SAPD aufgeht.


    Aus dem Befehl /frakeinstellungen listitem Lohn festsetzen
    if(listitem == 2) { new String[1500] = "ID\tName\tRang\tLohn"; for(new i=GetPlayerPoolSize(); i!=-1; i--) { if(!IsPlayerConnected(i) || SpielerInfo[i][Fraktion] != SpielerInfo[playerid][Fraktion]) continue; format(String, sizeof(String),"%s\n%d\t%s\t%d\t%d$",String,i,SpielerName(i),SpielerInfo[i][Rang],SpielerInfo[i][Lohn]); } ShowPlayerDialog(playerid, FrakEinstell3, DIALOG_STYLE_TABLIST_HEADERS,"{FF6347}Lohn",String,"Ok",""); }

    Mit freundlichen Grüßen,
    Dachdecker

    Einmal editiert, zuletzt von Dachdecker ()

  • weiß jemand warum keine Wanteds nach einer 30 Sekunden gelöscht werden?
    -> Kann man das Einstellen wen ein Kunde der Wanteds hat im Auto ist das man es für ihn löscht? egal wv Kunden im Auto sind

  • weiß jemand warum keine Wanteds nach einer 30 Sekunden gelöscht werden?

    Du deklarierst pID weißt aber keinen Wert zu.


    Sprich somit ist pID immer 0...



    Kann man das Einstellen wen ein Kunde der Wanteds hat im Auto ist das man es für ihn löscht? egal wv Kunden im Auto sind

    Ehh natürlich:


    C
    //Beispiel-Code
    stock ClearWantedsInVehicle(veh)
    {
        for(new i=GetPlayerPoolSize(); i!=-1; i--)
        {
            if(!IsPlayerConnected(i) || IsPlayerNPC(i) || !IsPlayerInVehicle(i,veh)) continue;
            SetPlayerWantedLevel(i, 0); //Da er im Auto (veh) sitzt
        }
    }

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Du deklarierst pID weißt aber keinen Wert zu.
    Sprich somit ist pID immer 0...



    Ehh natürlich:

    C
    //Beispiel-Code
    stock ClearWantedsInVehicle(veh)
    {
        for(new i=GetPlayerPoolSize(); i!=-1; i--)
        {
            if(!IsPlayerConnected(i) || IsPlayerNPC(i) || !IsPlayerInVehicle(i,veh)) continue;
            SetPlayerWantedLevel(i, 0); //Da er im Auto (veh) sitzt
        }
    }

    wie benutze ich den stock




    So sieht der Code erstmal aus habe das -wanted erstmal gelöscht

  • Beitrag von Dachdecker ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Könnte das So Funktioniren das es für jeden der beim Wheelman im Auto sitzt die Wanteds nach 30 Sekunden einer Gelöscht wird?
    Oder liege ich da wider falsch :)?

  • Wo ist der Fehler?
    Bekomme Error in der Zeile mit dem "IsPlayerInRangeOfPoint"



  • [list=1][*]Wheelman = GangZoneCreate(1905.4333,-1342.0233,1174.9628,-1888.9697);
    [*]if(IsPlayerInArea(playerid, 1905.4333,-1342.0233,1174.9628,-1888.9697) == 1)
    [/list]


    Hey, hat jemand eine Ahnung warum er die Zone nicht annimt?


    Code
    stock IsPlayerInArea(playerid, Float:MinX, Float:MinY, Float:MaxX, Float:MaxY)
    {
    	new Float:X, Float:Y, Float:Z;
        GetPlayerPos(playerid, X, Y, Z);
        if(X >= MinX && X <= MaxX && Y >= MinY && Y <= MaxY)
        {
       	return 1;
        }
    	return 0;
    }

    wen ich das == 1 weg mache funktioniert auch nicht warum?

  • Ändere die Koordinaten von
    1905.4333,-1342.0233,1174.9628,-1888.9697
    Zu
    1174.9628,-1888.9697,1905.4333,-1342.0233

    Bei mir löscht er keine Wanteds für den Kunden? ich versteh nicht warum?

  • Du musst den Timer auch für den Spieler übergeben, du weißt ihm gar kein Wert zu.

    CMD:hacken(playerid, params[])
    {
    new string[128];
    if(Spieler[playerid][pFraktion] != 10) return SendClientMessage(playerid, COLOR_GREY, "Du bist nich bei der Fraktion!");
    if(IsPlayerInArea(playerid, 1174.9628,-1888.9697,1905.4333,-1342.0233) == 1) return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht in der Zone!");
    {
    SetTimerEx("WantedHacken", 3000, 0, "i", playerid);
    Spieler[playerid][pWheelTime] = 30;
    if(Spieler[playerid][pWheelTime] > 1)
    {
    Spieler[playerid][pWheelTime] --;
    format(string, sizeof(string), "~b~Hackvorgang: ~w~%d", Spieler[playerid][pWheelTime]);
    GameTextForPlayer(playerid, string, 3600, 6);
    }
    }
    return 1;
    }

  • Wo ist der Fehler?

    Der Code ist voller Fehler...
    es gibt kein float: wenn dann nur Float: aber das braucht man nur an die Variable setzen, nicht an die Zahlen in Pawn, da es kein double gibt.
    Du hast viele Klammern & viele Semikolons vergessen oder falsch gesetzt oder unnütze [ ] gesetzt..


    Desweiteren ist pause, genauso wie goto schwachsinn...


    Zudem war playerid gar nicht deklariert...


    Also schreib den Code mal so:


    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Code
    if(IsPlayerInArea(playerid, 1218.0134,-1951.7229,1929.2036,-1959.6438) == 1) return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht in der Zone!");


    Code
    stock IsPlayerInArea(playerid, Float:MinX, Float:MinY, Float:MaxX, Float:MaxY)
    {
    	new Float:X, Float:Y, Float:Z;
        GetPlayerPos(playerid, X, Y, Z);
        if(X >= MinX && X <= MaxX && Y >= MinY && Y <= MaxY)
        {
       	return 1;
        }
    	return 0;
    }
    Code
    if(Spieler[playerid][pFraktion] == 10)
    	{
    	    Wheelman = GangZoneCreate(1929.2036,-1959.6438,1218.0134,-1951.7229);
     		GangZoneShowForPlayer(playerid, Wheelman, 0x33CCFF65);
    	}

    Er sagt mir immer noch ich bin nicht in der Zone habe es auch versucht das == 1 zu löschen

  • Code
    if(IsPlayerInArea(playerid, 1218.0134,-1951.7229,1929.2036,-1959.6438) == 1) return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht in der Zone!");
    Code
    stock IsPlayerInArea(playerid, Float:MinX, Float:MinY, Float:MaxX, Float:MaxY)
    {
    	new Float:X, Float:Y, Float:Z;
        GetPlayerPos(playerid, X, Y, Z);
        if(X >= MinX && X <= MaxX && Y >= MinY && Y <= MaxY)
        {
       	return 1;
        }
    	return 0;
    }
    Code
    if(Spieler[playerid][pFraktion] == 10)
    	{
    	    Wheelman = GangZoneCreate(1929.2036,-1959.6438,1218.0134,-1951.7229);
     		GangZoneShowForPlayer(playerid, Wheelman, 0x33CCFF65);
    	}

    Er sagt mir immer noch ich bin nicht in der Zone habe es auch versucht das == 1 zu löschen

    Versuchs mal so:
    if(!IsPlayerInArea(playerid, 1218.0134,-1951.7229,1929.2036,-1959.6438) ) return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht in der Zone!");