/handschellen[ID]. Fehler.

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 Community,
    Ich habe einen /handschellen befehl gemacht mit dem cops leute in einem auto handschellen anlegen können damit diese das Auto nicht verlassen können oder weglaufen können. Problem: immer wenn ich /handschellen und ID eingeben von diesem Spieler steht nur dran "Diese Person ist nicht in deinem Fahrzeug!" obwohl er in meinem auto ist.


    PAWN CODE:


    ocmd:handschellen(playerid,params[])
    {
    new copname[32],string[128];
    new prisonname[32],copmsg[128];
    if(!IstSpielerInFraktion(playerid,4)) return SendClientMessage(playerid,Rot,"Du bist kein Cop!");
    else if(!IsPlayerInAnyVehicle(prisoner)) return SendClientMessage(playerid,Rot,"Diese Person ist nicht in deinem Fahrzeug!");
    else if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,Rot,"Du bist in keinem Fahrzeug!");
    if(sscanf(params,"u",prisoner))return SendClientMessage(playerid,Gelb,"Nutzung:/handschellen [ID]!");
    GetPlayerName(playerid,copname,sizeof(copname));
    GetPlayerName(playerid,prisonname,sizeof(prisonname));
    format(string,sizeof(string),"%s hat dir Handschellen angelegt!",copname);
    format(copmsg,sizeof(copmsg),"Du hast %s Handschellen angelegt!",prisonname);
    SendClientMessage(prisoner,Hellblau,string);
    SendClientMessage(playerid,Hellblau,copmsg);
    TogglePlayerControllable(prisoner,0);
    return 1;
    }

    La Cosa Nostra ♥

  • else if(!IsPlayerInAnyVehicle(prisoner)) return SendClientMessage(playerid,Rot,"Diese Person ist nicht in deinem Fahrzeug!");


    Diese abfrage sollte unter if(sscanf... stehen
    da sonst prisoner 0 ist und wenn keiner mit der ID 0 da ist -> in keinen Fahrzeug

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Wenn du einen SpielerName Stock erstellst, ersparst du dir die Abfragen der Namen (bei diesem Befehl schon mal 2 Zeilen und 2 Vari.). Außerdem kannst du "copmsg" weglassen und stattdessen den bereits vorhandenen String nutzen (erst ein einmal den string formatieren, dann senden, dann nochmal formatieren und wieder senden, nur an playerid und pID (playerid des 2. users)) Dann könnte das ganze schonmal so aussehen (müsste so glaub auch funzen):


    ocmd:handschellen(playerid,params[]){
    new string[128], pID;
    if(sscanf(params,"u", pID))return SendClientMessage(playerid,Gelb,"Nutzung: /handschellen [ID]!");
    if(!IstSpielerInFraktion(playerid,4)) return SendClientMessage(playerid,Rot,"Du bist kein Cop!");
    if(!IsPlayerInAnyVehicle(pID)) return SendClientMessage(playerid,Rot,"Diese Person ist nicht in deinem Fahrzeug!");
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,Rot,"Du bist in keinem Fahrzeug!");
    format(string,sizeof(string),"%s hat dir Handschellen angelegt!", SpielerName(playerid));
    SendClientMessage(pID,Hellblau,string);
    format(string,sizeof(string),"Du hast %s Handschellen angelegt!", SpielerName(pID));
    SendClientMessage(playerid,Hellblau,string);
    TogglePlayerControllable(pID,0);
    return 1;
    }


    und hier den SpielerName Stock: (einfach iwo ins Script (ganz unten vllt))
    stock SpielerName(playerid){
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    return name;
    }


    Gruß

    Einmal editiert, zuletzt von varrez ()