[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
  • @Jeffry


    Habe ein Befehl um die Skins von den Spielern zu ändern die im Event sind. Klappt eigentlich gut und es wird auch nur der Skin der Spieler im Event geändert, aber das Freezen betrifft alle Spieler (vermute ich) oder dem jenigen der den Befehl ausführt.


    Was habe ich falsch gemacht? Sollte nur für Leute im Event sein.


    C
    CMD:eskin(playerid,params[])
    {
    	new skin;
    	if(sscanf(params, "d", skin)) return SendClientMessage(playerid,WHITE, "{FF1717}ERROR:{FFFFFF} /eskin [ID]");
    	if(skin < 1 || skin > 311) return SendClientMessage(playerid,WHITE,"{FF1717}ERROR:{FFFFFF}Only Skins between 1 and 311.");
     	for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i) && !IsPlayerNPC(i) && inEvent[i]) SetPlayerSkin(i,skin);
     	TogglePlayerControllable(playerid,0 );
    	SetTimerEx("UnfreezePlayer", 2500, false, "i", playerid);
    	return 1;
    }


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Du musst dann i anstatt playerid nutzen:

  • Warum wird das als nicht definiert angezeigt? (Ich weiß das ich das Problem mit einer ID lösen kann)


    CSS
    enum
    {
        DIALOG_EVENT,
       DIALOG_EVENTLIST,
       DIALOG_LIMIT
    
    }


    CSS
    CMD:estartevent(playerid,params[])
    {
    	ShowPlayerDialog(playerid,DIALOG_LIMIT, DIALOG_STYLE_INPUT, "YN-Event", "Set an Event-Limit.", "Okay", "");
    	return 1;
    }

    Error:


    undefined symbol "DIALOG_LIMIT" event.pwn 65


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Hey, wie kann man für ein bestehenden Befehl mehrere alternativen hinzufügen?


    Beispiel Befehl


    C
    CMD:estartevent(playerid,params[])
    {
    	ShowPlayerDialog(playerid,5, DIALOG_STYLE_INPUT, "YN-Event", "Set an Event-Limit.", "Okay", "");
    	return 1;
    }


    Und Alternativ Befehle /esetevent & /estart. Halt ohne den Befehl komplett nochmal zu kopieren und nur den Namen ändern..


    Mit freundlichen Grüßen
    JustMe.77 8)

  • hey ich hab mir jetzt mal zum scripten nen server geholt leider lädt der gamemode nicht.
    Script[gamemodes/UltimateReallife.amx]: Run time error 19: "File or function is not found"
    was soll ich tun?

  • hey ich hab mir jetzt mal zum scripten nen server geholt leider lädt der gamemode nicht.
    Script[gamemodes/UltimateReallife.amx]: Run time error 19: "File or function is not found"
    was soll ich tun?

    Lad dir das nativechecker Plugin und schau, welche Plugins nicht geladen werden, bzw dir fehlen ;)

    ast2ufdyxkb1.png


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

  • @Kaliber


  • Da wo du alte Position überprüfen möchtest.

    C
    new Float:waste,Float:z;
    GetPlayerPos(playerid,waste,waste,z);
    SetPVarFloat(playerid,"OldHeight",z);


    Differenz ausrechnen:

    Code
    new Float:waste,Float:z;
    GetPlayerPos(playerid,waste,waste,z);
    if(z - GetPVarFloat(playerid,"OldHeight") == 1){
    //Spieler hat seine Höhe um einen Meter erhöht.
    }


    Da es allerdings schwierig ist einen Meter genau zu bestimmen, würde ich das ganze in einen Bereich eingrenzen und nicht auf 1.0 Meter festlegen.