Spieler von Newbie Fahrzeugen entfernen

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
  • Hallo Leute,


    ich habe eigentlich ein einfaches Problem, jedoch finde ich nicht meinen Fehler. Ich möchte für Leute die bereits in einer Fraktion sind, Newbie Fahrzeuge unfahrbar machen. Aus welchem Grund auch immer wird man nicht vom Fahrzeug entfernt. Ich hoffe ihr könnt mir weiterhelfen


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    for(new i=0; i < sizeof nVeh; i++)
    {
    if(newstate == PLAYER_STATE_DRIVER && vehicleid == nVeh[i])
    {
    if(PlayerInfo[playerid][pFraktion] > FRAKTION_NEWBIE)
    {
    RemovePlayerFromVehicle(playerid);
    SendMessage(playerid, "Du darfst Newbie Fahrzeuge nicht nutzen.");
    }
    }
    }
    return 1;


    }

  • Versuche es mal bitte so:



    Mit freundlichen Grüßen
    German_ScripterHD

  • Da war doch ein Variable Fehler, lag nicht am Code. Hab aber jetzt einen anderen Fehler. Irgendwie werden die Waffen nach Arbeitsschluss nicht entfernt?



    dcmd_duty(playerid, params[])
    {
    #pragma unused params
    new string[128];
    if(!IsPlayerInFraktion(playerid, FRAKTION_LSPD))
    return SendClientMessage(playerid, COLOR_RED, "-Warnung- Du kannst diesen Befehl nicht benutzen.");


    if (IsPlayerInRangeOfPoint(playerid, 3.0, 254.4710,78.4348,1003.6406) && GetPlayerInterior(playerid) == INTERIOR_LSPD)
    {
    if(OnDuty[playerid] == false)
    {
    OnDuty[playerid] = true;
    SendMessage(playerid, "~g~~h~Du bist nun ON-DUTY, viel spass bei der Arbeit!");


    format(string, sizeof string, "* %s(%d) ist nun im Dienst.", PlayerName[playerid], playerid);
    SendFraktionMessage(FRAKTION_LSPD, string);


    SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du hast dein Equipment genommen & bist jetzt ON-DUTY!");


    if(PlayerInfo[playerid][pLeader] == FRAKTION_LSPD)
    return GivePlayerClass(playerid, 282, 6, 254.4710,78.4348,1003.6406, LSPD_WEAP1, LSPD_WEAP2, LSPD_WEAP3, LSPD_WEAP4);


    else if(PlayerInfo[playerid][pFraktion] == FRAKTION_LSPD)
    return GivePlayerClass(playerid, 280, 6, 254.4710,78.4348,1003.6406, LSPD_WEAP1, LSPD_WEAP2, LSPD_WEAP3, LSPD_WEAP4);
    }
    else if(OnDuty[playerid] == true)
    {
    OnDuty[playerid] = false;
    SendMessage(playerid, "~g~~h~Du bist nun OFF-DUTY, schoenen Feierabend!");


    format(string, sizeof string, "* %s(%d) ist nun nicht mehr im Dienst.", PlayerName[playerid], playerid);
    SendFraktionMessage(FRAKTION_LSPD, string);


    SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du hast dein Equipment verstaut & bist jetzt OFF-DUTY!");


    if(PlayerInfo[playerid][pLeader] == FRAKTION_LSPD)
    return GivePlayerClass(playerid, 282, 6, 254.4710,78.4348,1003.6406, 0, 0, 0, 0);


    else if(PlayerInfo[playerid][pFraktion] == FRAKTION_LSPD)
    return GivePlayerClass(playerid, 280, 6, 254.4710,78.4348,1003.6406, 0, 0, 0, 0);


    ResetPlayerWeapons(playerid);


    RemovePlayerWeapon(playerid, LSPD_WEAP1);
    RemovePlayerWeapon(playerid, LSPD_WEAP2);
    RemovePlayerWeapon(playerid, LSPD_WEAP3);
    RemovePlayerWeapon(playerid, LSPD_WEAP4);
    }
    }
    else
    SendMessage(playerid, "~g~~h~Du musst in der Naehe vom deinem Spint sein.");
    return 1;
    }


    Ich hab es über die reguläre Funktion ResetPlayerWeapons und über eine Eigenfunktion RemvovePlayerWeapon probiert - beides funktioniert nicht

  • stock RemovePlayerWeapon(playerid, weaponid)
    {
    new plyWeapons[12];
    new plyAmmo[12];


    for(new slot = 0; slot != 12; slot++)
    {
    new wep, ammo;
    GetPlayerWeaponData(playerid, slot, wep, ammo);


    if(wep != weaponid)
    {
    GetPlayerWeaponData(playerid, slot, plyWeapons[slot], plyAmmo[slot]);
    }
    }


    ResetPlayerWeapons(playerid);
    for(new slot = 0; slot != 12; slot++)
    {
    GivePlayerWeapon(playerid, plyWeapons[slot], plyAmmo[slot]);
    }
    }


  • Versuch mal diesen Code zu nehmen, den hat Jeffry mal geschrieben: