Beiträge von T4125Gamer

    Xx5_GumxX


    Nehmen wir mal den Befehl auseinander, um zu sehen was dort geschieht. Fangen wir ganz vorne an.


    if(pInfo[playerid][pAdmin] >= 1)
    Hier überprüfen wir (das Script) ob der Spieler ein höheres Adminlevel als 1 besitzt. Wenn das der Fall sein sollte, dann geht es weiter mit dem Code. Wenn es nicht der Fall sein sollte, dann kommt folgendes:
    else <--- Wenn der Spieler kein höheres Adminlevel als 1 hat dann kommt die SendClientMessage und der Befehl wird nicht weiter durchgeführt.
    {
    SendClientMessage(playerid,COLOR_GRAU,"Du bist kein Admin!");
    }


    Wenn der Spieler jetzt doch ein höheres Adminlevel als 1 besitzt, dann kommt die Frage ob er sich in einem Auto befindet. Das überprüft man mit if(IsPlayerInAnyVehicle(playerid))
    Wenn das nicht der Fall sein sollte, dann wird nur die Person, also ohne Auto zum BSN geportet.
    else <--- Wenn der Spieler sich nicht in einem Auto befindet, dann passiert das untere.
    {
    SetPlayerPos(playerid, 1212.7854,-885.9028,42.9159);
    SendClientMessage(playerid, COLOR_GRAU, "Du hast dich Teleportiert! Nutze dies nicht aus.");
    return 1;
    }


    Ist der Spieler jetzt doch in einem Auto, dann wird der Code der darunter ist fortgeführt. Der sieht ja so aus:
    new vid = GetPlayerVehicleID(playerid);
    SetPlayerPos(playerid,1212.7854,-885.9028,42.9159);
    SetVehiclePos(vid,1212.7854,-885.9028,42.9159);
    PutPlayerInVehicle(playerid,vid,0);
    SendClientMessage(playerid, COLOR_GRAU, "Du hast dich Teleportiert! Nutze dies nicht aus.");
    Doch was geschieht da jetzt eigentlich. Nunja, zu allererst holen wir uns via new vid = GetPlayerVehicleID(playerid); seine Vehicle ID wo er gerade drinnen sitzt. Es ist völlig egal in welchem Auto er sich befindet, mit diesem Code wird die Vehicle ID bzw. die Auto ID herausgefunden.


    SetPlayerPos(playerid,1212.7854,-885.9028,42.9159);
    SetVehiclePos(vid <--- Hier ist die Vehicle ID wo wir durch GetPlayerVehicleID herausgefunden haben,1212.7854,-885.9028,42.9159);
    Hier wird 1. der Spieler an die Koordinaten gesetzt, aber auch das Auto wo er sich drinnen befindet, wird an diesen Punkt gesetzt. Die Koordinaten musst du gegeben falls ändern, wenn du dich woanders hin telepotieren möchtest. Somit währen jetzt Auto sowie Spieler an diesem Ort. Doch nun haben wir hier Folgendes:
    PutPlayerInVehicle(playerid,vid,0);
    Wenn diese Funktion jetzt nicht drinnen währe, dann würde der Spieler wahrscheinlich im Auto buggen und nicht im Auto sitzen, diese Funktion sorgt dafür das der Spieler in ein Auto gesetzt wird. Aber nicht in irgendeins, nein sondern in das, was mit geportet wurde.
    PutPlayerInVehicle(playerid, <--- es setzt den Spieler in das Auto
    PutPlayerInVehicle(playerid,vid <---- In welches Auto? In das Auto was mit geportet wurde (deswegen auch am Anfang new vid = GetPlayerVehicleID(playerid);
    PutPlayerInVehicle(playerid,vid,0 <---- Auf welche Sitzt im Auto? Auf dein Fahrer sitzt.


    So und zu guter letzt wird noch eine Message geschrieben, wenn er sich geportet hat
    SendClientMessage(playerid, COLOR_GRAU, "Du hast dich Teleportiert! Nutze dies nicht aus.");
    Und der ganze Befehl sieht dann so aus:


    if(strcmp("/gotobsn", cmdtext, true, 10) == 0)
    {
    if(pInfo[playerid][pAdmin] >= 1)
    {
    if (IsPlayerInAnyVehicle(playerid))
    {
    new vid = GetPlayerVehicleID(playerid);
    SetPlayerPos(playerid,1212.7854,-885.9028,42.9159);
    SetVehiclePos(vid,1212.7854,-885.9028,42.9159);
    PutPlayerInVehicle(playerid,vid,0);
    SendClientMessage(playerid, COLOR_GRAU, "Du hast dich Teleportiert! Nutze dies nicht aus.");
    return 1;
    }
    else
    {
    SetPlayerPos(playerid, 1212.7854,-885.9028,42.9159);
    SendClientMessage(playerid, COLOR_GRAU, "Du hast dich Teleportiert! Nutze dies nicht aus.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAU,"Du bist kein Admin!");
    }
    return 1;
    }


    Hinweis: Hier sind noch die Passagier sitze aufgelistet (PutPlayerInVehicle da wo der sitzt bestimmt wird)

    Zitat

    0 - Driver
    1 - Front Passenger
    2 - Back left passenger
    3 - Back right passenger
    4+ - Passenger seats (coach etc.)


    So ich hoffe du hast es jetzt richtig verstanden, was es mit diesem Befehl auf sich hat.
    MfG: T4125Gamer

    Wenn du ein neues Script anfängst, dann ist bei dem Public OnPlayerCommandText folgendes.


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    return 0;
    }


    So wird das aber sicherlich nicht in deinem Script aussehen, da du ja dort Befehle drinnen hast.
    Also scrollst du die Befehle entlang, bis du zu einem Ende kommst. Dort wird das dann so aussehen


    }


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {...


    So, jetzt ist das so:


    } <---- Hier ist die letzte Klammer, wo der Public OnPlayerCommandText geschlossen wird. Darüber müsste ein return 0; sein (sofern du das nicht geändert hast)


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {...

    [16:44:32] Loading plugin: streamer
    [16:44:34] Failed.
    [16:44:34] Loading plugin: sscanf
    [16:44:34] Failed.
    [16:44:34] Loaded 0 plugins.


    Siehste was


    Windows: streamer.dll /sscanf.dll
    Linux: streamer.so / sscanf.so


    In die server.cfg
    Windows: streamer sscanf
    Linux streamer.so sscanf.so

    public OnPlayerCommandText(playerid, cmdtext[])
    {
    return 0;
    }


    So sieht das aus. Ändere es so um:


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    return SendClientMessage(playerid,FARBE,"Diesen Befehl gibt es anscheinend nicht. Tippe (dein Befehl für die Command Anzeige) um die Befehle zu sehen");
    }