Beiträge von Kaliber

Aus gegebenem Anlass: Sichert eure Backupcodes wenn ihr die Zwei-Faktor-Authentifizierung aktiviert habt!

Infos dazu findet ihr nochmal hier

    wow… seit 7 Jahren hier und noch nie von dieser Funktion gehört xD Kaliber

    Ja, die wurde auch nur relativ selten verwendet. Das hängt mit dem Problem des Geldes/Leben/Waffen zusammen. In SA:MP muss ja ein Anti-Cheat genutzt werden...z.B. für Geld und diese Systeme ziehen dem Spieler Geld ab. "Klassische" Anti-Cheats hätten einen dafür gebannt, da Server-Geld != Spieler-Geld war xD

    Und dann gibt es ja dann noch das Health oder im Waffen-Laden das Waffen Problem. Quasi kommen diese Waffen & das Leben ja aus dem nichts. Für den Server sieht es so aus, als ob gecheatet wurde. Man müsste das Geld abgleichen mit der Position und dem, was man bekommt. Aber das wäre eine große Ausnahme und relativ aufwändig zu programmieren.


    Aus diesem Grund wurden diese Standard Sachen meist komplett entfernt. Und wenn sie drinnen waren, wurden früher oft dort einfach das komplette Anti-Cheat deaktiviert und dann sind immer paar smarte guys dahin und haben komplett gecheatet hahaha ^^


    Deshalb war es einfacher einfach so n Health Icon oder sonst was dahin zu machen ^^

    Warum sind Maronen Nüsse aber kein Obst oder Gemüse

    Maronen sind halt Nussfrüchte, also Nüsse.


    Grundsätzlich ist es so, dass bei Obst das Fruchtfleisch gegessen werden kann, aber der Kern nicht.

    Bei Nüssen ist es genau anders herum. Da können die Kerne gegessen werden, aber nicht das Fruchtfleisch.


    Allerdings ist das nicht die exakte Definition, es gibt auch Dinge wie Scheinfrüchte, das wäre die Erdbeere, die gehört dann auch zu den Nüssen xD


    Grundsätzlich gibt es da sehr viele Faktoren die zu der Klassifizierung einspielen.


    //Edit: Achso und der Unterschied zwischen Obst und Gemüse ist der, dass Gemüse eher Wurzel/Blätter der Pflande sind und Obst eben die Früchte. Deshalb heißt es auch Nussfrucht, weil die Nüsse als Frucht ausgebildet werden.

    Jaaa, mir ist bewusst, dass dies manuell möglich ist. Aber dafür müsste ja jetzt jedes Tutorial der letzten 13 Jahre geupgraded werden...


    Wäre irgendwie schöner, wenn Woltlab iwi in der Lage wäre den [PWN] Tag direkt zu interpretieren, damit die Seiten wieder schön angezeigt werden.

    Früher im Forum gab es den [PWN] BBCode, der sofort den Code in der Pawn (oder C) Syntax angezeigt hat.


    Viele Tutorials etc (z.B. SQLite | Die alternative zu MySQL) sind immer noch so geschrieben, sehen aber heute scheiße aus deshalb.


    Meine Frage wäre nun, kann man das wieder einführen, dass der existiert uuund dann eben als C-Code interpretiert wird?


    Mit freundlichen Grüßen

    Euer Kalle

    Ja, kann gut sein, dass das dini gar nicht kann, da das = ein key Zeichen ist für dini ^^


    0PfMfYb.gif


    Ist wohl am Einfachsten, wenn du SQLite nutzt, da gibts die Probleme nicht und musst nicht erst eine MySQL Datenbank aufsetzen.

    Musst oben

    if( strcmp( key , "Teamspeak" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pTeamspeak] = strval( val ); }

    Das musst du so schreiben:


    C
    1. if( strcmp( key , "Teamspeak" , true ) == 0 ) { format(PlayerInfo[playerid][pTeamspeak],128,ini_GetValue( Data )); }

    und oben musst du:


    C
    1. format(var, 32, "Teamspeak=%s\n",PlayerInfo[playerid][pTeamspeak]);fwrite(hFile, var);

    schreiben.

    Das ist merkwürdig...mach den Server nochmal aus...schau dass das File 1:1 so aussieht, wie du es hier gepostet hattest und mach ihn nochmal an...


    Alsoo bei mir geht es, da liest er das genauso aus...


    Falls es nicht geht (was sein kann), das was ich damals geschrieben hatte ist nicht sonderlich Robust, musst du wohl auf deine dini Speichermethode zurückgreifen.

    Pack mal unter das Load ein:


    C
    1. printf("%s|%d|%d|%d",TeamSpeakInfo[playerid][playerUID],TeamSpeakInfo[playerid][accepted],TeamSpeakInfo[playerid][acceptcode],TeamSpeakInfo[playerid][playerClientid]);

    Wird das richtig ausgegeben?


    //Edit:


    Ahhh weil du vermutlich das Filterscript erst später lädst? Oder schon auf dem Server warst?


    C
    1. //Pack das mal zustäzlich unter OnFilterscriptInit
    2. for(new i=GetPlayerPoolSize(); i!=-1; i--) if(IsPlayerConnected(i)) Load(i,TeamSpeak,TeamSpeakInfo[i]);

    Hmm komisch, damals ging das noch.


    Naja, schreib es so:


    C
    1. //Dann unter OnPlayerDisconnect
    2. Save(playerid,_:TeamSpeak,TeamSpeakInfo[playerid]);
    3. //Unter OnPlayerConnect
    4. Load(playerid,_:TeamSpeak,TeamSpeakInfo[playerid]);

    Hier bietet sich evtl mein Easy-Save Include an: Easy Saving


    C
    1. //Oben in deinem Filterskript:
    2. //Halt den Pfad wo die Accounts gespeichert werden sollen angeben: (wichtig den Ordner ts_info in dem Beispiel erst in den scriptfiles erstellen!!!)
    3. #define PATH "ts_info/%s.ini"
    4. #include <k_save>
    5. //Dann unter OnPlayerDisconnect
    6. Save(playerid,TeamSpeak,TeamSpeakInfo[playerid]);
    7. //Unter OnPlayerConnect
    8. Load(playerid,TeamSpeak,TeamSpeakInfo[playerid]);