[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
  • hat gefunkt
    die letzte sache die nicht funktioniert wäre dies hier.
    mein /leader ist exakt genauso aufgebaut und funktioniert tadelos



    dcmd_admins(playerid,params[])
    {
    #pragma unused params
    new admin[MAX_PLAYER_NAME];
    new string[256];
    SendClientMessage(playerid,Weiß, "Anwesende Admins:");
    //for(new i; i < MAX_PLAYERS; i++)
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(sSpieler[i][Adminlevel] == 1)
    {
    GetPlayerName(i,admin,sizeof(admin));
    format(string,sizeof(string),"Supporter: %s",admin);
    SendClientMessage(playerid,Weiß,string);
    }
    if(sSpieler[i][Adminlevel] == 2)
    {
    GetPlayerName(i,admin,sizeof(admin));
    format(string,sizeof(string),"Moderator: %s",admin);
    SendClientMessage(playerid,Weiß,string);
    }
    if(sSpieler[i][Adminlevel] == 3)
    {
    GetPlayerName(i,admin,sizeof(admin));
    format(string,sizeof(string),"Super Moderator: %s",admin);
    SendClientMessage(playerid,Weiß,string);
    }
    if(sSpieler[i][Adminlevel] == 4)
    {
    GetPlayerName(i,admin,sizeof(admin));
    format(string,sizeof(string),"Vorstand: %s",admin);
    SendClientMessage(playerid,Weiß,string);
    return 1;
    }
    }
    }
    return 1;
    }

  • Ich würde es eher so machen:

    Einmal editiert, zuletzt von Madd92 ()

  • wollte ma fragen ob jemand eine Funktion kennt die das Vehicle Model zu dem Vehicle Namen umwandelt so wie in zahlreichen anderen "Id To Name" Funktionen, da es sehr aufwändig wäre das ganze selbst von ID 400 bis 600 zu schreiben frage ich mal ob jemand solch eine funktion kennt bzw ob es so eine schon gibt

    SA:MP in 2020?

  • Hier, pack das am besten in ein seperates Include mit nützlichen Funktionen:


    :)


    #i failed xD

    ast2ufdyxkb1.png


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

    Einmal editiert, zuletzt von Kaliber ()

  • Ich teste grad alle meine Befehle und Optimiere sie ein wenig.
    Dabei ist mir aufgefallen, das mein /ban Command nicht korrekt funktioniert bzw. die abfrage ob ein Spieler gebannt ist garnicht funktioniert.


    Wenn bei OnPlayerConnect


    Meine abfrage if (sSpieler [playerid][gebannt] = 1 abgefragt wird soll eine nachricht kommen und ein timer starten dsmit der spieler gekickt wird.
    Leider passiert dies nicht


    public OnPlayerConnect (playerid)
    {
    if (sSpieler[playerid][Gebannt] = 1)
    {
    SendclientMessage ...
    SetTimer("KickTimer",300,0);
    return 1;
    }

  • Ungetestet, aber sollte so funktionieren.
    PS: Wieso überhaupt ein Timer? Kannst ihn ja auch ohne kicken..



    new DelayKick[MAX_PLAYERS];



    public OnPlayerConnect (playerid)
    {
    if(sSpieler[playerid][Gebannt] = 1)
    {
    DelayKick[playerid] = SetTimerEx("DelayKickPlayer", 1000, false, "i", playerid);
    }
    return 1;
    }




    forward DelayKickPlayer(playerid);
    public DelayKickPlayer(playerid)
    {
    SendClientMessage(playerid, -1, "Du bist gebannt. Erstelle ein Entbann Antrag...");
    KillTimer(DelayKick[playerid]);
    return 1;
    }


    Mit freundlichen Grüßen
    JustMe.77 8)

  • C
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
        if (!IsPlayerConnected(i)) continue;
        // Speichern etc. mit i als playerID
    }

    Das wäre der herkömmliche Weg. Man kann aber auch ein foreach include nutzen, für bessere Performance.

  • Bitte um Hilfe^^


    Tank[i] = Tank[i] - ((mass / (mass * 4.5)) * ((speed / 60) + 0.015) / 30) * ((dist / 10) + 0.001);


    -> Tagmismatch ?!


    der geht: Tank[i] = Tank[i] - 1; hätte es gern aber realistischer^^

  • Ganz normal eine Spielerschleife, allerdings statt jedes mal SendClientMessage zu nutzen, fügst du mit format oder strcat den Namen, Rang oder was auch immer an einen vorher definierten String an, den du nach der Schleife in einem Dialog anzeigen lässt.

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