Beiträge von Büttii<3

    Du musst die Textdraws soweit ich noch weiss auch "zerstören" da sie sonst immer und immer wieder erstellt werden. Und wenn das Limit erreicht ist, mag das Spiel dich nicht mehr.


    Das Könnte das Problem beheben habe das jetz so gemacht :


    public OnPlayerSpawn(playerid)
    {
    for(new i=0;i<37;i++){
    //TextDrawHideForPlayer(playerid,Logintextdraws[i]);
    PlayerTextDrawDestroy(playerid,Logintextdraws[0]); //Bekomme hier Warning Tag mismatch
    }
    return 1;
    }



    @Rocky:


    Etwas Geändert beim Code

    Hey wie meine Überschrift schon sagt ich habe Probleme mit meinen Textdraw´s
    Ich habe eben ein paar Textdraws erstellt und zwar wird alles Super angezeigt und Funktioniert auch doch wen man den Server
    ein paar mal Neustartet hängt alles ingame beim Login Fenster und mann muss Per Taskmanager Gta Schließen da Ingame nichts mehr geht
    weis jemand woran das liegen könnte ?


    Hier mal die Codes der Textdraw´s


    new Text:Logintextdraws[9]
    ;


    //Einloggfenster
    Logintextdraws[0] = TextDrawCreate(90.000000, -30.000000, "Test");
    TextDrawBackgroundColor(Logintextdraws[0], 255);
    TextDrawFont(Logintextdraws[0], 1);
    TextDrawLetterSize(Logintextdraws[0], 0.500000, 1.000000);
    TextDrawColor(Logintextdraws[0], -1);
    TextDrawSetOutline(Logintextdraws[0], 0);
    TextDrawSetProportional(Logintextdraws[0], 1);
    TextDrawSetShadow(Logintextdraws[0], 1);
    TextDrawUseBox(Logintextdraws[0], 1);
    TextDrawBoxColor(Logintextdraws[0], 255);
    TextDrawTextSize(Logintextdraws[0], -40.000000, 0.000000);


    Logintextdraws[1] = TextDrawCreate(90.000000, 210.000000, "Test");
    TextDrawBackgroundColor(Logintextdraws[1], 255);
    TextDrawFont(Logintextdraws[1], 1);
    TextDrawLetterSize(Logintextdraws[1], 0.500000, 1.000000);
    TextDrawColor(Logintextdraws[1], -1);
    TextDrawSetOutline(Logintextdraws[1], 0);
    TextDrawSetProportional(Logintextdraws[1], 1);
    TextDrawSetShadow(Logintextdraws[1], 1);
    TextDrawUseBox(Logintextdraws[1], 1);
    TextDrawBoxColor(Logintextdraws[1], 255);
    TextDrawTextSize(Logintextdraws[1], -40.000000, 0.000000);


    Logintextdraws[2] = TextDrawCreate(680.000000, -10.000000, "~n~~n~~n~");
    TextDrawBackgroundColor(Logintextdraws[2], 255);
    TextDrawFont(Logintextdraws[2], 1);
    TextDrawLetterSize(Logintextdraws[2], 0.500000, 1.000000);
    TextDrawColor(Logintextdraws[2], -1);
    TextDrawSetOutline(Logintextdraws[2], 0);
    TextDrawSetProportional(Logintextdraws[2], 1);
    TextDrawSetShadow(Logintextdraws[2], 1);
    TextDrawUseBox(Logintextdraws[2], 1);
    TextDrawBoxColor(Logintextdraws[2], 255);
    TextDrawTextSize(Logintextdraws[2], 0.000000, 0.000000);


    Logintextdraws[3] = TextDrawCreate(90.000000, 20.000000, "Test");
    TextDrawBackgroundColor(Logintextdraws[3], 255);
    TextDrawFont(Logintextdraws[3], 1);
    TextDrawLetterSize(Logintextdraws[3], 0.500000, 1.000000);
    TextDrawColor(Logintextdraws[3], -1);
    TextDrawSetOutline(Logintextdraws[3], 0);
    TextDrawSetProportional(Logintextdraws[3], 1);
    TextDrawSetShadow(Logintextdraws[3], 1);
    TextDrawUseBox(Logintextdraws[3], 1);
    TextDrawBoxColor(Logintextdraws[3], -1983946497);
    TextDrawTextSize(Logintextdraws[3], 90.000000, 0.000000);


    Logintextdraws[4] = TextDrawCreate(90.000000, 210.000000, "Test");
    TextDrawBackgroundColor(Logintextdraws[4], 255);
    TextDrawFont(Logintextdraws[4], 1);
    TextDrawLetterSize(Logintextdraws[4], 0.500000, 1.000000);
    TextDrawColor(Logintextdraws[4], -1);
    TextDrawSetOutline(Logintextdraws[4], 0);
    TextDrawSetProportional(Logintextdraws[4], 1);
    TextDrawSetShadow(Logintextdraws[4], 1);
    TextDrawUseBox(Logintextdraws[4], 1);
    TextDrawBoxColor(Logintextdraws[4], -1983946497);
    TextDrawTextSize(Logintextdraws[4], 90.000000, 0.000000);


    Logintextdraws[5] = TextDrawCreate(690.000000, 20.000000, " ");
    TextDrawBackgroundColor(Logintextdraws[5], 255);
    TextDrawFont(Logintextdraws[5], 1);
    TextDrawLetterSize(Logintextdraws[5], 0.500000, 1.000000);
    TextDrawColor(Logintextdraws[5], -1);
    TextDrawSetOutline(Logintextdraws[5], 0);
    TextDrawSetProportional(Logintextdraws[5], 1);
    TextDrawSetShadow(Logintextdraws[5], 1);
    TextDrawUseBox(Logintextdraws[5], 1);
    TextDrawBoxColor(Logintextdraws[5], -1983946497);
    TextDrawTextSize(Logintextdraws[5], 88.000000, 0.000000);


    Logintextdraws[6] = TextDrawCreate(88,58, " [] New Life Roleplay[]");//68,58 Orginal
    TextDrawBackgroundColor(Logintextdraws[6] , 255);
    TextDrawFont(Logintextdraws[6] , 0);
    TextDrawLetterSize(Logintextdraws[6] , 1, 1.9);
    TextDrawAlignment(Logintextdraws[6] , 0);
    TextDrawSetProportional(Logintextdraws[6] , 1);
    TextDrawSetShadow(Logintextdraws[6] , 1);
    TextDrawColor(Logintextdraws[6] , -1983946497);
    TextDrawSetOutline(Logintextdraws[6] , 1);


    Logintextdraws[7] = TextDrawCreate(231.875000, 40, " ~w~www.nl-rp.de");//Orginal 231.875000, 323.750518
    TextDrawLetterSize(Logintextdraws[7], 0.744997, 1.903331);
    TextDrawAlignment(Logintextdraws[7], 1);
    TextDrawColor(Logintextdraws[7], -1983946497);
    TextDrawSetShadow(Logintextdraws[7], 0);
    TextDrawSetOutline(Logintextdraws[7], 2);
    TextDrawBackgroundColor(Logintextdraws[7], 255);
    TextDrawFont(Logintextdraws[7], 0);
    TextDrawSetProportional(Logintextdraws[7], 1);


    Logintextdraws[8] = TextDrawCreate(231.875000, 400, "~w~Since ~w~2009");//Orginal 231.875000, 323.750518
    TextDrawLetterSize(Logintextdraws[8], 0.744997, 1.903331);
    TextDrawAlignment(Logintextdraws[8], 1);
    TextDrawColor(Logintextdraws[8], -1983946497);
    TextDrawSetShadow(Logintextdraws[8], 0);
    TextDrawSetOutline(Logintextdraws[8], 2);
    TextDrawBackgroundColor(Logintextdraws[8], 255);
    TextDrawFont(Logintextdraws[8], 0);
    TextDrawSetProportional(Logintextdraws[8], 1);


    public OnPlayerConnect(playerid)
    {
    for(new i=0;i<37;i++){
    TextDrawShowForPlayer(playerid,Logintextdraws[i]);}
    return 1;
    }



    public OnPlayerSpawn(playerid)
    {
    for(new i=0;i<37;i++){
    TextDrawHideForPlayer(playerid,Logintextdraws[i]);
    }
    return 1;
    }



    //EDIT etwas hinzugefügt


    Ok vielen Dank mein Lieber :) :thumbup:


    Im zweiten Query hat

    SQL
    WHERE `id` = '%d'


    gefehlt.


    Ich habe beide Queries zusammengefügt, das ist besser, da nur eine Anfrage gesendet wird, und die WHERE Anweisung nach unten geholt.


    Danke schonmal dafür eine Frage hätte ich noch undzwar bei diesem Code wo er die Datenbank vom Script aus anlegt:


    DatenbankErstellen()
    {
    //HIER OBEN IST ORGINAL !
    mysql_query(MysqlVerbindung, "CREATE TABLE IF NOT EXISTS `players` (`id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, `username` varchar(30), `password` varchar(130) NOT NULL, `admin` int(10), `member` int(10), `leader` int(10), `rank` int(10),`fraktion` int(11),`skin` int(11),`level` int(11),`money` int(10),`autoschein` int(11)\
    NOT NULL default '0')", false);

    return 1;
    }


    Umso mehr sachen ich dort ja eintrage irgendwann wird es zu lang wie kann man es auch auf 2 oder mehrere Zeilen aufteilen mit der Erstellung der
    Datenbanken ?


    Und ist es so wie ich es gemacht habe Ressourcen Sparend geschrieben ?


    Ps: Verwende die Mysql Version R39



    MFg Büttii

    <blockquote username="Büttii

    Was ist da jetz anders? 8|


    Versuchs und wenn es geht wird es dir mit Sicherheit auffallen:)
    [quote='Jeffry','index.php?page=Thread&postID=2025685#post2025685']@Azcaq: Da fehlt trotzdem die WHERE Anweisung.


    Schreibe es so:
    SpielerdatenUpdate(playerid)
    {
    if(SpielerInfo[playerid][Spielereingeloggt] == false) return 0;
    SpielerInfo[playerid][Level] = GetPlayerScore(playerid);


    new query[512];
    mysql_format(MysqlVerbindung, query, sizeof(query), "UPDATE `players` SET `money` = '%d',`admin` = '%d',`member` = '%d',`leader` = '%d',`rank` = '%d',`fraktion` = '%d',`skin` = '%d',`level` = '%d',",
    SpielerInfo[playerid][Money],SpielerInfo[playerid][Admin],SpielerInfo[playerid][Member],SpielerInfo[playerid][Leader],SpielerInfo[playerid][Rank],SpielerInfo[playerid][Fraktion],SpielerInfo[playerid][Skin],SpielerInfo[playerid][Level]);


    mysql_format(MysqlVerbindung, query, sizeof(query), "%s`autoschein`='%d' WHERE `id` = '%d' LIMIT 1", query,
    SpielerInfo[playerid][Autoschein],SpielerInfo[playerid][ID]);
    mysql_tquery(MysqlVerbindung, query, "", "");
    return 1;
    }
    Danke an beide die Funktion von @[url='http://forum.sa-mp.de/index.php?page=User&userID=30312']Jeffry:
    Scheint zu funktionieren Danke :love:

    Hey Jungs undzwar habe ich das Problem das mein Mysql SpeicherungsSystem alles speichert ausser den Autoschein
    wen man die Prüfung gemacht hat wird diese auch als 1 in der Datenbank eingetragen aber wen man off geht wird der wert wieder auf 0 Gesetzt.
    Villeicht weis jemand von euch woran es liegen könnte ?


    Hier mal meine Codes wo es gespeichert wird und wo die Mysql Datenbank vom Script aus erstellt wird.


    SpielerdatenLaden(playerid)
    {
    SpielerInfo[playerid][ID] = cache_get_field_content_int(0, "id");
    cache_get_field_content(0, "password", SpielerInfo[playerid][Password], MysqlVerbindung, 129);
    SpielerInfo[playerid][Money] = cache_get_field_content_int(0, "money");
    SpielerInfo[playerid][Admin] = cache_get_field_content_int(0, "admin");
    SpielerInfo[playerid][Member] = cache_get_field_content_int(0, "member");
    SpielerInfo[playerid][Leader] = cache_get_field_content_int(0, "leader");
    SpielerInfo[playerid][Rank] = cache_get_field_content_int(0, "rank");
    SpielerInfo[playerid][Fraktion] = cache_get_field_content_int(0, "fraktion");
    SpielerInfo[playerid][Skin] = cache_get_field_content_int(0, "skin");
    SpielerInfo[playerid][Level] = cache_get_field_content_int(0, "level");
    SetPlayerScore(playerid,SpielerInfo[playerid][Level]);
    SpielerInfo[playerid][Autoschein] = cache_get_field_content_int(0, "autoschein");
    return 1;
    }


    SpielerdatenUpdate(playerid)
    {
    if(SpielerInfo[playerid][Spielereingeloggt] == false)
    return 0;


    new query[256];
    mysql_format(MysqlVerbindung, query, sizeof(query), "UPDATE `players` SET `money` = '%d',`admin` = '%d',`member` = '%d',`leader` = '%d',`rank` = '%d',`fraktion` = '%d',`skin` = '%d',`level` = '%d' WHERE `id` = '%d' LIMIT 1", SpielerInfo[playerid][Money],SpielerInfo[playerid][Admin],SpielerInfo[playerid][Member],SpielerInfo[playerid][Leader],SpielerInfo[playerid][Rank],SpielerInfo[playerid][Fraktion],SpielerInfo[playerid][Skin],SpielerInfo[playerid][Level],SpielerInfo[playerid][ID]);
    mysql_tquery(MysqlVerbindung, query);
    SpielerInfo[playerid][Level] = GetPlayerScore(playerid);


    new query2[256];
    mysql_format(MysqlVerbindung, query2, sizeof(query2), "UPDATE `players` SET `autoschein`=%d",\
    SpielerInfo[playerid][Autoschein]);
    mysql_tquery(MysqlVerbindung, query2, "", "");
    return 1;
    }



    DatenbankErstellen()
    {
    //HIER OBEN IST ORGINAL !
    mysql_query(MysqlVerbindung, "CREATE TABLE IF NOT EXISTS `players` (`id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, `username` varchar(30), `password` varchar(130) NOT NULL, `admin` int(10), `member` int(10), `leader` int(10), `rank` int(10),`fraktion` int(11),`skin` int(11),`level` int(11),`money` int(10),`autoschein` int(11)\
    NOT NULL default '0')", false);


    return 1;
    }

    Danke @ Icy: & @ Jeffry:


    Werde es später mit einem Kollegen Testen die 2Te Funktioniert schonmal von dir Jeffry:


    Die Funktion von ICy: werde ich später Testen da man ja bei dieser Funktion zu 2 Sein muss.



    Werde sobald ich das mit OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid, bodypart)
    getestet habe antworten ob dies auch Funktioniert


    Danke euch 2 Schonmal :)


    ___________________________________
    Habe es jetz getestet der Code von ICy:
    Funktioniert Einwandfrei :) Danke <3



    public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid, bodypart)
    {
    if(Todeszeit[playerid] == 1 && Todeszeit[damagedid] == 1)
    {
    new string[144];
    Warnungen[playerid] ++;
    if(Warnungen[playerid] >= FriedhofDMWarns)
    {
    format(string,sizeof string,"NLR Bot: %s [ID %d] wurde wegen FriedhofDeathmatch gekickt",GetName(playerid),playerid);
    SendClientMessageToAll(Rot,string);
    Kick(playerid);
    }
    else
    {
    format(string, sizeof(string), "NLR Bot: Kein FriedhofDeathmatch! Verwarnungen: %d / %d", Warnungen[playerid], FriedhofDMWarns);
    SendClientMessage(playerid, Rot, string);
    }
    }
    return 1;
    }



    //EDIT Code der Funktioniert von ICy:


    Danke :love:

    Hey liebe Comunity ich habe grade ein Anti Dm System geschrieben wen man auf dem Friedhof ist bekommt man wen man einen anderen Spieler
    schlägt warnungen und wird nach 5 Schlägen gekickt meine Frage wäre jetz wie kann man abfragen ob ein Spieler jemanden Tritt ?


    Hier mein Code:


    //Anti Friedhofs DM
    if(newkeys == KEY_FIRE) {
    if(AntiFriedhofDM == 1 && Todeszeit[playerid] == 1) {
    Warnungen[playerid] ++;
    new string[128];
    format(string, sizeof(string), "NLR Bot: Kein FriedhofDeathmatch! Verwarnungen: %d / %d", Warnungen[playerid], FriedhofDMWarns);
    SendClientMessage(playerid, Rot, string);
    }
    if(Warnungen[playerid] > FriedhofDMWarns || Warnungen[playerid] == FriedhofDMWarns && Todeszeit[playerid] == 1) {
    new string[128];
    format(string, sizeof(string), "NLR Bot: %s [ID %d] wurde wegen FriedhofDeathmatch gekickt",GetName(playerid), playerid);
    SendClientMessageToAll(Rot, string);
    Kick(playerid);
    }
    return 1;
    }


    Mit Freundlichen Grüßen Büttii<3

    Ok Super es klappt Danke!:D
    Aber jz zu meiner 2. Frage die ich gestellt habe, wie mache ich es das das textdraw weg ist wenn ich aussteige?


    WIe schon in deinem Anderem Thread beschrieben :


    bei public OnPlayerStateChange(playerid,newstate,oldstate)


    machst du einfach die ABfrage rein


    if(oldstate == PLAYER_STATE_DRIVER)
    {
    TextDrawHideForPlayer(playerid, Textdraw7[playerid]);
    }

    Ganz oben bei den defines


    #define SPEED_KOEFF 1.3


    //Unter Ongamemodeinit
    //Tacho
    for(new playerid=0; playerid < MAX_PLAYERS; playerid++)
    {
    //Textdraw7 [playerid] = TextDrawCreate(140.000000, 373.000000, "Geschwindigkeit: 100km/h");
    Textdraw7 [playerid] = TextDrawCreate(545.000000, 398.000000, "Geschw.: --- Km/h");//MACH ES SO SRY DAS OBERE IST FALSCH
    TextDrawBackgroundColor(Textdraw7 [playerid], 255);
    TextDrawFont(Textdraw7 [playerid], 3);
    TextDrawLetterSize(Textdraw7 [playerid], 0.230000, 1.000000);
    TextDrawColor(Textdraw7 [playerid], -1);
    TextDrawSetOutline(Textdraw7 [playerid], 0);
    TextDrawSetProportional(Textdraw7 [playerid], 1);
    TextDrawSetShadow(Textdraw7 [playerid], 1);
    TextDrawSetSelectable(Textdraw7 [playerid], 0);
    }
    //EndTacho


    Und mach das mal bei Public OnplayerUpdate(playerid);


    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    new vehicleid = GetPlayerVehicleID(playerid), Float:h, string[1500], Float:speed;
    GetVehicleSpeed(vehicleid, speed);
    format(string, 32, "Geschw.: %f Km/h", speed/SPEED_KOEFF);
    if(speed/SPEED_KOEFF<100) strdel(string, 10, 17);
    else strdel(string, 11, 18);
    TextDrawSetString(Textdraw7[playerid], string);
    }



    //Ganz unten im Script


    stock GetVehicleSpeed(vehicleid, &Float:Speed)
    {
    new
    Float:X,
    Float:Y,
    Float:Z;
    GetVehicleVelocity(vehicleid, X, Y, Z);
    Speed = floatsqroot(X*X + Y*Y + Z*Z)*200;
    }



    Mfg. Büttii<3 :)



    //edit etwas hinzugefügt ++ / Fehler behoben

    so ich hab paar textdraws erstellt.
    Aber wie sorge ich dafür dasd man diese NUR in einem fahrzeug sieht?

    Kommt drauf an ob jeder im Fahrzeug die Textdraws sehen soll oder nur der Beifahrer?


    public OnPlayerStateChange(playerid,newstate,oldstate)
    {


    if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
    {
    //HIER DEIN TEXTDRAWANZEIGEN
    }


    return 1;
    }


    Dies wäre der COde für Fahrer und Beifahrer




    MFg. Büttii<3 :)


    //EDIT Etwas hinzugefügt ++








    Hallo Liebe Breadfish Community !
    Das Projekt German Ultimate RealLife gibt es seit 2009.
    Wir hatten damals einige Erfolge Feiern können, wir hatten damals 80-100 Spieler,
    doch dann musste das Projekt vorerst auf Eis gelegt werden, da man selbst Privat einiges zu tun hat wie z.B Ausbildung
    und einfach keine Zeit mehr für das Projekt da war. Drei Leute des Projektes hielten immer noch guten Kontakt zueinander.
    Am 01.11.2014 war es dann wieder soweit, wir holten uns einen Teamspeak Server und beschlossen das Projekt wieder ins Leben zu rufen.
    Seit dem 09.01.2015 Habe ich unser neues Selfmade Script angefangen. Wir machen gute Fortschritte.
    Wir hatten ein Forum (WBB3LizenzSponsor)
    mit dem die Zusammenarbeit leider am Ende nicht mehr gepasst hat und man sich einvernehmlich getrennt hat.
    Wir suchen auch einen neuen Projektnamen und würden gerne alles neu gestalten, gerne auch mit dem neuem Forumssponsor
    (WBB3Lizenz Sponsor) als neues Teammitglied.


    Das Aktuelle Team besteht aus :


    Projektgründer und Serverleiter: [GuR]Aerox
    Stllv. Serverleiter:
    [GuR] Fireblade
    Servermanager:
    [GuR]MostWantedCLP




    - Selfmade Script Mysql R-39 Basierend (Alles Dynamisch,Einzigartige Map´s und vieles mehr.)
    - Teamspeak³ Server
    - .de Domain http://www.sa-gur.de (Ab dem 20.01.2015 Vermutlich neue Domain
    da wir momentan einen neuen Projektnamen suchen.)
    - Leistungsstarken Gameserver (SAMP).
    - Dem Forumssponsor(WBB3Lizenz Sponsor), Admin Ingame (Adminrank wird abgesprochen) und natürlich Admin im Forum
    gegebenfalls Forumsmanager, wenn gewünscht.






    Wir sind ein drei Köpfiges Adminteam was zusammen durch Höhen und Tiefen gegangen ist.
    Wir bringen die erforderliche Reife mit die benötigt wird um ein Projekt erfolgreich zu leiten. Wir haben ein sehr Dynamisches Script was es ermöglicht so gut wie alles Ingame steuern zu können. Der Zusammenhalt im Team ist sehr Gut, alles was neu gemacht wird, wird vorher im Team besprochen.


    Haben wir dein Intresse geweckt, dann melde dich doch bei uns :)





    Teamspeak³ IP: 195.4.16.1:10021
    SAMP Gameserver 176.31.122.18:7777
    Per Privatnachricht hier im Forum
    Auf Anfrage Skype



    Quellen: Selbst erstellt von [GuR]MostWantedCLP (Teammitglied)



    //Edit etwas eingerückt , etwas hinzugefügt+

    cache_inse



    Versuche es mal so :


    Sry mach es so oben bei


    /*Spielerdateien*/
    enum sInfo
    {
    ID,
    Name[MAX_PLAYER_NAME],
    Password[129],
    Money,
    Admin,
    Fraktion,
    Member,
    Leader,
    Rank,
    db_id <<----- Das hier eintragen

    };
    new SpielerInfo[MAX_PLAYERS][sInfo];



    //Edit Etwas hinzugefügt ++

    Büttii<3:
    Das ist falsch. FDaten haben nichts mit dem Spieler oder dem Admin Level zu tun.


    [PeL]Smiley:
    Ich habe die Tags im enum hinzugefügt.
    Die SpielerInfo Variable musst du mit dem ersetzen, wie das Admin Level bei dir ist. Ich weiß ja nicht, wie das bei dir heißt, ich habe es einfach nur von deinem Post übernommen.


    Sry mein Fehler :wacko:


    [PeL]Smiley dann musst du dein Adminlevel halt Definieren


    /*Spielerdateien*/
    enum sInfo
    {
    pAdminlevel,
    };
    new SpielerInfo[MAX_PLAYERS][sInfo];


    mfg Bütti