[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
    • Offizieller Beitrag

    Wie kann man sowas ungefähr machen?

    Entweder, du hast 87 Spieler auf dem Server und connectest danach oder du erstellt 87 NPC's, danach einfach SetPlayerName(87, "White.");


    .. Ne aber mal ernsthaft, was genau möchtest du denn machen, derzeit sieht man nur einen Skin und ein Label darüber, wo der Spieler anscheinend eine andere Text-Font benutzt.

  • Ich glaube er spielt darauf ab, dass die Lebensanzeige weg ist.


    Hiermit kannst du das normale deaktivieren für den Spieler: [wiki]ShowPlayerNameTagForPlayer[/wiki]


    und hiermit kannste ihm so ein weißes neues TextLabel setzen, da kannste dir sogar irgendwelche IDs ausdenken und reinschreiben ^^


    [wiki]Attach3DTextLabelToPlayer[/wiki]

    ast2ufdyxkb1.png


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

  • Jeder Spieler sollte eine weiße Label haben und die Lebenanzeige sollte nicht stehen. So meinte ich es :)

  • Guten Abend,
    habe mit mit Hilfe von dem Tutorial von Jeffry das Fraktions Fahrzeug System erstellt, wollte es anpassen auf die aktuelle MySQL Version R41-4.
    Das klappt auch alles, außer eine Funktion ... Er lädt die Fahrzeuge nicht aus der Datenbank aus.


    Der Public



    forward LoadFracVehicles_Data();
    public LoadFracVehicles_Data()
    {
    new rows, id, createdVehs;
    cache_get_row_count(rows);
    if(rows == 1)
    {
    for(new i = 0; i < rows; i++)
    {
    cache_get_value_name_int(0, "ID", id);
    if(id < 0 || id >= MAX_FRAC_VEHICLES)continue;


    cache_get_value_name_int(0, "ModelID", fVehicle[id][fModelID]);
    cache_get_value_name_float(0, "PosX", fVehicle[id][f_X]);
    cache_get_value_name_float(0, "PosY", fVehicle[id][f_Y]);
    cache_get_value_name_float(0, "PosZ", fVehicle[id][f_Z]);
    cache_get_value_name_float(0, "PosA", fVehicle[id][f_A]);
    cache_get_value_name_int(0, "Color1", fVehicle[id][fColor1]);
    cache_get_value_name_int(0, "Color2", fVehicle[id][fColor2]);
    cache_get_value_name_int(0, "FracID", fVehicle[id][fFrakID]);


    if(fVehicle[id][fModelID] >= 400 && fVehicle[id][fModelID] <= 611)
    {
    fVehicle[id][fvID] = CreateVehicle(fVehicle[id][fModelID], fVehicle[id][f_X], fVehicle[id][f_Y], fVehicle[id][f_Z], fVehicle[id][f_A], fVehicle[id][fColor1], fVehicle[id][fColor2], -1);
    }
    else
    {
    printf("[LoadFracVehicles_Data]: Model-ID %d existiert nicht! (ID: %d)", fVehicle[id][fModelID], id);
    }


    if(GetVehicleModel(MAX_VEHICLES -1) != 0)return print("Es können keine weiteren Fahrzeuge geladen werden! Limit erreicht! (MAX_VEHICLES)");


    createdVehs++;
    if(createdVehs == MAX_FRAC_VEHICLES)return print("Es können keine weiteren Fahrzeuge geladen werden! Limit erreicht! (MAX_FRAC_VEHICLES)");
    }
    }
    return 1;
    }

    MfG.

    Die Missglückte Persönlichkeit, Ciao!

    Einmal editiert, zuletzt von MGPK-1323 ()

    • Offizieller Beitrag

    Du musst überall die 0 durch ein i verändern, da dies ja eine Schleife ist.

    Code
    cache_get_value_name_int(i, "ModelID", fVehicle[id][fModelID]);
    			cache_get_value_name_float(i, "PosX", fVehicle[id][f_X]);
    			cache_get_value_name_float(i, "PosY", fVehicle[id][f_Y]);
    			cache_get_value_name_float(i, "PosZ", fVehicle[id][f_Z]);
    			cache_get_value_name_float(i, "PosA", fVehicle[id][f_A]);
    			cache_get_value_name_int(i, "Color1", fVehicle[id][fColor1]);
    			cache_get_value_name_int(i, "Color2", fVehicle[id][fColor2]);
    			cache_get_value_name_int(i, "FracID", fVehicle[id][fFrakID]);
  • Guten Abend,
    hab mal wieder ein Problem, habe ein Admin Fahrzeug System Geschrieben, welches nur sein eigenes Fahrzeug erstellen und auch nur das Fahrzeug wieder Löschen kann,
    klappt leider nicht wie gewollt. CrashDetect spuckt mir auch was aus.



    CrashDetect:


    [16:48:51] [debug] Run time error 4: "Array index out of bounds"
    [16:48:51] [debug] Attempted to read/write array element at negative index -399
    [16:48:51] [debug] AMX backtrace:
    [16:48:51] [debug] #0 0001d3f4 in public pc_cmd_delveh (0, 699504) from GameModeNew.amx


    Der Befehl:


    CMD:delveh(playerid, params[])
    {
    if(!sInfo[playerid][sEingeloggt])return SendClientMessage(playerid, -1, ""#TAG_ERROR"Du bist nicht Eingeloggt!");
    if(sInfo[playerid][sAdminrang] < 4)return SendClientMessage(playerid, -1, ""#TAG_ERROR"Du hast nicht die Rechte diesen Befehl zu benutzen!");
    if(!sInfo[playerid][sAdminDuty])return SendClientMessage(playerid, -1, ""#TAG_ERROR"Du bist nicht im Admindienst!");
    if(AdminVeh[playerid] <= 0)return SendClientMessage(playerid, -1, ""#TAG_ERROR"Du hast dir kein Adminfahrzeug Gesapwnt!");


    new playerState = GetPlayerState(playerid);
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, -1, ""#TAG_ERROR"Du bist in keinem Fahrzeug!");
    if(playerState != PLAYER_STATE_DRIVER)return SendClientMessage(playerid, -1, ""#TAG_ERROR"Du bist nicht der Fahrer des Fahrzeuges!");


    AdminVeh[playerid] = GetPlayerVehicleID(playerid);


    new str[144];
    format(str, sizeof(str), ""#TAG_INFO"Du hast das Fahrzeug Entfernt! (%s, %d)", VehicleNames[AdminVeh[playerid]-400], AdminVeh[playerid]);
    SendClientMessage(playerid, -1, str);


    DestroyVehicle(AdminVeh[playerid]);
    AdminVeh[playerid] = 0;
    return 1;
    }


    Fahrzeug wird hier erstellt:


    AdminVeh[playerid] = CreateVehicle(CarID, Pos[0], Pos[1], Pos[2], Pos[3], Color1, Color2, -1);
    SetVehicleNumberPlate(AdminVeh[playerid], ">>> ADMIN <<<");
    PutPlayerInVehicle(playerid, AdminVeh[playerid], 0);


    Die Veriable hab ich so Definiert:
    new AdminVeh[MAX_PLAYERS];


    Mit Freundlichen Grüßen,


    @Whice.
    Habe dies geändert so, leider werden die Fraktions Fahrzeuge dennoch nicht geladen.

    Die Missglückte Persönlichkeit, Ciao!

  • Beitrag von MGPK-1323 ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Beitrag von MGPK-1323 ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • ocmd:pay(playerid,params[])
    {
    new string1[128], string2[128];
    new pID, Money;
    if(sscanf(params, "si", pID, Money))return SendClientMessage(playerid, COLOR_WHITE, "Benutzung: /pay [Spieler] [Betrag]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_WHITE, "Der Spieler ist nicht online!");
    format(string1,sizeof(string1),"Du hast %i$ an %s gezahlt!", Money, Playername(pID));
    format(string2,sizeof(string2),"Du hast %i$ von %s erhalten!", Money, Playername(pID));
    if(GetPlayerMoney(playerid) < Money)return SendClientMessage(playerid, COLOR_WHITE, "Du hast nicht genug Geld!");
    if(Money < 1 || Money > 50000000)return SendClientMessage(playerid, COLOR_WHITE, "Der Betrag muss zwischen 1$ und 50000000$ liegen");
    new Float:PlayerPos[3];
    GetPlayerPos(pID, PlayerPos[0], PlayerPos[1], PlayerPos[2]); //Zeile 154
    if(!IsPlayerInRangeOfPoint(playerid, 5, PlayerPos[0], PlayerPos[1], PlayerPos[2]))return SendClientMessage(playerid, COLOR_WHITE, "Du bist zu weit entfernt");
    GivePlayerMoney(pID, Money);
    GivePlayerMoney(playerid, -Money);
    SendClientMessage(playerid, COLOR_WHITE, string1);
    SendClientMessage(pID, COLOR_WHITE, string2);
    return 1;
    }


    Hallo, wenn ich verssuche einem Spieler Geld zu geben steht dort: Der Spieler ist nicht online. :c

  • Hallo,


    Ich wollte fragen wie man einfügt das man sich auch per Rcon Admin geben kann?

  • Kann man auf deutsch gesagt if(PlayerInfo[playerid][pAdmin] raus lassen?



    //E:


    Habe das jetzt so gemacht:


    if(PlayerInfo[playerid][pAdmin] == 2002 || IsPlayerAdmin(playerid))return SendClientMessage(playerid, COLOR_GREY,"{F81414}Du hast dafür keine Berechtigung!");



    //E:


    Habe das Problem befördern kann ich aber nicht degratieren?


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