Beiträge von Kaliber

    nicht aufruft/ausführt.


    Okay, dann mach es mal so:


    //Im Gamemode
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys & KEY_JUMP && IsPlayerInVehicle(playerid, busa)) return file_set_content("Bot.txt","1");
    return 1;
    }


    //Im Npc-Skript
    //Irgendwo, wo das PlayBack gestartet wird:
    SetTimer("@Check",499,1);


    @Check();@Check() {
    if(!strval(file_get_content("Bot.txt"))) return 0;
    PauseRecordingPlayback();
    return file_set_content("Bot.txt","0");
    }


    stock file_set_content(const path[], const string[]) {
    new File:f = fopen(path,io_write);
    return fwrite(f,string),fclose(f);
    }


    stock file_get_content(const path[]) {
    new e_e[4]="0";
    if(!fexist(path)) return e_e;
    new File:f = fopen(path,io_read),string[4];
    return fread(f,string),fclose(f),string;
    }


    Probier es mal so, aus dem Kopf geschrieben, sollte aber klappen ;)


    mfg. :thumbup:

    Ja, tut mir Leid ^^


    Mein Fehler, das geht ja auch nicht, das steht ja alles in der a_players.inc :D


    Nutze einfach CallRemoteFunction :rolleyes:


    //Im Gamemode:
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys == KEY_JUMP && IsPlayerInVehicle(playerid, auto)) return CallRemoteFunction("@pR","");
    return 1;
    }


    //Im NPC-Skript
    @pR();@pR() return PauseRecordingPlayback();


    mfg. :thumbup:

    //Und da ich ja PauseRecordingPlayback(); nicht im eigentlichen Gamemode aufrufen kann, da ich die Include nicht einfach so verwenden kann, brauche ich dieses ja in der eigentlichen Include und in der PWN vom Bot.


    Arbeite mit PVars, CallRemoteFunction oder setproperty um einen Zugriff vom Gamemode, auf das NPC-Skript zu bekommen und das dann so zu ändern ;)


    Wie soll den der Bot auf KEY_JUMP drücken o.O?


    Mit FCNPC wäre das z.B. möglich: FCNPC_SetKeys


    mfg. :thumbup:

    Alles schön und gut. Aber wie sieht es mit den anderen Funktionen aus?
    Vorallem, wie mache ich das, wenn ich im eigentlichen Gamemode, den Bot direkt in ein definiertes Fahrzeug setze? Ich hab vehicleid durch die Variable geändert. Diese erkennt er aber dennoch nicht an.


    Im Gamemode, musst du ohne a_npc arbeiten.


    Allerdings ist das doch kein Problem, wenn du die ID vom Bot hast, kannst du doch PutPlayerInVehicle etc...nutzen :rolleyes:

    Ich brauche da sowas wie


    In der a_npc Include gibt es die Funktion GetPlayerVehicleID, sprich man kann sich die Funktion IsPlayerInVehicle basteln:


    stock IsPlayerInVehicle(playerid,vehicleid) return (GetPlayerVehicleID(playerid) == vehicleid) ? 1 : 0;
    stock IsPlayerInAnyVehicle(playerid) return (GetPlayerVehicleID(playerid) != 0) ? 1 : 0;


    mfg. :thumbup:

    cool bleiben


    Okay, sry :D


    Mach es mal so:


    ocmd:roadblock(playerid,params[])
    {
    new wantedplayerid, Float:xwpid, Float:ywpid, Float:zwpid;
    if(sscanf(params,"u",wantedplayerid)) return SendClientMessage(playerid,COLOR_WHITE,""), SendClientMessage(playerid,COLOR_WHITE,"Du kannst einem Spieler eine Straßensperre an der Brücke von Los Santos und Flint County erstellen."), SendClientMessage(playerid,COLOR_YELLOW,"Benutzung: /roadblock [ID]");
    if(!IsPlayerConnected(wantedplayerid)) return SendClientMessage(playerid,-1,"Dieser Spieler ist nicht online!");
    GetPlayerPos(wantedplayerid,xwpid,ywpid,zwpid);
    if (!IsPlayerInRangeOfPoint(wantedplayerid,250,52.2971,-1534.7878,4.7385) || !IsPlayerInRangeOfPoint(playerid,250,xwpid,ywpid,zwpid)) return SendClientMessage(playerid,COLOR_WHITE,""), SendClientMessage(playerid,COLOR_RED,"Straßensperre fehlgeschlagen! Der Spieler wäre zu nah an der Straßensperre oder du bist zu weit entfernt vom Spieler.");
    SendClientMessage(playerid,COLOR_WHITE,""), SendClientMessage(playerid,COLOR_YELLOW,"Es wurde eine Straßensperre an der Brücke von Los Santos und Flint County errichtet.");
    CreateVehicle(596,51.4780,-1540.6693,4.6917,172.2895,0,1,0); // 1
    CreateVehicle(596,52.2971,-1534.7878,4.7385,352.3497,0,1,0); // 2
    CreateVehicle(596,53.1344,-1528.8831,4.6971,171.5437,0,1,0); // 3
    CreateVehicle(596,53.9985,-1523.2626,4.5887,352.5575,0,1,0); // 4
    return 1;
    }


    mfg. :thumbup:

    Ich dachte mir schon was ist das für ein Schwachsinn


    Also es gibt IsPlayerInVehicle, diese Funktion hat 2 Parameter und prüft ob sich der Spieler in diesem Auto befindet.


    und es gibt IsPlayerInAnyVehicle, diese Funktion hat nur 1nen Parameter und prüft ob der Spieler sich überhaupt in irgendeinem Auto befindet ;)


    mfg. :thumbup:

    Welche Sprache?


    Wir sind hier im GTA SA:MP Bereich..unter Scripting Base...also wahrscheinlich Pawn.


    Allerdings mal was zu der Anfrage:


    1. Das hier ist die falsche Sektion.
    2. Was ist das für eine Anfrage? 1. Achte mal auf deine Rechtschreibung und 2. Schreib mal mehr über dich, wie alt bist du...etc?
    3. Konkretisiere deine Anfrage, was genau willst du wissen?
    4. Bietest du eine Gegenleistung?


    mfg. :rolleyes:

    Hättest du doch auch einfach 5000 eintragen können


    Ja...und? Macht doch keinen Unterschied, da das vom Compiler schon ausgerechnet wird und ich es so übersichtlicher finde :p


    Denn 1000*60*60 ist ja wohl übersichtlicher als 3600000? :D Da hat man immer einen schönen Überblick, wie lange das ist ;)


    mfg. :thumbup:

    danke für jede hilfe


    Meinst du sowas?


    if(!strcmp(cmd, "/rep", true)) {
    if(!IsPlayerInRangeOfPoint(playerid,8.0,1547.7292,-1609.7852,12.9977)) return SendClientMessage(playerid,COLOR_GRAD1,"Du befindest dich nicht am Repair-Point!");
    if(!IsACop(playerid) || !IsPlayerInFrac(playerid, 7)) return SendClientMessage(playerid, COLOR_GRAD1, "Du bist kein Cop!");
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid,COLOR_GRAD1,"Du bist nicht der Fahrer eines Wagens!");
    new vID = GetPlayerVehicleID(playerid),Float:p[4];
    GetVehiclePos(vID,p[0],p[1],p[2]),GetVehicleZAngle(vID,p[3]);
    SetVehiclePos(vID, newX, newY, newZ),SetVehicleZAngle(vID, newA); //Hier natürlich neue Koordinaten einsetzen, wo das auto hin soll
    RepairVehicle(vID),SetVehicleHealth(vID, 1000.0);
    SendClientMessage(playerid, COLOR_GREY, "Dein Auto wurde auf kosten des Staates repariert!");
    return SetTimerEx("@reSET",1000*5,0,"dffff",vID,p[0],p[1],p[2],p[3]); //Der Timer portet das Auto in 1000*5ms zurück ->das sind 5 Sekunden
    }


    //Unten im Script
    @reSET(vID,Float:x,Float:y,Float:z,Float:a);
    @reSET(vID,Float:x,Float:y,Float:z,Float:a) return SetVehiclePos(vID,x,y,z),SetVehicleZAngle(vID,a);


    Achte auf meine Kommentare ;)


    mfg. :thumbup: