[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
  • Hab 'n Problem mit Animationen (ApplyAnimation), die funktioniert einfach beim 1. mal nicht.. z.B.


    Wenn man stirbt sollte man nach seinem Spawn in eine Animation kommen, klappt aber beim 1. Mal nicht, beim 2. Mal geht es dann auf einmal.. Ist bei allen anderen Animationen die ich verwende genau so.

    SA:MP in 2020?

  • Wieso wird der Spieler direkt gekickt? Außerdem erscheinen die Prints nicht..


    forward OnPlayerCBug(playerid);public OnPlayerCBug(playerid){CheckCrouch[playerid] = 0;cbugwarn[playerid]++;new string[144];format(string, sizeof(string),"{FFFFFF}Hör auf{FF0000} C-Bug {FFFFFF}zu benutzen. Warn {FF0000}%d/3", cbugwarn[playerid]);SendClientMessage(playerid, COLOR_RED, string);print("Cbug Warn aufgerufen");if(cbugwarn[playerid] == 3){new str2[128];format(str2, sizeof(str2), "{FF0000}System{FFFFFF} hat {%06x}%s{FFFFFF} für Cbug mit der Waffe {FF0000}(%s) gekickt.", GetPlayerColor(playerid) >>> 8, GetName(playerid), aWeaponNames[WeaponID[playerid]]);SendClientMessageToAll(COLOR_RED, str2);Kick(playerid);print("Kick aufgerufen");return 1;}return 1;}

    Sicher, daß diese Funktion bzw. Callback aufgerufen wird und nicht KickPlayer von woanderst passiert?

  • Habe ich etwas falsch gemacht?



    UpdateWeedTextDraws(playerid)
    {
    new str[48], str2[48];
    //Updating Level & Weed TextDraw
    format(str, sizeof(str),"Level: ~g~%d", GetPlayerScore(playerid));
    PlayerTextDrawSetString(playerid, Weed0, str); //Level
    format(str2, sizeof(str2),"Weed: ~g~%d", pData[playerid][P_Weed]);
    PlayerTextDrawSetString(playerid, Weed1, str2); //Weed
    }



    Server Log:


    [17:47:09] [join] [LnD]JustMe.77 has joined the server (0:127.0.0.1)
    [17:47:19] [debug] Run time error 4: "Array index out of bounds"
    [17:47:19] [debug] Accessing element at index 65535 past array upper bound 999
    [17:47:19] [debug] AMX backtrace:
    [17:47:19] [debug] #0 00094d20 in UpdateWeedTextDraws (playerid=65535) at ../Modules/Player/Weed-TextDraws.pwn:51


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Problem gelöst, letzte Frage:


    Habe verschiedene Textdraws (Leben/Armour Anzeige & Level/Geld Anzeige, beide nutzen jeweils PlayerTextDrawSetOutline.
    Wenn ich die Level / Geld Anzeige Textdraws ins Gamemode einfüge, dann fehlt bei den Leben/Armour Anzeige die Outline, wieso? Ich bezweifle zwar das ich hierfür eine Problemlösung finde, aber vielleicht weiß ja einer bescheid woran das liegt..


    Edit:


    Nein, die Health/Armour Anzeige (nur Health) verschwindet hinter meiner Health-Bar..)


    Bild:



    Mit freundlichen Grüßen
    JustMe.77 8)

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • 1. Ich hab es als Hex-Wert in der DB gespeichert also als String

    Speichere es als Integer, dann kannst du einfacher damit umgehen.
    Hier kannst du es umwandeln: http://www.binaryconvert.com/convert_signed_int.html




    2. Ist das so möglich?

    Dann kannst du es nämlich so machen:
    SendClientMessage(playerid, farbe, "Hi");


    farbe entspricht dem geladenen Integer aus der Datenbank.

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()

  • Ich habe mich einmal ein bisschen im Wiki umgesehen und finde keine Info's zu multiblen Eingaben.


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/mycommand", cmdtext, true, 10) == 0)
    {
    SendClientMessage(playerid, COLOR_WHITE, "WoW, du hast /mycommand eingegeben");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Der gesuchte Befehl wurde nicht gefunden oder du hast keinen Zugriff auf den Befehl.");
    return 1;
    }
    return 1;


    if (strcmp("/deagle", cmdtext, true, 20) == 0)
    {
    GivePlayerWeapon(playerid, 24, 50);
    SendClientMessage(playerid, COLOR_INFO, "CHEATER: FairPlay ist was anderes");
    return 1;
    }
    return 1;
    }


    Bei meinem letzten Command bekomme ich den Fehler das der Befehl eben nicht vorhanden ist!

  • So funktioniert das nicht ^^


    Am besten, du nutzt einen "CMD-Prozessor" wie ocmd/zcmd oder sonst was...


    Ansonsten wäre es so richtig:


    ast2ufdyxkb1.png


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