[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
  • printf("pLevel: %d / pAdmin: %d", SpielerDaten[playerid][pLevel], SpielerDaten[playerid][pAdmin]);
    if(SpielerDaten[playerid][pLevel] > 3 && SpielerDaten[playerid][pAdmin] == 0 /*&& SpielerInfo[playerid][pEinweiser] == 0*/) return SendClientMessage(playerid,ROT,"Du bist kein Neuling mehr!"), printf("Kein Neuling.");
    printf("Meldung nicht ausgegeben");


    Was wird dir so im Server Log ausgegeben, wenn du den Befehl eingibst?

  • [18:11:58] [debug] Run time error 4: "Array index out of bounds"
    [18:11:58] [debug] Attempted to read/write array element at index 10 in array of size 10
    [18:11:58] [debug] AMX backtrace:
    [18:11:58] [debug] #0 000113b4 in public OnPlayerSpawn (1) from austrianrp.amx
    [18:11:58] [debug] Run time error 4: "Array index out of bounds"
    [18:11:58] [debug] Attempted to read/write array element at index 10 in array of size 10
    [18:11:58] [debug] AMX backtrace:
    [18:11:58] [debug] #0 000113b4 in public OnPlayerSpawn (1) from austrianrp.amx
    [18:12:02] pLevel: 10 / pAdmin: 7
    [18:12:02] Meldung nicht ausgegeben


  • ocmd@2:neuling,n(playerid, params[])
    {
    #pragma unused params
    if(Eingeloggt[playerid] == 0)return SendClientMessage(playerid, GRAU, "Du bist nicht eingeloggt!");
    new string[128];
    printf("pLevel: %d / pAdmin: %d", SpielerDaten[playerid][pLevel], SpielerDaten[playerid][pAdmin]);
    if(SpielerDaten[playerid][pLevel] > 3 /*&& SpielerDaten[playerid][pAdmin] > 0 && SpielerInfo[playerid][pEinweiser] == 0*/)
    return SendClientMessage(playerid,ROT,"Du bist kein Neuling mehr!");
    printf("Meldung nicht ausgegeben");
    if(sscanf(params,"s[128]",string))return SendClientMessage(playerid, WEISS,"Befehl: /n [Nachricht]");
    if(SpielerDaten[playerid][pAdmin] > 0)
    {
    format(string, sizeof(string), "[Helfer] %s: %s",SpielerDaten[playerid][pName],string);
    }
    else if(SpielerDaten[playerid][pAdmin] > 1)
    {
    format(string, sizeof(string), "[%s] %s: %s",GetAdminRangName(playerid),SpielerDaten[playerid][pName],string);
    }
    else
    {
    format(string, sizeof(string), "[Neuling] %s: %s",SpielerDaten[playerid][pName],string);
    }
    SendLevelMessage(0x00F5FFFF, string);
    return 1;
    }


    So habe ich es mit deinem Code getestet. Oder hab ich deinen Code falsch angegeben? Die Meldung "Du bistkein Neulingmehr!" wird angezeigt.

  • Oder hab ich deinen Code falsch angegeben?

    Ja, du hast den notwendigen Teil der Abfrage auskommentiert (grün) und dazu verfälscht.


    if(SpielerDaten[playerid][pLevel] > 3 /*&& SpielerDaten[playerid][pAdmin] > 0 && SpielerInfo[playerid][pEinweiser] == 0*/)
    return SendClientMessage(playerid,ROT,"Du bist kein Neuling mehr!");
    zu:
    if(SpielerDaten[playerid][pLevel] > 3 && SpielerDaten[playerid][pAdmin] == 0 /*&& SpielerInfo[playerid][pEinweiser] == 0*/)
    return SendClientMessage(playerid,ROT,"Du bist kein Neuling mehr!");
    (siehe oben)

  • ocmd:teleportz(playerid,params[])
    {
    new locations;
    if(sscanf(params,"u", locations))
    {
    SendClientMessage(playerid,-1,"nutze /teleportz TPID");
    return 1;
    }
    switch (locations)
    {
    case 0:
    {
    SetPlayerPos(playerid,371.6122,187.4087,1008.3893);
    }
    case 1:
    {
    SetPlayerPos(playerid,371.6122,187.4087,1008.3893);
    }
    case 2:
    {
    SetPlayerPos(playerid,347.7374,193.7241,1014.1875);
    }
    case 3:
    {
    SetPlayerPos(playerid,1215.1304,-11.8431,1000.9219);
    }
    case 4:
    {
    SetPlayerPos(playerid,2166.3772,-1675.3829,15.0859);
    }
    case 5:
    {
    SetPlayerPos(playerid,1109.3318,-1796.3042,16.5938);
    }
    case 6:
    {
    SetPlayerPos(playerid,-1932.3859,276.2117,41.0391);
    }
    case 7:
    {
    SetPlayerPos(playerid,2226.1716,-1718.1792,13.5165);
    }
    case 8:
    {
    SetPlayerPos(playerid,1366.4325,-1275.2096,13.5469);
    }
    case 9:
    {
    SetPlayerPos(playerid,531.7930,-1292.4044,17.2422);
    }
    case 10:
    {
    SetPlayerPos(playerid,766.0804,14.5133,1000.7004);
    }
    case 11:
    {
    SetPlayerPos(playerid,1154.2208,-1770.8203,16.5992);
    }
    case 12:
    {
    SetPlayerPos(playerid,-2040.9436,456.2395,35.1719);
    }
    case 13:
    {
    SetPlayerPos(playerid,-77.7288,-1136.3896,1.0781);
    }
    case 14:
    {
    SetPlayerPos(playerid,-1891.7045,-1699.3231,21.7500);
    }
    case 15:
    {
    SetPlayerPos(playerid,375.9512,-2054.5193,8.0156);
    }
    case 16:
    {
    SetPlayerPos(playerid,2104.4329,-1803.5864,13.5547);
    }


    }
    return 1;


    }



    Teleportiert sich nur zu 0 & 1



    bei den anderen passiert nix


  • ocmd@2:neuling,n(playerid, params[])
    {
    #pragma unused params
    if(Eingeloggt[playerid] == 0)return SendClientMessage(playerid, GRAU, "Du bist nicht eingeloggt!");
    new string[128];
    printf("pLevel: %d / pAdmin: %d", SpielerDaten[playerid][pLevel], SpielerDaten[playerid][pAdmin]);
    if(SpielerDaten[playerid][pLevel] > 3 && SpielerDaten[playerid][pAdmin] == 0 /*&& SpielerInfo[playerid][pEinweiser] == 0*/)
    return SendClientMessage(playerid,ROT,"Du bist kein Neuling mehr!");
    printf("Meldung nicht ausgegeben");
    if(sscanf(params,"s[128]",string))return SendClientMessage(playerid, WEISS,"Befehl: /n [Nachricht]");
    if(SpielerDaten[playerid][pAdmin] == 7)
    {
    format(string, sizeof(string), "[Helfer] %s: %s",SpielerDaten[playerid][pName],string);
    }
    else if(SpielerDaten[playerid][pAdmin] > 1)
    {
    format(string, sizeof(string), "[%s] %s: %s",GetAdminRangName(playerid),SpielerDaten[playerid][pName],string);
    }
    else
    {
    format(string, sizeof(string), "[Neuling] %s: %s",SpielerDaten[playerid][pName],string);
    }
    SendLevelMessage(0x00F5FFFF, string);
    return 1;
    }


    [19:01:17] pLevel: 10 / pAdmin: 7
    [19:01:17] Meldung nicht ausgegeben

  • Hey,


    ich habe keine Ahnung wie ich es Umsetzen kann, deswegen frage ich euch mal nach Hilfe.
    Wie kann ich einer Person +50 HP auf seiner aktuellen HP setzen?
    Schon gegoogelt, aber finde leider nichts, wäre nett wenn mir jemand das erklären könnte :D


  • public SendLevelMessage(color, string[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(Eingeloggt[i] == 1 && !IsPlayerNPC(i) && IsPlayerConnected(i) && i != INVALID_PLAYER_ID)
    {
    if(SpielerDaten[i][pLevel] < 3)
    {
    SendClientMessage(i, color, string);
    }
    }
    }
    }


  • for(new i=0;i<sizeof(REPORTSYS);i++){ TextDrawHideForPlayer(playerid,REPORTSYS[i]); }
    PlayerTextDrawHide(playerid, SUPPORT[playerid]);
    PlayerTextDrawHide(playerid, BUGMELDUNG[playerid]);
    PlayerTextDrawHide(playerid, EINWEISUNG[playerid]);
    PlayerTextDrawHide(playerid, SCHLIESSEN[playerid]);
    TextDrawShowForPlayer(playerid,Reportdraw[0]);


    Das ist der ganze Absatz

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