Beiträge von Hagi

    forward nextmessage(playerid);


    SendClientMessage(playerid,COLOR,"Erste Message");
    SetTimerEx("nextmessage",5000,0,"i",playerid);


    public nextmessage(playerid)
    {
    SendClientMessage(playerid,COLOR,"Nach 5 Sekunden");
    return 1;
    }

    Dann gehts du einfach nach der ersten Variante. Wenn der Spieler spawn - > OnPlayerSpawn(playerid)


    Dann überprüfst du, ob der Spieler ein Haus hat. Sollte dies der Fall sein, setzt du ihn an die Position des Hauses. Ich kenn dein Haussystem jetzt nicht, jedoch ist denke ich jedes Haus in einer Variable mit x,y und z Koordinaten festgelegt. In der Spielerdatei, wird denke ich die ID des Hauses stehen, welche gleichzeitig als Index für die Koordinaten genommen werden kann.

    Du hast die da erst erstellt. Benutzt (Abfragen o,ä) wird sie aber nicht, was aber auch nicht schlimm ist.


    Wichtig ist, dass du oben new pickup; hast und dann auch unter OnFilterScriptInit auch pickup = machst. Weil wenn du oben unter die includes nicht new pickup , sondern new pfeil machst, dann kann er die Pickupid natürlich auch nicht in die Variable pickup schreiben, da diese nicht existiert.

    Ich denke es wird nur folgendermaßen möglich sein. Die hast einen Timer, der alle 3 Sekunden oder so durchläuft (musste an die Geschwindigkeit des Ausschalten und der Performance anpassen).


    Dieser Timer schaltet bei allen Autos die Licher aus, wenn eine bestimmte Variable (durch einen Befehl veränderbar) auf einem bestimmten Wert gesetzt wurde. Funktion: UpdateVehicleDamageStatus();


    Läuft dann also folgendermaßen:


    Wenn man /licht an eingibt, wird das Licht angeschaltet mit dem oben genannten Befehl und eine spielerspezifische Variable wird auf 1 gesetzt.
    Die Funktion um immer ausschaltend er Lichter prüft jeden Spieler ob er in einem Fahrzeug sitzt und ob die Variable auf 0 steht. Sollte dies der Fall sein zerstört er die Lichter und das Licht geht aus. Da aber duch den Befehl die Variable auf 1 gesetzt wurde, gehen die Lichter nicht kaputt, sondern bleiben an.


    PS: Das ganze dürfte aber nur Nachts Funktionieren.


    new pickup;
    forward inhouse();


    public OnFilterScriptInit(playerid)
    {
    pickup = CreatePickup(1318, 1318, 732.9096,-2704.9937,15.1482, -1);
    SetTimer("inhouse",5000,1);
    return 1;
    }


    public inhouse()
    {
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerInRangeOfPoint(i, 7.0, 1318, 732.9096,-2704.9937,15.1482))
    {
    SetPlayerInterior(i, 5);
    SetPlayerPos(i, 1267.663208,-781.323242,1091.906250);
    }
    }
    return 1;
    }


    Alle 5 Sekunden wird abgefragt, ob der der Spieler 1 an der Position ist und dann wird er geportet.
    danach , praktisch im Millisekundenbereich
    wird abgefragt, ob der der Spieler 2 an der Position ist und dann wird er geportet.

    Unter OnPlayerEnterVehicle



    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    SetPlayerPos(playerid,x,y,z);

    if(dm[playerid] == 1 )
    {
    new rand = random(sizeof(MinigunRandomSpawn));
    SetPlayerInterior(playerid, 1);
    SetPlayerPos(playerid, MinigunRandomSpawn[rand][0], MinigunRandomSpawn[rand][1], MinigunRandomSpawn[rand][2]);
    ResetPlayerWeapons(playerid);
    GivePlayerWeapon(playerid,38,50000);
    SetPlayerHealth(playerid,100);
    else if(dm[playerid] == 2 )
    {
    new rand = random(sizeof(TankRandomSpawn));
    SetPlayerInterior(playerid, 1);
    SetPlayerPos(playerid, TankRandomSpawn[rand][0], TankRandomSpawn[rand][1], TankRandomSpawn[rand][2]);
    ResetPlayerWeapons(playerid);
    GivePlayerWeapon(playerid,38,50000);
    SetPlayerHealth(playerid,100);
    }


    }


    dm[playerid] = 1; // Wenn er immer in Minugunspawnen soll
    dm[playerid] = 2; // Wenn er immer in Panzer spawnen soll


    Im Befehl wird die Position das erste mal gesetzt. Dort musst du natürlich dann die Variable auf den entsprechenden Wert setzten.

    Genau daran liegts . Hier so sollte es funktionieren.


    dcmd(nachricht,9,cmdtext);


    dcmd_nachricht(playerid,params[])
    {


    new message[128];
    if(Spieler[playerid][admin] < 1){
    return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
    }
    if(sscanf(params,"s",message)){
    return SendClientMessage(playerid,COLOR_RED,"[Benutzung]: /nachricht [TEXT]");
    }
    new name[MAX_PLAYER_NAME];
    new string[128];


    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"%d Admin %s: %s" ,Spieler[playerid][admin],name,message);
    SendClientMessageToAll(COLOR_BLUE,string);
    return 1;
    }

    Dann musste das auch als String erstellen
    Ich weiß jetzt net wie du die Variable deklarierst. Jedoch sollte es irgentwie so aussehen.


    new GangzoneOwner[maxowners?][20];
    //Dann kannste auch Strings drin speichern.


    format(GangzoneOwner[0],sizeof(GangzoneOwner[0]),"%s",dini_Get("Gangzone.txt", "pz"));