Beiträge von Bluescreen

    Benutzt du irgendein eine Externe Datei bzw. php Skript was auf dem Server RCON-Rechte benötigt? z.b. Online Map
    Und schau mal unter


    public OnRconLoginAttempt(ip[], password[], success)
    was dort steht, vielleicht lässt du dort irgendwie etwas ausführen

    Gib den Grund doch einfach mit dem Timer weiter?
    Einfach beim Timer:


    SetTimerEx("BanWithMessage", 100, true, "is", pID, reason);
    und dann beim Aufrufen vom Timer:


    public BanWithMessage(playerid, reason)
    {
    BanEx(playerid, reason); // Hier soll dan der Grund wieder ausgegebn werden
    return 1;
    }


    edit: Zu deinem Problem weiß ich leider auch nicht wirklich etwas.

    @Schwabbel Ist es möglich einem Bool einen String zu zuweisen also zum Beispiel bei einem Integer:


    new var;
    var = 0;
    switch (var)
    {
    case 0:{"an";}
    case 1:{"aus";}
    }
    Wir würde dies bei einem Bool aussehen?

    Versuch nächstes mal in Verbindung mit Englischen Wörtern zu Suchen den wenn du es direkt auf Deutsch eingibst bekommt du meistens auch nichts richtiges.


    http://wiki.sa-mp.com/wiki/GetPlayerIp
    GetPlayerIp(playerid, plrIP, sizeof(plrIP));
    Kann man genau so wie ein Namen behandeln und die IP wird mit %s wiedergegeben nicht mit %i

    Werden den die Fahrzeuge überhaupt Gespeichert?
    Den du gibst mit der Schleife alle VehicleIDs weiter und dann Speichert er alle Fahrzeuge auf dem Server bzw. überschreibt alles bis zum letzten und dann Löscht er auch Theoretisch einfach alle.


    Um dieses Problem zu lösen:
    Mach eine Variable für den Spieler
    z.b.


    SpielerInfo[playerid][Key]
    trage in diese die CarID beim Laden vom Fahrzeug ein
    z.b.


    stock LoadCar(playerid)
    {
    new Fahrzeug;
    Fahrzeug = CreateVehicle(...);
    SpielerInfo[playerid][Key] = GetPlayerVehicleID(Fahrzeug);
    return 1;
    }
    und beim Speichern fragst du diese Variable ab und dann Speicherst du alles von der eingetragene Variable die du dem Spieler beim Laden des Fahrzeuges gegeben hast, dann müsste es funktionieren wenn du es richtig machst.

    Dieser String:


    format(string4, sizeof(string4), "/kick = Kickt einen Spieler\n/jail = Jailt einen Spieler\n/unjail = Befreit einen Spieler aus dem Jail\n/ban = Bannt einen Spieler\n/sethp = Änder die HP eines Spielers\n/setarmour = Ändert die Rüstung eines Spielers\n/freeze = Friert einen Spieler ein\n/unfreeze = Entfriert den Spieler\n/setskin = Ändert den Skin eines Spielers\n/respawn = Respawnt einen Spieler\n/givecash = Gibt einem Spieler Geld\n/agivegun = Gibt einem Spieler eine Waffe\n/afkcheck = Überprüft, ob ein Spieler AFK ist\n/checkip = Überprüft die IP eines Spielers");
    ist zu lang.
    Entweder musst du ihn mit mehren Strings in einen Formatieren oder du machst einfach ein \ oder / (weiß es nicht mehr genau) und dann einfach einen neue Zeile anfangen, dann müssten alle Errors weg sein.

    So muss das sein:
    #if defined Kickplayer
    for(new i; i<MAX_PLAYERS; i++)
    {
    SetPlayerWantedLevel(i,0);
    SendClientMessage(playerid,COLOR_GRAD3, "Du wurdest auf 0 Wanteds gecleart wegen Fakekill...");
    }
    SendClientMessage(playerid,COLOR_LIGHTRED,"Du wurdest wegen Fakekill vom Server gebannt!");
    SendClientMessage(playerid,COLOR_GRAD3, "Du wurdest von einem Admin gebannt, sollte es sich hierbei um ein Missverständnis handeln,");
    SendClientMessage(playerid,COLOR_GRAD3, "erstelle hiervon ein Screen (F8) und Erstelle im Forum einen Entbannantrag.");
    Ban(playerid);
    #else
    for(new i; i<MAX_PLAYERS; i++)
    {
    SetPlayerWantedLevel(i,0);
    SendClientMessage(playerid,COLOR_GRAD3, "Du wurdest auf 0 Wanteds gecleart wegen Fakekill...");
    }
    SendClientMessage(playerid,COLOR_LIGHTRED,"Du wurdest wegen Fakekill vom Server gebannt!");
    SendClientMessage(playerid,COLOR_GRAD3, "Du wurdest von einem Admin gebannt, sollte es sich hierbei um ein Missverständnis handeln,");
    SendClientMessage(playerid,COLOR_GRAD3, "erstelle hiervon ein Screen (F8) und Erstelle im Forum einen Entbannantrag.");
    Ban(playerid);
    TogglePlayerControllable(playerid, false);
    Ban(playerid);
    #endif

    Denn wenn du die Nachrichten in die Schleife packst schickst du die Bann Nachrichtan alle Spieler auf dem Server, du willst sie aber nur Clearen.

    Nunja an deinem Code könnte es vielleicht liegen den du fragst die Vehicle ID ab und nicht die Model ID, richtig müsste es so aussehen:



    if(GetVehicleModel(vehicleid) == 509 || GetVehicleModel(vehicleid) == 491 || GetVehicleModel(vehicleid) == 510)
    {
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    Motor[vehicleid] = true;
    }


    Du kannst es ja mal so probieren vielleicht funktioniert es ja

    Versuche es mal so:



    ocmd:goto(playerid,params[]) {
    if(!isPlayerAnAdmin(playerid,1)) return ShowInfoDialog(playerid,"Zugriff Verweigert","Du bist kein Admin, oder hast nicht die benötigten Rechte dazu!");
    new pID,string[128];
    new Float:PosX, Float:PosY, Float:PosZ, vehicle;
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,COLOR_GRAD1,"Benutzung: /goto [playerid]");
    if(!IsPlayerConnected(pID)) return ShowInfoDialog(playerid,"Teleport Info","Der angegebene Spieler wurde nicht gefunden!");
    GetPlayerPos(pID, PosX, PosY, PosZ);
    SetPlayerPos(playerid,PosX ,PosY+2, PosZ);
    new playerInt = GetPlayerInterior(pID);
    SetPlayerInterior(playerid, playerInt);
    new virtualworld = GetPlayerVirtualWorld(pID);
    SetPlayerVirtualWorld(playerid,virtualworld);
    format(string, sizeof(string), "%s hat sich zu %s geportet.", SpielerName(playerid),SpielerName(pID));
    SendAdminMessage(COLOR_LIGHTRED,string);
    return 1;
    }

    Wäre es nicht etwas Schlauer wenn du anstatt


    WantedLevel[i]
    GetPlayerWantedLevel(i)
    benutzt?
    Dies wäre natürlich nur Schlauer wenn du die Wanted Funktion von SA:MP benutzt wenn du selbst Sterne erstellst mit Textdraw etc. dann schau mal nach ob beim Tod die Wanteds zurückgesetzt werden und wenn nicht dann mal bei OnPlayerSpawn vielleicht hast du dort etwas, sonst wüsste ich auch nicht an was es liegen könnte.

    Lässt du dich vielleicht in das Auto von dem Spieler als Fahrer Porten oder lässt du ihn aus dem Fahrzeug schmeißen wenn du dich zu ihm Portest?
    Den es kann eigentlich nur an deinem /goto Befehl (oder wie er heisst) liegen, schau ihn dir einfach mal an.

    Einfach


    PlayAudioStreamForPlayer(playerid, "http://ip-oder-domain/pfad/zur/datei.mp3");
    benutzen ohne 0.0,0.0,0.0 den das ganze funktioniert auch ohne die Koordinaten und das ist bei einem Tutorial sinnvoller den dann musst du nicht andauernd die Koordinaten aktualisieren bzw. jedes mal den Stream erneut Starten.


    Und nicht vergessen mit


    StopAudioStreamForPlayer(playerid);
    die Musik zu Stoppen den wenn du dies vergisst kann das ganz schön herum spacken.

    Ja, kannst du einfach bei deinem Befehl


    ConnectNPC("BOT","Bot");
    ausführen lassen dann einen Timer setzen


    SetTimer("BotKick",60000 * 5,false);
    und dann beim Public wieder Disconnecten lassen:


    public BotKick()
    {
    Kick(GetPlayerID("Bot"););
    return 1;
    }
    Um ehrlich zu sein habe ich das ganze nicht getestet, du müsstest dir irgendwie eine Funktion einbauen in dem er sich die ID von dem Bot mit diesem Namen holt, den ich weiß nicht wirklich ob das funktioniert was ich Geschrieben habe.


    edit: Fail verbessert

    Es gibt Zwei Arten wie man das machen kann, einmal durch Schreiben des Geburtstages Monats und Jahres, aber man kann einfach in ein Dialog das aktuelle Alter rein Schreiben und dann hast du es auch.


    Für die Zweite möglichkeit:


    #define DIALOG_ALTER (1)
    ShowPlayerDialog(playerid,DIALOG_ALTER, DIALOG_STYLE_INPUT, "Alter", "Bitte gebe nun dein Alter ein:", "Weiter", "Abbrechen");
    Bei OnDialogResponse:


    if(dialogid == DIALOG_ALTER)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,FARBE,"Du hast die Registration abgebrochen.");
    Kick(playerid);
    }
    if(response == 1)
    {
    new string[64];
    SpielerInfo[playerid][pAlter] = strval(inputtext);
    format(string, sizeof(string), "Okay du bist also %i Alt.",strval(inputtext));
    SendClientMessage(playerid,COLOR_RED, string);
    }
    }
    Bei der ersten möglichkeit weiß ich leider noch nicht wie man diese umsetzt, aber wenn ich es irgendwann rausbekomme, dann kann ich es dir auch zeigen.