Beiträge von Salpoe

    Seitdem ich ein vehicle spawn system in mein Gamemode eingefügt habe, funktioniert kein einziger OnPlayerCommandText.
    Der Befehl zum spawnen von Fahrzeugen funktioniert mit zcmd und ist ganz unten im Script. Es würde ja bei OnPlayerCommandText nicht funktionieren :P
    Beim Compilen kommen keine Fehler, jedoch funktioniert kein einziger Befehl auf dem Server der von OnPlayerCOmmandText ausgeht, sondern nur der zcmd Befehl /vehicle <ID>


    Ich habe keine Ahnung was ich hier pasten soll, falls ihr was braucht, schreibt es und ich poste..


    Edit: Habe das System herausgenommen und es funktioniert trotzdem kein einziger Befehl..


    public OnPlayerCommandText(playerid, cmdtext[])


    {

    if (strcmp("/kill", cmdtext, true, 10) == 0)
    {
    SetPlayerHealth(playerid, 0);
    return 1;
    }
    if (strcmp ("/healme", cmdtext, true, 10) == 0)
    {
    SetPlayerHealth(playerid, 100);
    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 10.0);
    GameTextForPlayer(playerid, "free health!", 3000, 3);
    SendClientMessage(playerid, COLOR_GREEN, "");
    SendClientMessage(playerid, COLOR_GREEN, "* Your health has been set to 100 percent.");
    SendClientMessage(playerid, COLOR_GREEN, "* You can also refill your armour for 1 Credit!");
    return 1;
    }
    if (strcmp ("/armourme", cmdtext, true,10) == 0)
    {
    SetPlayerArmour(playerid, 100);
    PlayerPlaySound(playerid, 1130, 0.0, 0.0, 10.0);
    GivePlayerMoney(playerid, -1);
    GameTextForPlayer(playerid, "~g~Armour!", 3000, 3);
    SendClientMessage(playerid, COLOR_GREEN, "");
    SendClientMessage(playerid, COLOR_GREEN, "* You got 100 Percent armour. It costs you 1 Credit!");
    SendClientMessage(playerid, COLOR_GREEN, "* You can also refill your health for free!");
    return 1;
    }
    if (strcmp ("/givecredits", cmdtext, true,10) == 0)
    {
    GivePlayerMoney(playerid, 15);
    GameTextForPlayer(playerid,"50 Credits!", 3000,4);
    SendClientMessage(playerid, COLOR_GREEN, "");
    SendClientMessage(playerid, COLOR_GREEN, "You got 50 Creedits for free!");


    return 1;


    }
    if (!strcmp(cmdtext, "/clearchat", true))
    {
    SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_GREEN, "** Der Chat wurde gecleart.");


    return 1;


    }
    return SendClientMessage(playerid, COLOR_WHITE, "** This command does not exist. Type /cmds to view a list of all server commands.");
    }

    Nun tritt das Problem auf, dass der erste Charakter zwar angezeigt wird und ich spawnen kann, wenn ich jedoch einen Pfeil nach links oder rechts klicke, hat meine Kamera Position die selbe als im Blank Script.


    Wenn ich dann aber nocheinmal auf den selben Pfeil klicke, so kehre ich wieder zurück zu meiner gewünschten Charakterauswahlposition. Klicke ich nun wieder auf den Pfeil erneut, lande ich wieder im BlankScript Bereich. Hilfe?


    Hat keiner ne Idee? ?(

    public OnPlayerRequestClass(playerid, classid)
    {
    TextDrawHideForPlayer(playerid, Textdraw2);
    InterpolateCameraPos(playerid, -1921.331665, 889.161682, 39.587951, -1919.114624, 876.157958, 37.808879, 1000);
    InterpolateCameraLookAt(playerid, -1922.917724, 884.596923, 38.304508, -1923.967773, 875.028564, 37.395290, 1000);
    SetPlayerPos(playerid, -1927.9022,874.0268,35.4141);
    return 1;
    }


    Wenn ich nun meinen nächsten Charakter auswähle, dann wiederholt sich die Kamerabewegung. Kann man das irgendwie freezen, das sich das nur einmal bewegt??

    Das Textdraw wird bei mir jedoch nicht angezeigt wenn ich den Server betrete


    public OnPlayerConnect(playerid)
    {
    TextDrawShowForAll(playerid, Textdraw2);
    Textdraw2[playerid] = TextDrawCreate(661.000000, -12.000000, "New Textdraw");
    TextDrawBackgroundColor(Textdraw2[playerid], 255);
    TextDrawFont(Textdraw2[playerid], 1);
    TextDrawLetterSize(Textdraw2[playerid], 8000.000000, 8000.000000);
    TextDrawColor(Textdraw2[playerid], -1);
    TextDrawSetOutline(Textdraw2[playerid], 0);
    TextDrawSetProportional(Textdraw2[playerid], 1);
    TextDrawSetShadow(Textdraw2[playerid], 1);
    TextDrawUseBox(Textdraw2[playerid], 1);
    TextDrawBoxColor(Textdraw2[playerid], 255);
    TextDrawTextSize(Textdraw2[playerid], -34.000000, 0.000000);


    : warning 213: tag mismatch
    : warning 202: number of arguments does not match definition


    bei TextDrawShowForAll(playerid, Textdraw2);

    Jetzt ist alles richtig.


    Habs bei GameModeInit eingesetzt, wurde aber als Fehler angezeigt. Habs da rausgenommen


    Warum durfte ich das dort nicht einsetzen? Ich dachte alle TextDraws müssten da rein

    Habs jetzt.


    Habe das hier vergessen und somit habe ich nur mehr Fehler bekommen.


    public OnPlayerDisconnect(playerid, reason)
    {
    TextDrawDestroy(textdraw[playerid]);
    return 1;
    }


    Obwohl, ich habe doch noch wieder Fehler.


    Nach dem einsetzen bekomme ich bei


    Textdraw2[playerid] = TextDrawCreate(661.000000, -12.000000, "New Textdraw");
    TextDrawBackgroundColor(Textdraw2[playerid], 255);
    TextDrawFont(Textdraw2[playerid], 1);
    TextDrawLetterSize(Textdraw2[playerid], 8000.000000, 8000.000000);
    TextDrawColor(Textdraw2[playerid], -1);
    TextDrawSetOutline(Textdraw2[playerid], 0);
    TextDrawSetProportional(Textdraw2[playerid], 1);
    TextDrawSetShadow(Textdraw2[playerid], 1);
    TextDrawUseBox(Textdraw2[playerid], 1);
    TextDrawBoxColor(Textdraw2[playerid], 255);
    TextDrawTextSize(Textdraw2[playerid], -34.000000, 0.000000);


    In jeder Zeile


    error 017: undefined symbol "playerid"

    new Text:Textdraw2[MAX_PLAYERS];


    public OnPlayerConnect(playerid)
    {
    Textdraw2 = TextDrawCreate(661.000000, -12.000000, "New Textdraw");
    TextDrawBackgroundColor(Textdraw0, 255);
    TextDrawFont(Textdraw0, 1);
    TextDrawLetterSize(Textdraw0, 8000.000000, 8000.000000);
    TextDrawColor(Textdraw0, -1);
    TextDrawSetOutline(Textdraw0, 0);
    TextDrawSetProportional(Textdraw0, 1);
    TextDrawSetShadow(Textdraw0, 1);
    TextDrawUseBox(Textdraw0, 1);
    TextDrawBoxColor(Textdraw0, 255);
    TextDrawTextSize(Textdraw0, -34.000000, 0.000000);


    public OnPlayerRequestClass(playerid, classid)
    {
    TextDrawDestroy(playerid, Textdraw2[playerid]);
    return 1;
    }


    C:\Users\Alexander\Desktop\Script\gamemodes\Untitled.pwn(130) : error 033: array must be indexed (variable "Textdraw2")
    C:\Users\Alexander\Desktop\Script\gamemodes\Untitled.pwn(162) : error 033: array must be indexed (variable "Textdraw2")


    Zeile 130 bei GameModeInIt


    Textdraw2 = TextDrawCreate(661.000000, -12.000000, "New Textdraw");


    und 162 public OnPlayerConnect(playerid)
    {
    Textdraw2 = TextDrawCreate(661.000000, -12.000000, "New Textdraw");


    Was will mir der Fehler sagen?

    dcmd_setlabel(playerid,params[])
    {
    new string[160],Float: X, Float: Y, Float: Z,text[100],distance;
    GetPlayerPos(playerid, X,Y,Z);
    if(sscanf(params,"ds",distance,text))
    return 1; SendClientMessage(playerid,COLOR_WHITE,"* Use /setlabel [Distance] [Text] to set your 3D Label on your position. ");
    Create3DTextLabel(text,0x03B8FCFF,X,Y,Z,distance,GetPlayerVirtualWorld(playerid));
    format(string,sizeof(string),"Create3DTextLabel("%s",0x03B8FCFF,%f, %f, %f,%d,%d);",text,X,Y,Z,distance,GetPlayerVirtualWorld(playerid));
    SaveToLog("labels",string);
    return 1;


    }


    Wenn ich /setlabel eingebe, erscheint keine Meldung wie der Befehl einzugeben ist.


    Erst nach dem richtigen Ausführen des Befehls, erscheint die Meldung "* Use /setlabel [Distance] [Text] to set your 3D Label on your position. "


    Warum?

    Hallo Community.


    Habe wieder mal angefangen mit PAWN zu arbeiten. Im Gegensatz zu früher versuche ich dieses mal aber etwas zu lernen, anstatt alles in mein 'Script' runter zu pasten.
    Trotzdem habe ich manchmal Schwierigkeiten Dinge zu verstehen und auch Fehler zu berichtigen.


    Deshalb suche ich jemanden, an den ich mich bei Schwierigkeiten jederzeit wenden kann. Falls jemand die Zeit, Lust und auch die Kenntnise hat, möge sich bitte bei mir melden.


    Dankesehr!

    Das sind alle Befehle die ich habe, kein einziger geht.


    Includes
    // This is a comment
    // uncomment the line below if you want to write a filterscript
    //#define FILTERSCRIPT


    #include <a_samp>
    #include <sscanf>
    #include <zcmd>
    #include <gl_common>
    #include <junkbuster>


    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    public OnPlayerCommandText(playerid, cmdtext[])


    {

    dcmd(setlabel,8,cmdtext);

    if (strcmp("/kill", cmdtext, true, 10) == 0)
    {
    SetPlayerHealth(playerid, 0);
    SendClientMessage(playerid, COLOR_GREY, "Your health has been set to 0.");
    return 1;
    }
    if (strcmp ("/healme", cmdtext, true, 10) == 0)
    {
    SetPlayerHealth(playerid, 100);
    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 10.0);
    GameTextForPlayer(playerid, "free health!", 3000, 3);
    SendClientMessage(playerid, COLOR_GREEN, "* Your health has been set to 100 percent.");
    SendClientMessage(playerid, COLOR_GREEN, "* You can also refill your armour for 1 Credit!");
    return 1;
    }
    if (strcmp ("/armourme", cmdtext, true,10) == 0)
    {
    SetPlayerArmour(playerid, 100);
    PlayerPlaySound(playerid, 1130, 0.0, 0.0, 10.0);
    GivePlayerMoney(playerid, -1);
    GameTextForPlayer(playerid, "~g~Armour!", 3000, 3);
    SendClientMessage(playerid, COLOR_GREEN, "* You got 100 Percent armour. It costs you 1 Credit!");
    SendClientMessage(playerid, COLOR_GREEN, "* You can also refill your health for free!");
    return 1;
    }
    if (strcmp ("/givecredits", cmdtext, true,10) == 0)
    {
    GivePlayerMoney(playerid, 15);
    GameTextForPlayer(playerid,"50 Credits!", 3000,4);
    SendClientMessage(playerid, COLOR_RED, "An administrator gave you 15 Credits!");


    return 1;
    }
    return 0;
    }
    // dcmd


    dcmd_setlabel(playerid,params[])
    {
    new string[160],Float: X, Float: Y, Float: Z,text[100],distance;
    GetPlayerPos(playerid, X,Y,Z);
    if(sscanf(params,"ds",distance,text))
    return 1;
    SendClientMessage(playerid,COLOR_WHITE,"* Use /setlabel [Text] [Distance] to set your 3D Label on your position. ");
    Create3DTextLabel(text,0x03B8FCFF,X,Y,Z,distance,GetPlayerVirtualWorld(playerid));
    format(string,sizeof(string),"Create3DTextLabel("%s",0x03B8FCFF,%f, %f, %f,%d,%d);",text,X,Y,Z,distance,GetPlayerVirtualWorld(playerid));
    SaveToLog("labels",string);
    return 1;


    }


    Dann habe ich noch unten bisschen davon:


    public SaveToLog(filename[],text[])


    {
    new File:ffile;
    new filepath[128];
    new string[128];


    format(filepath,sizeof(filepath),"%s.txt",filename);
    ffile = fopen(filepath,io_append);
    format(string,sizeof(string)," %s\r\n",text);
    fwrite(ffile,string);
    fclose(ffile);
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    new Random = random(sizeof(RandomSpawns));
    SetPlayerPos(playerid, RandomSpawns[Random][0], RandomSpawns[Random][1], RandomSpawns[Random][2]);
    SetPlayerFacingAngle(playerid, RandomSpawns[Random][3]);
    return 1;
    }


    und noch ein forward für RandomSpawns.



    Kein Befehl funktioniert, woran liegt das?!


    PS: Ich bekomme keine Fehler beim compilen.

    dcmd(addlabel,8,cmdtext);
    return 1;

    }
    dcmd_addlabel(playerid,params[])
    {
    new string[160],Float: X, Float: Y, Float: Z,text[100],distance;
    GetPlayerPos(playerid, X,Y,Z);
    if(sscanf(params,"sd",text,distance)) return SendClientMessage(playerid,0xFB9204FF,"USAGE: /addlabel [text][distance]");
    Create3DTextLabel(text,0x03B8FCFF,X,Y,Z,distance,GetPlayerVirtualWorld(playerid));
    format(string,sizeof(string),"Create3DTextLabel("%s",0x03B8FCFF,%f, %f, %f,%d,%d);",text,X,Y,Z,distance,GetPlayerVirtualWorld(playerid));
    SaveToLog("labels",string);
    return 1;


    Habe alles versucht mein letztes Label zu löschen, sowie alle anderen zu gleich, ich habe einfach keine Ahnung


    Kann mir jemand bitte weiterhelfen?

    Könnt ihr das in meinem Script bitte so umschreiben, dass wenn man sich zum ersten Mal registriert, ein Tutorial kommt. Wenn man sich dann einloggt soll es nicht kommen! Ich habe schon öfters gefragt aber keiner Antwortet! Man muss in die Spielerdatei (dini) speichern das man das Tutorial gemacht hat, ich weiß aber nicht wie, trotz Erklärungen. Bitte macht euch nicht die Mühe es mir zu erklären, ich habs schon tausend Kombinationen versucht, aber es klappt nicht. Außerdem verstehe ich viele Begriffe nicht gut. Bitte einfach nur richtig einfügen!


    #include <a_samp>
    #include <dini>


    #define BLAU 0x0087FFFF
    #define msg 0xE10000FF
    #define blau 0x005BFFFF
    #define ROT 0xFF0000FF
    #define COLOR_GREEN 0x00BB00FF
    #define COLOR_WHITE 0xFFFFFFFF


    #define DIALOG_REGISTER 1
    #define DIALOG_LOGIN 2


    new bool:pFirstLog[MAX_PLAYERS],TutTimer[MAX_PLAYERS],TutTime[MAX_PLAYERS];
    forward Tutorial(playerid);




    main()
    {
    print("---------------------------------");
    print("---------------------------------");
    print("---------------------------------");
    }




    public OnGameModeInit()
    {
    return 1;
    }


    public OnGameModeExit()
    {
    return 1;
    }


    public OnPlayerRequestClass(playerid, classid)
    {
    return 1;
    }


    public OnPlayerConnect(playerid)
    {

    if(IsPlayerNPC(playerid))return 1;
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(dini_Exists(Spielerdatei))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
    }
    else
    {

    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
    }
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    SpielerSpeichern(playerid);
    }
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    if(pFirstLog[playerid] == true)
    {
    SetPlayerPos(playerid,0.0,0.0,0.0); // Tutorial Position
    TogglePlayerControllable(playerid,false);
    TutTime[playerid] = 1;
    TutTimer[playerid] = SetTimerEx("Tutorial",1000,1,"i",playerid);
    }
    return 1;
    }


    public Tutorial(playerid)
    {
    if(TutTime[playerid] >= 1) // wenn die Zeit auf 1 gesetzt worden war, gehts los. Wenn während des Tutorials die zeit wieder auf 0 gesetzt wird, passiert in dem Timer garnichts.
    {
    if(TutTime[playerid] == 1)// hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
    {
    SetPlayerPos(playerid,1199.326293, -1282.091918, 17.865108);
    InterpolateCameraPos(playerid, 1199.326293, -1282.091918, 17.865108, 1206.524902, -1341.727172, 18.961126, 30000);
    InterpolateCameraLookAt(playerid, 1195.871337, -1285.705810, 17.915891, 1202.001220, -1339.600463, 18.847854, 30000);
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN,"Herzlich Willkommen auf BLalaada Roleplay!");
    SendClientMessage(playerid,COLOR_WHITE,"Als Erstes wollen wir uns bedanken, das du ausgerechnet zu uns gekommen bist.");
    SendClientMessage(playerid,COLOR_WHITE,"Als Dankeschön dafür, erhälst du von uns ein Startkapital von 50.000$, sowie Level 3.");
    SendClientMessage(playerid,COLOR_WHITE,"Wir hoffen du hast hier einen schönen Aufenthalt!");


    }
    else if(TutTime[playerid] == 15)// hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
    {
    SetPlayerCameraLookAt(playerid, 148.9403,-90.2412,1.3052);
    SetPlayerPos(playerid, 148.9403,-90.2412,1.3052);
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN,"Allgemeine Regeln auf dem Server");
    SendClientMessage(playerid,COLOR_WHITE,"Wie auf jeden anderen Server ist das Cheaten und Bugusen natürlich verboten,");
    SendClientMessage(playerid,COLOR_WHITE,"sowie andere Dinge die dir zum Vorteil sind, wie zum Beispiel ein Parkour Mod.");
    SendClientMessage(playerid,COLOR_WHITE,"Selbstverständlich ist auch ein guter Ton erwünscht. Jegliches Beleidigen kann zum");
    SendClientMessage(playerid,COLOR_WHITE,"Prison, Kick, Mute oder sogar zu einem Bann führen. Mehr Regeln findet man unter /rules.");
    }
    else if(TutTime[playerid] == 28)// hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
    {
    SetPlayerCameraLookAt(playerid, 139.9303,-96.2412,1.3052);


    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN,"Weitere Informationen zum Cheaten/Bugusen");
    SendClientMessage(playerid,COLOR_WHITE,"Wie bereits erwähnt, ist das Cheaten sowie Bugusen auf dem Server nicht gestattet.");
    SendClientMessage(playerid,COLOR_WHITE,"Falls du jemanden sehen solltest, der Cheatet oder Bugs ausnutzt, melde es einem Admin mit dem");
    SendClientMessage(playerid,COLOR_WHITE,"Befehl /report. Wenn der Spieler gebannt wird, erhälst du von uns eine Belohnung.");
    }
    else if(TutTime[playerid] == 41)// hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
    {
    SetPlayerCameraLookAt(playerid, 139.9003,-96.2412,1.3052);
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN,"Fahrzeuge und Unterhalte");
    SendClientMessage(playerid,COLOR_WHITE,"Auf unserem Reallife Server haben wir 3 Autohäuser. Ein Motorrad Autohaus, ein Sportwagen Autohaus");
    SendClientMessage(playerid,COLOR_WHITE,"und ein Gebrauchtwagen Autohaus. Zurzeit sind die Preise super günstig, also greift zu!");
    SendClientMessage(playerid,COLOR_WHITE,"Häuser und Wohnungen gibt es in Fulda Roleplay genug. Du kannst dir jedes Haus kaufen das du willst! ");
    SendClientMessage(playerid,COLOR_WHITE,"Natürlich hat das seinen Preis, schreib einfach einen Admin an und dein Haus wird dir sofort gebaut.");
    SendClientMessage(playerid,COLOR_WHITE,"Mehr Informationen findest du unter /carhelp und /househelp.");
    }
    else if(TutTime[playerid] == 54)// hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
    {
    SetPlayerCameraLookAt(playerid, 139.9303,-96.2412,1.3052);
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN,"Berufe und Fraktionen");
    SendClientMessage(playerid,COLOR_WHITE,"Natürlich brauchst du einen Beruf um Geld zu verdienen. Du kannst dich für einen einfachen Beruf im");
    SendClientMessage(playerid,COLOR_WHITE,"Arbeitsamt in Los Santos bewerben. Derzeit sind auch Member in Fraktionen überall gesucht! ");
    SendClientMessage(playerid,COLOR_WHITE,"Um in eine Fraktion zu kommen, musst du dich im Forum unter www.blablabRP.de bewerben!");
    }
    else if(TutTime[playerid] == 67)
    {
    SetPlayerCameraLookAt(playerid, 139.9303,-96.2412,1.3852);
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN,"Ende des Tutorials");
    SendClientMessage(playerid,COLOR_WHITE,"Danke für deine Aufmerksamkeit, wir wollen dich nicht aufzulang aufhalten!");
    SendClientMessage(playerid,COLOR_WHITE,"Falls weitere Fragen bestehen, frag einfach einen Spieler oder einen Admin!");
    }
    else if(TutTime[playerid] == 72) // hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
    {
    KillTimer(TutTimer[playerid]); // der Tutorial Timer wird beendigt
    TutTime[playerid] = 0; // die Tutorial Zeit auf INVALID gsetzt - nach Goldkiller :)
    SetPlayerPos(playerid,0.0,0.0,0.0); // der Spawn, wo er nach dem Tutorial hinsoll
    TogglePlayerControllable(playerid,true); // hier wird die Fähigkeit sich zu bewegen wieder auf "wahr" gesetzt
    }
    TutTime[playerid]++; // hier wird die Zeit jede Sekunde erhöht
    }
    }
    public OnPlayerDeath(playerid, killerid, reason)
    {
    return 1;
    }


    public OnVehicleSpawn(vehicleid)
    {
    return 1;
    }


    public OnVehicleDeath(vehicleid, killerid)
    {
    return 1;
    }


    public OnPlayerText(playerid, text[])
    {
    return 1;
    }


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


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    return 1;
    }


    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    return 1;
    }


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    return 1;
    }


    public OnPlayerEnterCheckpoint(playerid)
    {
    return 1;
    }


    public OnPlayerLeaveCheckpoint(playerid)
    {
    return 1;
    }


    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    return 1;
    }


    public OnPlayerLeaveRaceCheckpoint(playerid)
    {
    return 1;
    }


    public OnRconCommand(cmd[])
    {
    return 1;
    }


    public OnPlayerRequestSpawn(playerid)
    {
    return 1;
    }


    public OnObjectMoved(objectid)
    {
    return 1;
    }


    public OnPlayerObjectMoved(playerid, objectid)
    {
    return 1;
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    return 1;
    }


    public OnVehicleMod(playerid, vehicleid, componentid)
    {
    return 1;
    }


    public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
    {
    return 1;
    }


    public OnVehicleRespray(playerid, vehicleid, color1, color2)
    {
    return 1;
    }


    public OnPlayerSelectedMenuRow(playerid, row)
    {
    return 1;
    }


    public OnPlayerExitedMenu(playerid)
    {
    return 1;
    }


    public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
    {
    return 1;
    }


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    return 1;
    }


    public OnRconLoginAttempt(ip[], password[], success)
    {
    return 1;
    }


    public OnPlayerUpdate(playerid)
    {
    return 1;
    }


    public OnPlayerStreamIn(playerid, forplayerid)
    {
    return 1;
    }


    public OnPlayerStreamOut(playerid, forplayerid)
    {
    return 1;
    }


    public OnVehicleStreamIn(vehicleid, forplayerid)
    {
    return 1;
    }


    public OnVehicleStreamOut(vehicleid, forplayerid)
    {
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid==DIALOG_LOGIN)
    {
    if(response==0)
    {
    SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
    return 1;
    }
    else
    {
    Login(playerid,inputtext);
    return 1;
    }
    }
    }
    if(dialogid==DIALOG_REGISTER)
    {
    if(response==0)
    {
    SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug.");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
    return 1;
    }
    else
    {
    Register(playerid,inputtext);
    return 1;
    }
    }
    }
    return 1;
    }


    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    return 1;
    }


    stock Register(playerid,key[])
    {

    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    SendClientMessage(playerid,BLAU,"Erfolgreich registriert.");
    SetPlayerScore(playerid,0);
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }


    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    LoadAccount(playerid);
    SendClientMessage(playerid,BLAU,"Erfolgreich eingeloggt.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,BLAU,"Falsches Passwort.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
    return 1;
    }
    }


    stock LoadAccount(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
    SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
    SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
    if(GetPVarInt(playerid,"Baned")==1)
    {
    SendClientMessage(playerid,msg,"Du bist vom Server gebannt.");
    Kick(playerid);
    }
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }


    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
    }
    return 1;
    }


    stock SpielerName(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    return name;
    }