Beiträge von Kasakow

    Ich habe leider gerade einen Impulskauf getätigt und mir eine Lizenz für die PawnIT IDE geholt, warte gerade noch auf den Entwickler dass er sich mit mir in Kontakt setzt bezüglich meines Erhalts der Lizenz.
    Finde es wirklich Schade, dass das Programm nicht weiter entwickelt wird. Hat jemand eine alternative für mich? Ich benutze in ferner Zukunft einen Windows Dedicated Server und und kompiliere auch auf dem System, ich möchte aber so ein tolles Features wie bei der PawnIT IDE mit der verschlüsselten PAWN Datei? Kennt da jemand was ähnliches?

    Ich habe gelesen, dass bei dem TakeDamage Callback, die Health nicht aktuell sind, also noch die vor dem Schuss.
    Meint ihr, das würde so einwandfrei funktionieren oder gibt es noch saubere Methoden?


    Aktuelle Idee:

    if(AdminDuty(playerid) == 1)
    {
    new Float:myhealth;
    GetPlayerHealth(playerid, myhealth);
    return SetTimerEx("SchutzLeben", 50, false, "df", playerid, myhealth);
    }


    public SchutzLeben(playerid, Float:oldhealth)
    {
    SetPlayerHealth(playerid, oldhealth);
    return 1;
    }

    Tatsache, habe es gerade ausprobiert.


    Habe gerade ein bisschen rumprobiert.
    killerid kannst du auch nutzen.


    Aber, probier mal das aus.



    new LastDriver[MAX_VEHICLES];


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate&PLAYER_STATE_DRIVER)
    {
    if(IsValidVehicle(GetPlayerVehicleID(playerid)) //Weil beim Tod auch die State auf Driver gewechselt wird.
    {
    LastDriver[GetPlayerVehicleID(playerid)] = playerid;
    }
    }
    }


    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    LastDriver[vehicleid] = INVALID_VEHICLE_ID;
    return 1;
    }


    public OnVehicleDeath(vehicleid, killerid)
    {
    if(IsPlayerConnected(LastDriver[vehicleid]))
    {
    if(killerid != LastDriver[vehicleid])
    {
    SendClientMessage(LastDriver[vehicleid], -1, "Dein Fahrzeug wurde zerstört.");
    }
    else
    {
    SendClientMessage(killerid, -1, "Du hast ein fremdes Fahrzeug zerstört.");
    }
    }
    return 1;
    }


    //bei Ongamemodeinit
    for(new i = MAX_VEHICLES, k; k < i; k++)
    {
    LastDriver[k] = INVALID_PLAYER_ID;
    }

    @JacLos
    Du kannst es z.B so machen.


    //EDIT



    stock GetDriverID(id)
    {
    for(new i;i<GetMaxPlayers();i++)
    {
    if(!IsPlayerConnected(i) || GetPlayerState(i) != PLAYER_STATE_DRIVER)continue;
    if(GetPlayerVehicleID(i) == id)return i;
    }
    return INVALID_PLAYER_ID;
    }


    public OnVehicleDeath(vehicleid, killerid)
    {
    new playerid = GetDriverID(vehicleid);
    if(playerid != INVALID_PLAYER_ID)
    {
    //In dem Fahrzeug sitzt jemand drinne, playerid ist der Fahrer
    }
    else
    {
    //Das Fahrzeug hat keinen Fahrer
    }
    return 1;
    }

    Wieso wird bei dieser Funktion das zuletzt erstellte Fahrzeug, nicht zurück an seinen Herkunftsort gebracht?



    ocmd:rac(playerid)
    {
    if(pInfo[playerid][pAdmin] < 3)return 1;
    if(AdminDuty(playerid) == 0)return SCM(playerid, COLOR_LIGHTRED, "Du bist nicht im Dienst!");
    for(new i;i<GetVehiclePoolSize();i++)
    {
    if(IsVehicleEmpty(i) == 0)continue;
    SetVehicleToRespawn(i);
    }
    new string[75];
    format(string, sizeof string, "Teammitglied %s respawnt alle unbesetzten Fahrzeuge.", getName(playerid)),
    SCMTA(COLOR_LIGHTBLUE, string),
    playerProtocol(playerid, "hat alle unbesetzten Fahrzeuge respawnt");
    return 1;
    }

    Ah ja, danke. Ich hatte die Situation erst kürzlich mit einer anderen Variable.
    Mir ist noch was in den Sinn gekommen, eventuell könnte man ja Silent Aim aufspüren.


    Meine Idee war es mit dem Callback OnPlayerWeaponShot zu arbeiten.
    Wenn man die Position vergleichen tut, mit der Position wo der Spieler eigentlich steht, könnte man sowas doch eigentlich Detecten oder was meint ihr? Natürlich würde man die Frames und die Latenz berücksichtigen aber sobald es zu oft vorkommt, eine Warnung rausschicken.

    Jemand eine Idee wieso ich das Ticket nur schließen kann wenn ich schon im LiveChat bin?
    Wenn ich ein Ticket erstellt habe und es auch noch keiner angenommen hat, macht er gar nichts beim /closeticket Befehl, wenn ich im LiveChat Modus bin, schließt er es Ordnungsgemäß.


    Quellcode

    ocmd:ticket(playerid, params[])
    {
    if(pInfo[playerid][pTicketCreate] == 1 || pInfo[playerid][pTicketID] != INVALID_PLAYER_ID)return SCM(playerid, COLOR_GREY, "Du bist bereits im TicketChat oder hast eins erstellt.");
    new inhalt[220];
    if(sscanf(params, "s", inhalt))return SCM(playerid, COLOR_GREY, "Befehl: /ticket [Ticket Inhalt] MAX 200 Zeichen.");
    if(strlen(inhalt) > 200)return SCM(playerid, COLOR_GREY, "Du kannst maximal 200 Zeichen verwenden.");
    new day, month, year, hour, minute, second;
    getdate(year, month, day),
    gettime(hour, minute, second),
    pInfo[playerid][pTicketCreate] = 1,
    format(pInfo[playerid][pTicketMSG], 200, "%s", inhalt),
    format(pInfo[playerid][pTicketDate], 50, "%02d.%02d.%02d | %02d:%02d:%02d ", day, month, year, hour, minute, second),
    format(inhalt, sizeof inhalt, "%s hat ein Ticket erstellt. /sticket um alle Tickets anzuzeigen.", getName(playerid)),
    SendAdminMessage(COLOR_TICKET, inhalt),
    SCM(playerid, COLOR_TICKET, "Du hast ein Ticket erstellt. Die Teammitglieder haben eine Nachricht erhalten."),
    SCM(playerid, COLOR_TICKET, "Du kannst deine Anfage jederzeit via /closeticket zurückziehen.");
    return 1;
    }


    ocmd:closeticket(playerid)
    {
    if(pInfo[playerid][pTicketCreate] == 0 && pInfo[playerid][pTicketID] == INVALID_PLAYER_ID)return 1;
    if(pInfo[playerid][pTicketID] != INVALID_PLAYER_ID)SCM(pInfo[playerid][pTicketID], COLOR_TICKET, "Deine Ticket Verbindung wurde unterbrochen, Grund: Partner hat den Reportmodus verlassen.");
    pInfo[pInfo[playerid][pTicketID]][pTicketID] = INVALID_PLAYER_ID,
    pInfo[playerid][pTicketID] = INVALID_PLAYER_ID,
    pInfo[playerid][pTicketCreate] = 0,
    SCM(playerid, COLOR_TICKET, "Du hast das Ticket geschlossen/gelöscht.");
    return 1;
    }

    Man hat allein aufgrund Andy seinem wirklich pubertären Verhaltens und seiner wirklich ihm schwer fallenden Kritikfähigkeit gemerkt, dass genau das ein Punkt, was sehr viele User abschreckt.
    Zudem auch wenn ich es traurig finde, sind die Leute aus der heutigen Zeit zu unmotiviert sind, sich mit ein paar Klicks Zugang zum 0.3.DL Multiplayer zu verschaffen. Dieses Desinteresse an diesem Klienten könnte aber auch in Verbindung an dem mangelnden Vertrauen zum Projekt stehen, da man ja, Viren einschleusen kann & Kalcor diesen eigentlich guten, schönen Klienten nicht weiterentwickeln wollte, Schade drum. Was ich jetzt mit meinem eigentlich total überflüssigen Text hier mitteilen möchte? Das ein Projekt eröffnen nicht heißt, wir haben einen Server, Forum & TS sowie einen Gamemode.. sondern das Team, die Atmosphäre & das Konzept müssen passen. Wenn wir mal ehrlich sind, wer arbeitet denn auch gerne an einem Arbeitsplatz wo die Atmosphäre untereinander sehr aggressiv umhergeht, also ich nicht. Das waren meine letzten Worte die ich zu diesem Projekt verschwendet habe.

    Möchte alle Spieler die ein Ticket aufgemacht haben, nacheinander in den Listitems anzeigen lassen und die SpielerIDS zwischenspeichern. Sprich, Spieler X und Spieler Y haben ein Ticket offen, ich sehe das im Dialog. Spieler X hat ID 65 und Spieler Y 22, diese IDS sollen den entsprechenden Listitems zugeordnet werden können.


    Macht mein aktueller Code Sinn? War auf jeden Fall eine Idee von mir, das so zu gestalten.


    if(!strcmp(call, "sticket", true))
    {
    for(new i, count = 0;i<GetMaxPlayers();i++)
    {
    if(LoggedIn(i) == false)continue;
    if(pInfo[i][pTicketCreate] == 0)continue;
    TicketCountID[playerid][count] = i,
    count ++;
    format(string, sizeof string, "%s - Datum: %s\n", getName(i), pInfo[i][pTicketDate]);
    }
    ShowPlayerDialog(playerid, D_STICKET, DIALOG_STYLE_LIST, "Offene Tickets.", string, "Wählen", "Schließen");

    Wie nimmst du dir nicht ein wenig mehr Zeit und entwickelst das Script auf einen wirklich spielbaren Stand ?
    So "Projekte" scheitern laut Statistik fast jedes mal.
    Ich finde du ihr habt wirklich zu voreilig gehandelt, kein Forum, kein Ts sobald ich mich nicht verlesen habe, das Script noch nicht richtig Spielbar aber schon starten wollen ? Naja.. schauen wir mal was daraus wird.