Adminfahrzeug nach aussteigen löschen lassen ?

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
  • Hey :)


    Ich knoble schon seit ein paar Tagen an der Lösung für mein Problem , undzwar möchte ich , dass wenn ein Admin ein Auto spawnt , und dann aussteigt , das auto gelöscht wird !


    Mein Code:



    ocmd:spawnvehicle(playerid,params[])
    {
    if(IsPlayerAnAdmin(playerid,3))
    {
    new vehicleid;
    new vehcid;
    new Float:x,Float:y,Float:z;
    new string[256];
    if(sscanf(params,"i",vehicleid))return SendClientMessage(playerid,Rot,"Fehler: /spawnvehicle [ID]");
    GetPlayerPos(playerid,x,y,z);
    vehcid=CreateVehicle(vehicleid,x,y,z,1.00,1,1,1);
    PutPlayerInVehicle(playerid,vehcid,0);
    format(string,sizeof(string),"Du hast ein Vehicle mit der ID %i gespawnt!",vehicleid);
    SendClientMessage(playerid,Gruen,string);
    SendClientMessage(playerid,Grau,"Du darfst das Fahrzeug nicht für den Privaten Gebrauch benutzen !");
    SendClientMessage(playerid,Grau,"Der erste Verstoß bringt einen Admin-Warn , der zweite einen Kick!");
    printf("%s spawnt ein Vehicle mit der ID %i",PlayerName(playerid),vehicleid);
    }
    else
    {
    SendClientMessage(playerid,Rot,"Du bist nicht befugt diesen Befehl zu benutzen.");
    return 1;
    }
    return 1;
    }

  • Hi


    Dafür gibts ein nettes Callback: http://wiki.sa-mp.com/wiki/OnPlayerExitVehicle, jedoch mit dem Verweis:


    Zitat

    Important Note: Not called if the player falls off a bike or is removed from a vehicle by other means such as using SetPlayerPos. You must use OnPlayerStateChange and check if their old state is PLAYER_STATE_DRIVER or PLAYER_STATE_PASSENGER.


    Erstell einen Befehl welcher ein Fahrzeug als Fahrzeugadmin markiert (GLobales Array für MAX_VEHICLES) und setzt dort einen Wert, kannst ja den Datentyp bool nehmen, Beim Verlassen fragste mithilfe der playerid und der vehicleid ab, ob es sich um einen Admin und ein Adminfahrzeug handelt, löscht das fahrzeug und resettest den Wert im Array.


    Gruss

  • SendClientMessage(playerid,Grau,"Du darfst das Fahrzeug nicht für den Privaten Gebrauch benutzen !"); SendClientMessage(playerid,Grau,"Der erste Verstoß bringt einen Admin-Warn , der zweite einen Kick!");


    Würde ich zu:
    SendClientMessage(playerid,Grau,"Du darfst das Fahrzeug nicht für den Privaten Gebrauch benutzen !\nDer erste Verstoß bringt einen Admin-Warn , der zweite einen Kick!");
    machen. Das \n ist für einen Zeilenumbruch.


    Mehr kann ich leider nicht tun :S

    Ich hab DoodleJump zuende gespielt oO

  • Doodle: Das in einer Client Message ist doch garnicht möglich, oder irre ich mich da?


    Da du keine globale Variable angelegt hast, kannst du es momentan nur so lösen:
    OnPlayerStateChange(playerid,oldstate,newstate)
    {
    if(IsPlayerAdmin&&newstate==PLAYER_STATE_ONFOOT&&oldstate==PLAYER_STATE_DRIVER)return DestroyVehicle(GetVehicleID(playerid));
    return true;
    }


    Advertising has us chasing cars and clothes, working jobs we hate so we can buy shit we don’t need.
    – Tyler Durden


    Sobald Werbung im Spiel ist, bist du, die Nutzerin, der Nutzer, das Produkt.


  • Hallo


    Sorry hab letztens vor nem halben Jahr in Pawn programmiert, hoffe keine C Fehler gemacht zu haben. Hier eine mögliche Version (Beachte bitte Falloff, sprich den Hinweis oben). Aus dem Kopf:



    Gruss