Animation "Hände hoch" bei NPC's

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,


    wie es oben steht weiß ich nicht wie mann eine Animation bei NPC's macht


    ich habe es mit Special Action und Normal Animation versucht
    aber es hat nicht funktioniert


    hier der code

    ClearAnimations(cashierid);
    ApplyAnimation(cashierid, "ROB_BANK", "SHP_HandsUp_Scr", 4.0, 0, 0, 0, 0, 15);
    //und
    SetPlayerSpecialAction(cashierid, SPECIAL_ACTION_HANDSUP);


    wie kann man einen NPC animieren?


    MFG Piet

  • Das geht glaube ich nur, wenn du das recordest also beim aufnehmen des NPCs /handsup zum beispiel.

    Spoiler anzeigen
    10 Beiträge [X]
    50 Beiträge [X]
    100 Beiträge [X]
    150 Beiträge [X]
    200 Beiträge [X]
    250 Beiträge [X]
    300 Beiträge [X]
    350 Beiträge [X]
    400 Beiträge [X]
    450 Beiträge [X]
    500 Beiträge [X]
    550 Beiträge []
    600 Beiträge []
    650 Beiträge []
    700 Beiträge []
    750 Beiträge []

  • Ganz einfach du machst 2 Aufnahmen,


    eine in dem der Bot nur rumsteht
    und eine in dem der Bot die Hände hoch nimmt.


    Dann gehst du ins NPC script


    erstellst dir eine public Funktion, die die erste Aufnahme unterbricht und die 2. startet.
    umgekehrt genauso^^


    im GM rufst du die dann einfach per CallRemoteFunction auf

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

    Margarete Stokowski

  • Ok hier die sachen


    hier der NPC script

    #include <a_npc>
    #define RECORDING "cashier_0_none"
    #define RECORDING2 "cashier_0_hands"


    main()
    {
    }


    public OnNPCSpawn()
    {
    StartRecordingPlayback(2, RECORDING);//2 = Aufnahmetyp - Zu fuß
    }


    forward NPC_0_HANDS(nr);
    public NPC_0_HANDS(nr)
    {
    #pragma unused nr
    print("Cashier_0 get RECORDING 2");
    StopRecordingPlayback();
    StartRecordingPlayback(2, RECORDING2);

    }


    und hier wo ich es mache



    stock StartRobbing(playerid, cashierid)
    {
    //der rest ist geheim
    CallRemoteFunction("NPC_0_HANDS", "i", 1);
    SendClientMessage(playerid, SMS, "Robbery Startet");
    printf("Player %s(%d) startet Robbery at Cashier-NPC %d", SpielerName(playerid), playerid, cashierid);
    return 1;
    }


    also ich bekomme im der Server_log


    Zitat


    Player Piet_Meier(1) startet Robbery at Cashier-NPC 0



    MFG Piet

  • Ich weiß jetzt auch leider nicht wie die NPC Scripte geladen werden,
    aber du könntest ja mal versuchen dieses als FilterScript zu laden,
    was relativ Sinnlos wäre, aber man kann es mal versuchen^^

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

    Margarete Stokowski

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • ehm, Black ich habs genau umgekehrt als du es beschrieben hast erklärt :)
    ps: post wiederherstellen, danke :)

    Falsche Freunde: Fragen nach Kippen !
    Wahre Freunde: Sind der Grund, warum du keine Kippen hast !
    Falsche Freunde: Nennen deine Eltern Frau/Herr !
    Wahre Freunde: Nennen deine Eltern Mom/Dad !
    Falsche Freunde: Holen dich aus dem Knast und sagen dir, was getan hast, war falsch !
    Wahre Freunde: Sitzen in der Zelle neben dir und sagen: Scheiße...wir haben‘s verkackt...war aber verdammt lustig ! :P
    Falsche Freunde: Haben dich noch nie weinen sehen !
    Wahre Freunde: Weinen mit dir !
    Falsche Freunde: Werden dich stehen lassen, wenn die Menge das tut !
    Wahre Freunde: Werden der kompletten Menge den Arsch treten, die dich stehen gelassen hat ! c:
    Falsche Freunde: Bleiben für ne Weile !
    Wahre Freunde: Bleiben ein Leben lang !
    Falsche Freunde: Werden die Person, die Scheiße über dich erzählt, blöd vollabern !
    Wahre Freunde: Werden sie einfach ausknocken !
    Falsche Freunde: Werden das hier ignorieren !
    Wahre Freunde: Es Kopieren !

  • gut dann war der Löschgrund falsch...
    So wie du das willst geht das schon mal gar nicht, da du in NPC scripts keine CallRemote ausführen kannst und NPC natives kannst du auch nicht im GM ausführen, dazu fehlen dort die Parameter :P

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

    Margarete Stokowski

  • Ok würde es denn mit den RNPC funktionieren
    aber ich kenne es von [0.3e] COD5 - Los Santos Cops and Robbers - cod5sa


    /big edit


    ICH HABE ES GESCHAFFT


    also ich habe eine datei genommen und dann rein geschreiben mit der Funktion (cashierid 0 ist kassierer 0)

    stock CashierHandsUp(cashierid)
    {
    new cashieridstr[3];
    format(cashieridstr, 3, "%d", cashierid);
    dini_IntSet("cashierdata.ini", cashieridstr, 1);
    return 1;
    }


    weil es zum glück Timer im NPC script auch gehen ist hier mein NPC Script

    #include <a_npc>
    #include <dini>
    #define RECORDING "cashier_0_none"// Zivi gegen euren Aufnahmenamen ersetzen!
    #define RECORDING2 "cashier_0_hands"
    #define NUMBER 0


    main()
    {
    SetTimer("CheckHands", 250, 1);
    }


    public OnRecordingPlaybackEnd()
    {
    StartRecordingPlayback(2, RECORDING);//2 = Aufnahmetyp - Zu fuß, Recording = Der oben definierte Aufnahmename
    }


    public OnNPCExitVehicle()
    {
    StartRecordingPlayback(2, RECORDING);//2 = Aufnahmetyp - Zu fuß, Recording = Der oben definierte Aufnahmename
    }


    public OnNPCSpawn()
    {
    StartRecordingPlayback(2, RECORDING);//2 = Aufnahmetyp - Zu fuß, Recording = Der oben definierte Aufnahmename
    }


    forward CheckHands();
    public CheckHands()
    {
    new file[64], casnr[3];
    format(file, 64, "cashierdata.ini");
    format(casnr, 3, "%d", NUMBER);
    if(dini_Int(file, casnr))
    {
    print("Cashier_0 get RECORDING 2");
    StopRecordingPlayback();
    StartRecordingPlayback(2, RECORDING2);
    dini_IntSet(file, casnr, 0);
    }
    return 1;
    }


    UND ES GEHHHHHT


    und dynamisch mit sogar 2 NPC gehts auch :D


    MFG Piet