Beiträge von Pascal.

    @Jeffry
    Habe leider keine Idee mehr um diesen Bug zu beheben.
    Der crasht einfach die ganze Zeit beim laden und er crasht auch jedes mal wenn "Mapload (vor loadfs)" kommt.
    Crashdetect error: http://pastebin.com/9NDyJmpU


    @Jeffry
    Ich habe ein Problem mit den Map loading.
    Der schmiert einfach ab und zu hab.


    Weiter als den makierten print kommt er nicht.
    Auf mein Home server hatte das ganze geklappt aber auf dem root schmiert der jede 1-2 Minuten ab.

    Ich habe gesehen das die Lobby meiner Lobby sehr ähnelt.
    Beziehungsweise das was abgeguckt wurde sind diese Modes wo zb steht DM Race oder sowas.
    Chippy hatte selber Interesse an diesen Script, deshalb kann ich mir gut vorstellen das es einfach abgeguckt wurde.
    Screen aus meiner Lobby: http://fs2.directupload.net/images/150904/ksscrr6d.png


    Dann hatte ich noch euer Racemode getestet, ich finde es ist keine New Dawn alternative.

    In der server.cfg kannst du es auch ohne .so machen.
    Das Include ist im pawno/include ordner?
    Das Plugin ist in Plugins drin?


    Ansonsten nochmal recompilen und versuchen.

    So sollte man das hiden lassen:


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if (oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_ONFOOT)
    {
    PlayerTextDrawHide(playerid, vehHealthText[playerid]);
    }
    return 1;
    }

    Dann würde es aber noch vom Streamer ein Callback geben.



    public OnShootDynamicObject(playerid, weaponid, objectid, Float:fX, Float:fY, Float:fZ)
    {
    }


    //EDIT:
    Jeffry:
    for (new id = 0, j = CountDynamicObjects(); id < j; id++)
    {
    if (Streamer_GetIntData(STREAMER_TYPE_OBJECT, id, E_STREAMER_WORLD_ID) <= 89)
    {
    DestroyDynamicObject(id);
    }
    }


    So klappt es leider auch nicht, der entfernt trotzdem jedes Object, egal in welcher Welt.

    Probiere es so:


    public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
    {
    if(IsBeingSpeced[playerid] == 1){
    for(new i=0;i<MAX_PLAYERS;i++){
    if(spectatorid[i] == playerid){
    TogglePlayerSpectating(i, false);
    SetPlayerInterior(i,GetPlayerInterior(playerid));
    SetPlayerVirtualWorld(i,GetPlayerVirtualWorld(playerid));
    TogglePlayerSpectating(i, true);
    }
    }
    }
    return 1;
    }

    Kann mir jemand sagen wie ich vorran gehen soll um eine Funktion einzubauen mit der ich mich teleportieren kann, zu dem Punkt wohin ich mit einer Waffe schieße?


    Das Ganze möchte ich aber nicht mit den fX, fY unf fZ Koordinaten machen, es sollte schon Möglich sein sich auf gemappte Objekte zu teleportieren. Ich habe ein Tipp von Slice bekommen und er meinte ich kann das mit z.B. 10 Timern machen, kann mir jemand den Anfang geben?


    Probiere es doch mal mit dem Callback.
    https://wiki.sa-mp.com/wiki/OnPlayerWeaponShot


    Das sollte schon damit Möglich sein, verstehe nicht warum du es nicht damit machen willst.

    Warum benutzt du statt GetPlayerInterior(playerid) nicht einfach die festgelegte Variable newinterior?
    Wenn es dort nicht klappt, könntest du ja mal bei OnPlayerUpdate Probieren.


    Ansonsten Probiere das mal:


    public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
    {
    if(IsBeingSpeced[playerid] == 1){
    for(new i=0;i<MAX_PLAYERS;i++){
    if(spectatorid[i] == playerid){
    TogglePlayerSpectating(i, false);
    SetPlayerInterior(i,GetPlayerInterior(playerid));
    SetPlayerVirtualWorld(i,GetPlayerVirtualWorld(playerid));
    TogglePlayerSpectating(i, true);
    }
    }
    }
    return 1;
    }


    Jeffry, die Objekte sollten weg sein, hatte mir ein kleinen befehl gebastelt der Zählt wieviel Dynamische Objekte noch sind und sie wurden immer entfernt, Danke ;)

    Kann es eventuell Möglich sein das die Funktion "IsValidDynamicObject()" rum spinnt?
    Hatte das schon mal, dann hab ich es raus genommen dann ging es, ich kann es ja mal ohne Probieren.


    //EDIT:
    Jeffry: Sorry, wenn ich dich immer direkt anspreche :D


    for (new id = 0, j = 1000; id < j; id++)
    {
    if ( Streamer_GetIntData(STREAMER_TYPE_OBJECT, id, E_STREAMER_WORLD_ID) <= 89)
    {
    printf("Destroy");
    DestroyDynamicObject(id);
    }
    }
    print("Fertig.");


    So hat es geklappt, ob die Objekte jetzt entfernt wurden konnte ich nicht sehen, aber es wurde immer Destroy ausgegeben. :thumbup:

    Ah habe es Verstanden, wie Jeffry schon sagte solltest du das in einem Timer machen.
    Am besten in einen Sekunden Timer.


    Unter OnGameModeInit:


    SetTimer("UpdateVehicleHealth", 1000, true); // Erstellt ein Timer der das Callback UpdateVehicleHealth immer aufruft, true = Wiederholen


    Dort wo du Platz hast bzw deine Publics sind, dass hier hin machen, sollte so passen:


    forward UpdateVehicleHealth();
    public UpdateVehicleHealth()
    {
    new Float:health, string[25], vID;


    for (new i = 0; i < MAX_PLAYERS; i++)
    {
    if (!IsPlayerConnected(i) || !IsPlayerInAnyVehicle(i)) continue; // Wenn er nicht Online ist oder nicht in einem Vehicle ist Überspringen


    vID = GetPlayerVehicleID(i);
    PlayerTextDrawDestroy(i, healthText[i]);
    GetVehicleHealth(vID, health);
    format(string,sizeof(string), "Fahrzeug: %.0f%s", health/10.0, "%");
    healthText[i] = CreatePlayerTextDraw(i, 320.0, 0.0, string);
    PlayerTextDrawShow(i, healthText[i]);
    }
    return 1;
    }


    //EDIT:
    Jeffry: war schneller :D