Beiträge von Haxler

    if(!Params[0])
    {
    SendClientMessage(playerid,0xAAAAAAAA,"");
    SendClientMessage(playerid,0xAAAAAAAA,"Das Passwort war nicht lang genug.");
    SendClientMessage(playerid,0xAAAAAAAA,"");
    SendClientMessage(playerid,0xAAAAAAAA,"Du bist noch nicht Registriert.Tippe /register [Passwort] ein um dich zu Registrieren.");
    SendClientMessage(playerid,0xAAAAAAAA,"");
    return 1;
    }
    else
    {
    Register(playerid,Params);
    SendClientMessage(playerid,0xAAAAAAAA,"Du musst dich zuerst Registrieren.");
    Kick(playerid);
    return 1;
    }
    }
    Kann natürlich nicht gehen: Du fragst ab, ob ein Passwort eingegeben wurde. Wenn ja dann führst du Register aus und kickst den Spieler vom Server. Du könntest einfach in der Funktion Register "SpawnPlayer(playerid);" ausführen. Das gleiche machst du dann auch noch für Login.


    edit:/
    Snap: ich denke mal er übergibt das eingegebene Passwort (Params) an die Funktion Register und Login. Dort wird er es dann wohl weiterverwenden...

    Es gibt viele Tutorials zum Thema Login/Register. Einfach mal suchen. Alternativ könntest du auch deinen Code + Fehler posten :D Dann können wir dir vielleicht helfen.

    GetPlayerName(playerid,name,12;

    wieso 12? Ein Name kann mehr als 12 Zeichen lang sein :O 32 oder 24 weiß es grad nicht genau... Ich würd einfach MAX_PLAYER_NAME verwenden.
    Und außerdem ist format(string,12,"bla...%s",name); auch falsch. Wenn der Name schon 12 Zeichen lang wäre, dann würden es mit "bla..." mehr sein. Also reicht
    12 auch nicht...

    if(strcmp("/admins",cmdtext,true) == 0)
    {
    new string[128],name[MAX_PLAYER_NAME],i=0;
    for(; i < MAX_PLAYERS; i++)
    {
    if(pInfo[i][admin] == 1)
    {
    GetPlayerName(i, name, sizeof(name));
    format(string, sizeof(string),"%s\n%s",name,string);
    }
    }
    ShowPlayerDialog(playerid, adminmenu, DIALOG_STYLE_MSGBOX,"Diese Admins sind online:", string, "Ok", "Verlassen");
    return 1;
    }
    so würd ichs versuchen 8|

    Find ich ganz gut nur mir sind ein paar Kleinigkeiten aufgefallen.


    1. Wieso startest du den Timer bei OnPlayerConnect?
    2. Die zwei Strings sind meiner Meinung nach zu groß ^^ Ein Fahrzeugname ist niemals 128 Zeichen lang... :D
    aber sonst ok...

    Ja kannst du:


    stock IsBeiKrankenwagen(playerid)
    {
    new Float:x,Float:y,Float:z;
    for(new i;i<MAX_VEHICLES;i++)
    {
    if(GetVehicleModel(i) == 520)//hier muss die krankenwagen modelid hin!
    {
    GetVehiclePos(i,x,y,z);
    if(IsPlayerInRangeOfPoint(playerid,10,x,y,z))return 1;
    }
    }
    return 0;
    }
    habs grad gescriptet also noch nicht getestet. Dann kannste einfach:


    if(IsBeiKrankenwagen(playerid))
    {
    SendClientMessage(playerid,0x00ff00,"Du bist bei einem Krankenwagen!");
    }

    Wie rufst du die Funktion auf? In einem Timer?
    public IsPlayerInArea(playerid)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new vid = GetPlayerVehicleID(playerid);
    if (IsPlayerInRangeOfPoint(playerid,10.0,1554.8311,-1605.7848,13.3828))
    {
    SetVehicleHealth(vid, 1000.0);
    }
    }
    return 1;
    }
    so müsste die Funktion heißen. Jetzt musst du die Funktion natürlich auch aufrufen.

    SendClientMessage(giveplayerid, COLOR_YELLOW, "%s hat dein Gehalt auf 1000 gesetzt!",playerinfo,sendername); //33131
    PlayerInfo[playerid][pPayCheck] += 1000[playerid]//33132
    kann garnicht klappen.
    1. playerinfo und sendername hast du nicht definiert.
    2. ergibt 1000[playerid] überhaupt keinen Sinn.
    3. Du musst mit parametern arbeiten wenn du den Gehalt anderer Spieler ändern willst. Dein Command funktioniert nur beim Spieler der ihn eintippt.

    Weiß nicht obs daran liegt aber mir ist etwas aufgefallen. Du hast name[MAX_PLAYERS] geschrieben. MAX_PLAYERS ist die Anzahl der max. Spielern. Du musst MAX_PLAYER_NAME verwenden :)


    edit: und grund muss ein String sein.

    if (strcmp("/pizza", cmdtext, true, 6) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid, Float:range, Float:x, Float:y, Float:z) // Hier kommen die Koordinaten von dem Stacked Well Pizza hin.
    {
    if(GetPlayerMoney(playerid)<30)
    {
    SendClientMessage(playerid, 0x00E1FFFF, "Verkäufer: Tut mir leid, Sie haben nicht genügend Geld!");
    return SendClientMessage(playerid, 0x00E1FFFF, "Verkäufer: Eine Ofenfrische Pizza kostet $30.");
    }
    SetPlayerHealth(playerid, 100);
    SendClientMessage(playerid, 0x00E1FFFF, "Verkäufer: Bitte sehr, frisch aus dem Ofen!");
    SendClientMessage(playerid, 0x00E1FFFF, "Das macht $30.");
    GivePlayerMoney(playerid, -30);
    }
    else SendClientMessage(playerid,0x00E1FFF,"Du bist nicht im Pizzaladen!");
    }
    test mal so

    Du erstellst ja auch nur 1 Textdraw und verwendest es für mehrere Spieler. Du solltest einen Array verwenden:


    statt new LvlInfo; einfach new LvlInfo[MAX_PLAYERS];


    Dann musst du überall wo LvlInfo vorkommt noch [playerid] ranhängen und bei OnPlayerConnect erstellen. (geht auch in ner Schleife)

    Hatte auch mal son Problem. Das merkwürdige war das GetPlayerSkin mir die richtige Skin-ID zurückgegeben hat aber ich den CJ-Skin hatte. Da reicht ne Funktion die nen kleinen Fehler hat und schon buggts :O