Beiträge von malE

    Sollte nun funktionieren - hab dein Code bisschen Optimiert.


    Spoiler anzeigen
    if(pickupid == fbirep)
    {
    if(Spieler[playerid][Team] == 1 || Spieler[playerid][Team] == 2 || Spieler[playerid][Team] == 14)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    RepairVehicle(GetPlayerVehicleID(playerid));
    SendClientMessage(playerid, BLAU, "Fahrzeug repariert.");
    }
    }else {
    return SendClientMessage(playerid, ROT, "Du bist Kein Beamter.");
    }
    }

    Spoiler anzeigen
    if(pickupid == sapdrep)
    {
    if(Spieler[playerid][Team] == 1 || Spieler[playerid][Team] == 2 || Spieler[playerid][Team] == 14)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    RepairVehicle(GetPlayerVehicleID(playerid));
    SendClientMessage(playerid, BLAU, "Fahrzeug repariert.");
    }
    }else {
    return SendClientMessage(playerid, ROT, "Du bist Kein Beamter.");
    }
    }

    So erstmal danke Jeffry und Mencent.


    Aber jetzt bei LoadPlayerAccount bekomme ich ein tag mismatch


    Weiß nicht wo der Fehler ist.
    pInfo[playerid][pLeader] = dini_Bool(spName,"Leader");


    Lösung:
    pInfo[playerid][pLeader] = bool:dini_Bool(spName,"Leader");

    Unter meinem PlayerInfo Enum.
    bool:pLeader


    Unter meinem stock SavePlayerAccount. ( Davor )
    dini_IntSet(spName,"Leader",pInfo[playerid][pLeader]);


    Jetzt habe ich es so gemacht. ( Danach )
    dini_IntSet(spName,"Leader",_:pInfo[playerid][pLeader]);
    Dies funktioniert nicht.


    Und diese Variante auch nicht, habe die ja zuvor benutzt.
    dini_IntSet(pfad, "BoolWert", bVar);



    Die Error Message
    C:\Users\----\----\-----\gamemodes\denamed.pwn(2420) : warning 213: tag mismatch
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.

    Da bitte OriginalFiona:! Hab dir mal eben zwei Befehle gescripted.
    Viel Spaß damit.


    Cuff & Uncuff Befehle

    Der Spieler wird nicht gefreezt, er bekommt nur die Animation und das Objekt!

    Cuff & Uncuff Befehle
    ocmd:cuff(playerid, params[])
    {
    if(!IsACop(playerid))return SendClientMessage(playerid, C_GREY, "Du bist kein Polizist."); // Abfrage bei bedarf ändern
    new pID, Float:x, Float:y, Float:z, str[145];
    if(sscanf(params, "u", pID))return SendClientMessage(playerid, C_SSCANF, "Benutze: {FFFFFF}/cuff [Spieler-ID]");
    if(GetPVarInt(pID, "Cuffed") == 1)return SendClientMessage(playerid, C_GREY, "Der Verdächtige hat bereits Handschellen um.");
    if(pID == playerid) return SendClientMessage(playerid, C_GREY, "Fehlerhafte Spieler-ID");
    GetPlayerPos(pID, x,y,z);
    if(IsPlayerInRangeOfPoint(playerid, 2, x, y, z))
    {
    format(str, sizeof(str), "Polizist %s hat dir Handschellen angelegt.", GetName[playerid]); // Abfrage bei defarf ändern
    SendClientMessage(pID, 0x01D8C2FF,str);
    format(str, sizeof(str), "Du hast dem Verdächtigen %s Handschellen angelegt.", GetName[pID]); // Abfrage bei defarf ändern
    SendClientMessage(playerid, 0x01D8C2FF,str);
    SetPVarInt(pID, "Cuffed", 1);

    Cuff & Uncuff Befehle
    SetPlayerSpecialAction(pID, SPECIAL_ACTION_CUFFED);
    SetPlayerAttachedObject(pID, 0, 19418, 6, -0.011000, 0.028000, -0.022000, -15.600012, -33.699977, -81.700035, 0.891999, 1.000000, 1.168000);
    } else {
    SendClientMessage(playerid, C_GREY, "Du bist nicht in der Nähe von Spieler-ID");
    }
    return 1;
    }

    Cuff & Uncuff Befehle
    ocmd:uncuff(playerid, params[])
    {
    if(!IsACop(playerid))return SendClientMessage(playerid, C_GREY, "Du bist kein Polizist."); // Abfrage bei bedarf ändern
    new pID, Float:x, Float:y, Float:z, str[145];
    if(sscanf(params, "u", pID))return SendClientMessage(playerid, C_SSCANF, "Benutze: {FFFFFF}/cuff [Spieler-ID]");
    if(GetPVarInt(pID, "Cuffed") == 0)return SendClientMessage(playerid, C_GREY, "Der Verdächtige hat keine Handschellen um.");
    if(pID == playerid) return SendClientMessage(playerid, C_GREY, "Fehlerhafte Spieler-ID");
    GetPlayerPos(pID, x,y,z);
    if(IsPlayerInRangeOfPoint(playerid, 2, x, y, z))
    {
    format(str, sizeof(str), "Polizist %s hat dir Handschellen abgelegt.", GetName[playerid]); // Abfrage bei defarf ändern
    SendClientMessage(pID, 0x01D8C2FF,str);
    format(str, sizeof(str), "Du hast dem Verdächtigen %s Handschellen abgelegt.", GetName[pID]); // Abfrage bei defarf ändern
    SendClientMessage(playerid, 0x01D8C2FF,str);
    DeletePVar(pID, "Cuffed");

    Cuff & Uncuff Befehle
    RemovePlayerAttachedObject(pID, 0);
    SetPlayerSpecialAction(pID, SPECIAL_ACTION_NONE);
    } else {
    SendClientMessage(playerid, C_GREY, "Du bist nicht in der Nähe von Spieler-ID");
    }
    return 1;
    }


    /e Abfrage hinzugefügt ob Spieler schon Handschellen um hat

    Ist jetzt nur das Objekt ( Handcuffs ) und die Animation.


    Cuff


    SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CUFFED);
    SetPlayerAttachedObject(playerid, 0, 19418, 6, -0.011000, 0.028000, -0.022000, -15.600012, -33.699977, -81.700035, 0.891999, 1.000000, 1.168000);


    Uncuff


    RemovePlayerAttachedObject(playerid, 0);
    SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);

    Wenn du es haargenau von Red_Romeo kopierst funktioniert es!
    Hab es selbst getestet.


    Die Tür wird ja auch erst nach 3 Minuten ( wieder ) erstellt.

    Blackshadowscript:


    Du hast doch eine Lösung von Red_Romeo: erhalten, in deinem anderem Thread.


    Ansonsten ( von Red_Romeo )
    new sprenung;
    new trsodoor ;

    Ansonsten ( von Red_Romeo )
    public OnGameModeInit(){
    trsodoor = CreateObject(2634, 1551.63159, -1801.69556, 26.47590, 0.00000, 0.00000, 0.00000);//tresortür
    return 1;
    }

    Ansonsten ( von Red_Romeo )
    forward Explosion();
    public Explosion()
    {
    CreateExplosion(1551.63159, -1801.69556, 26.47590, 0, 3);
    DestroyObject(sprenung);//tnt
    DestroyObject(trsodoor);//tresortür
    sprenung=-1;//tnt
    trsodoor = -1;
    SetTimer("TresorTuer", 1000*60*3, false);
    return 1;
    }

    Ansonsten ( von Red_Romeo )
    forward TresorTuer();
    public TresorTuer(){
    if(IsValidObject(trsodoor))return 1;
    trsodoor = CreateObject(2634, 1551.63159, -1801.69556, 26.47590, 0.00000, 0.00000, 0.00000);//tresortür
    return 1;
    }

    Ansonsten ( von Red_Romeo )
    ocmd:transporttresorsprengen(playerid,params[])
    {
    if(IsValidObject(sprenung))return SendClientMessage(playerid, -1, "Die Tür wird bereits gesprengt.");
    if(!IsValidObject(trsodoor))return SendClientMessage(playerid, -1, "Die Tür steht offen.");
    sprenung=CreateObject(1654, 1550.78955, -1801.41882, 26.45240, 0.00000, 0.00000, -180.00000);//tnt
    SendClientMessage(playerid,-1,"Achtung geht in Deckung das TNT geht in 2 sekunden hoch!");
    SetTimer("Explosion", 2000, false);
    return 1;
    }
    Quelle

    Gib dem Object welches du erstellst im public eine Variable via new ExplosiveObject = CreateObject(...
    Und dann DestroyObject(ExplosiveObject);


    So wird dann auch sicher nur dieses Object gelöscht.

    Blackshadowscript:


    Variante 1
    ocmd:autobordcomputer(playerid,params[])
    {
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return 1;
    ShowPlayerDialog(playerid,DIALOG_Autosystem,DIALOG_STYLE_TABLIST, "Autobordcomputer","Motor\tstarten\tauschalten\nlicht\tanschalten\tausschalten\ntüren\töffnen\tschliessen\nAutoparken\tparken","benutzen","abbrechen");
    SendClientMessage(playerid,Gruen,"Sie haben den Bordcomputer Ihres Fahrzeuges aufgerufen!");
    return 1;
    }


    Variante 2
    ocmd:autobordcomputer(playerid,params[])
    {
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) {

    Variante 2
    ShowPlayerDialog(playerid,DIALOG_Autosystem,DIALOG_STYLE_TABLIST, "Autobordcomputer","Motor\tstarten\tauschalten\nlicht\tanschalten\tausschalten\ntüren\töffnen\tschliessen\nAutoparken\tparken","benutzen","abbrechen");
    SendClientMessage(playerid,Gruen,"Sie haben den Bordcomputer Ihres Fahrzeuges aufgerufen!");
    }
    return 1;
    }


    /E Denkfehler von mir behoben