Beiträge von .#~Momo

    Timer mit einem Interval von 1000ms + PlayerInfo[playerid][pPlayedTime]++


    bsp:


    forward MeinTimer();


    public MeinTimer()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerOnline(i)) continue;
    PInfo[playerid][pPlayedTime]++
    }
    }


    Mit ein bisschen Mathe kannst du aus den Sekunden die Stunden berechnen.


    (Sekunden / 60 ) / 60 = Stunden

    Du kannst dein CPU Theoretisch auch auf 10.000 MHZ Pro Kern übertakten, du musst halt nur gucken das die Kühlung stimmt, ich glaube da brauchst du Flüssigstickstoff, aber wer hat schon soviel davon zuhause rumfliegen? :P


    Übertakte dein CPU immer in kleinen schritten, den FSB um 5-10MHZ erhöhen, Spannung minimal erhöhen, und dann dein PC immer mal danach Testen nach dem kleinen Schritt, ob die Temperatur ok ist, dein PC stabil läuft etc... Du wirst schnell merken das dein PC ihrgendwann nicht mehr so läuft wie vorher...


    Ich habs am anfang geschaft meine 8600gt auf 124° zu bekommen ^^ 1 Stunde gespielt -> Grafikkarte war danach Kaputt, also immer schön aufpassen, deine Garantie geht nähmlich beim Übertakten flöten! :thumbup:


    Falls du kein plan vom BIOS hast zieh dir AMD OverDriver runter. :thumbup:


    PS: Hab meinen Phenom x4 955 von 3200MHZ pro Kern auf 3800MHZ Pro Kern übertaktet (Luftkühlung), System läuft Stabil, also es ist möglich noch ein wenig Leistung aus deinem CPU/Grafikkarte raus zu holen.

    OnPlayerStateChange wird 2 mal aufgerufen, da du in einem Fahrzeug einsteigst und wieder aussteigst.
    Du musst checken ob der Spieler in einem Auto war oder ist (newstate, oldstate) und dann folgt dein Code... aber ohne eine if abfrage welchen STATE der spieler hatte wird das nix...
    So dürfte es eigentlich gehen:


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    new newcar = GetPlayerVehicleID(playerid);
    if(LSPDcar(newcar))
    {
    if(SpielerInfo[playerid][Fraktion]==1) { }
    else
    if (SpielerInfo[playerid][Fraktion]!= 1)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, ROT, " Deine text was stehen soll wenn er aus denn auto Geschmissen wird ");
    return 1;
    }
    }
    }
    return 1;
    }


    Edit: Code ausgebesser...


    if(SpielerInfo[playerid][Fraktion]==1)
    {}
    else
    if (SpielerInfo[playerid][Fraktion]!= 1)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, ROT, " Deine text was stehen soll wenn er aus denn auto Geschmissen wird ");
    return 1;
    } Nein, nein, so geht das nicht, dein Syntax ist komplett falsch... wenn schon dann macht man das so:
    if (SpielerInfo[playerid][Fraktion]!= 1)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, ROT, " Deine text was stehen soll wenn er aus denn auto Geschmissen wird ");
    return 1;
    }


    Wozu brauchst du bitte die obere abfrage? ... ?(

    Wenn ich die ganzen Beiträge hier im Thread sehe wird mir richtig Übel... ;(


    Habt ihr schon einmal dran gedacht das er "VIELLEICHT" nicht Scriptet, das der Scripter vom Server aufgehört hat, oder sonstiges?


    Nunja, ich versuch dir mal ein bisschen zu Helfen...


    Ich geb dir ne kleine Starthilfe, du musst es natürlich dann selber modifizieren.


    new Text3D:WantedText[playerid];


    public OnPlayerStreamIn(playerid, forplayerid)
    {
    if(PInfo[playerid][pWanteds] > 0) // Dein Spieler Array
    {
    new str[64];
    format(str, sizeof(str), "Name: %s\nWanteds: %i", GetPlayerNameEx(playerid), PInfo[playerid][pWanteds]);
    WantedText[playerid] = Create3DTextLabel(str, 0xFFFFFFE8, 0, 0, 0, 40, 0, 0);
    Attach3DTextLabelToPlayer(WantedText[playerid], playerid, 0, 0, 0);
    }
    return 1;
    }


    public OnPlayerStreamOut(playerid, forplayerid)
    {
    if(PInfo[playerid][pWanteds] > 0) // Dein Spieler Array
    {
    Delete3DTextLabel(WantedText[playerid]);
    }
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    if(PInfo[playerid][pWanteds] > 0)
    Delete3DTextLabel(WantedText[playerid]);
    return 1;
    }


    Du musst natürlich dann gucken ob "forplayerid" ein Cop ist, und sobald ein Spieler eingesperrt wird, sollte der 3DText dann auch gelöscht werden.


    MFG

    ehm mit ein bisschen erfahrung ihm scripten könntest du es locker hinbekommen....



    arbeite mit gettime() // < gibt den aktuellen Timestamp in Sekunden seit dem 01.01.1970 zurück


    und berechne damit einfach die Tage,Stunden,Minuten oder Sekunden


    So arbeite ich zb. mit Donator Accounts, Timeban, Führerschein sperren & Donator status.

    Wie der titel schon sagt, was ist schneller bzw resourcensparender?


    Methode 1:


    new TachoTimerID[MAX_PLAYERS];
    forward TachoTimer(playerid);
    Public TachoTimer(playerid)
    {
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
    KillTimer(TachoTimerID[playerid]);
    format(str, sizeof(str), "~n~~n~~n~~n~~n~~n~Geschwindigkeit: %i Km/h", GetPlayerSpeed(playerid, true));
    GameTextForPlayer(playerid, str, 1000, 3);
    return 1;
    }


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    TachTimerID[playerid] = SetTimerEx("TachoTimer", 1000, 1, "i", playerid);
    }
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    KillTimer(TachoTimerID[playerid]);
    }



    Methode 2:


    Public MainTimer() // Interval: 1000
    {
    for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
    {
    if(!IsPlayerConnected || PlayerInfo[playerid][pIsLoggedIn] == 0 || IsPlayerNPC(playerid)) continue;
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    format(str, sizeof(str), "~n~~n~~n~~n~~n~~n~Geschwindigkeit: %i Km/h", GetPlayerSpeed(playerid, true));
    GameTextForPlayer(playerid, str, 1000, 3);
    }
    }
    return 1;
    }


    Beide Funktionen laufen auf das gleiche aus, erklärung:


    Methode 1, der Timer wird für jeden Spieler einzel aufgerufen sobald er in einem Fahrzeug ist, hier wird keine for schleife benötigt.
    Methode 2, Ein Timer, wo eine for schleife für jeden Spieler läuft und hier wird gecheckt ob er in einem Fahrzeug ist oder nicht.


    Welche methode ist jetzt eigentlich besser? ich zerbrech mir schon den ganzen abend den kopf :thumbdown:


    Man beachte folgendes -->
    Methode 1: Führt den Timer für jeden Spieler in einer Sekunde aus der in einem Fahrzeug sitzt, zeigt dann die Geschwindigkeit an..
    Methode 2: Führt den Timer jede sekunde mit einer for schleife aus und checkt ob der Spieler in einem Fahrzeug ist oder nicht, zeigt dann die Geschwindigkeit an.


    Edit: Pseudo Methode 1 editiert.
    Edit 2: Text hinzugefügt

    dini ist ein filestream ;)


    Hm ich belasse es denke ich doch mal lieber auf die gute alte art mit Enums und Arrays... ich habe keine lust mein Gamemode jetzt um zu schreiben ... da sitz ich wochen drann....


    RAM ist kein problem ;) Mit meinen Jetztigen Arrays lieg ich bei Fast 10MByte Ram solang 1 Spieler drauf ist.


    Kevin, zeilensparend hat nichts mit resourcensparend zu tun,


    ich kann jede funktion in einer zeile schreibe oder 5 funktionen schreiben und nach jeder funktion 20 mal enter drücken, das macht kein unterschied ^^.


    Zumal, ich lasse erst den Account speicher und lass dann alle var's auf 0 setzten sobald der Spieler den Server verlässt.

    Ich benutze ja selber dcmd ;)


    Ich mag GF nicht, wollte meinen eigenen GM aufbauen, habe viel aus dem GF gelernt, jedoch würde ich nur gerne wissen was welche vor und nachteile hat.



    Ich glaube aber ich werde auf MySql & PVars umsteigen... Fangen wir nochmal von vorne an X( 18k zeilen fürn arsch aber egal, man macht es danach immer besser =)


    Naja hoffe mir kann wer die vor&nachteile posten

    Moin, bin schon seit längeren dran meinen eigenen GM zu erstellen,


    Ich arbeite aber leider gottes auf die alte art und weise sprich -> Player Arrays / Enums, Filestream.... ich kommte damit aber gut zurecht, es macht mir nicht viele probleme nur jetzt habe ich eine Frage was ist besser bzw Schneller und vor allem Warum? sagt mir nicht weils leichter ist, ich will ne genaue erklärung haben wenn es geht.



    Filestream oder SQL zum speichern der Accounts / Andere Einstellungen?
    Was ist besser und schneller?



    Player Arrays mit Enums oder PVar's?
    Was ist schneller zum auslesen? direkte arrays oder pvars? was ist besser?

    DoOnce evtl?


    new DoOnce[MAX_PLAYERS] = false;
    Public OnPlayerRquestClass(playerid, classid)
    {
    if(DoOnce[playerid] = false)
    {
    SetPlayerPos(playerid, 0.0, 0.0, 0.0);
    SetPlayerFacingAngle(playerid, 0.0);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid, COLOR_123, "Wähle nun deinen Skin aus.");
    DoOnce[playerid] = true;
    }
    return 1;
    }


    Vergiss nicht DoOnce zu löschen sobald der Spieler den Server verlässt.

    Wie kann man sich bitte einen Linux VServer zulegen wenn man 0 ahnung von Linux hat? Das geht mal garnicht klar... :evil:


    Google halt nach Linux Tutorials, wird schwer es dir zu erklären, wenn du lernfähig bist, dann lernste schnell mit Linux umzugehen.


    PS: Leg dir Lieber Windows zu wenn du keine ahnung von Linux hast, Windows braucht zwar mehr Resourcen als Linux aber dafür denke ich kann Windows jeder bedienen. :thumbup:

    Frame-Filtering ausschalten...


    Wenn ich das an habe, laggt GTA sogar bei meiner ATI HD 5770 mit 1gb GDDR5 lol...


    Zumal, hast du Vista/Win7 ? Starte mal GTA und öffne den Task-manager (STRG+ALT+ENTF) Geh zum Prozesse TAB und mach mal Rechtsklick auf "gta_sa.exe" -> Zugehörigkeit Auswählen - 4 CPU, Er ist sonst immer bei 1 CPU


    Das Heißt wenn du ein Quad-Core hast läuft GTA-SA nur auf einem CPU Kern, somit könnte sich ein Kern voll auslasten und es fängt an zu laggen, da du aber 4 Kerne hast solltest du ihn auf 4 CPU stellen, somit dürfte alles geregelt sein.

    Mit den Standart einstellungen dürfte der Server laufen solang du eine 100MBit verbindung hast.



    Ob der Server zu 100% auf dem VServer laggfrei läuft hängt auch von deinem Gamemode / Filterscripts bzw deinen Server-Einstellungen ab.


    Aber der server würde reichen. 8)

    Wirklich nice!
    10/10


    Vllt. noch CreateFolder oder soetwas in der Art hinzufügen das Ordner erstellt.


    DOF_GetBool(file[],key[]);//Gibt einen Booleanwert einer Datei.
    Gibt das False/True zurück?


    Ich schreib glaub ich nachher mal ein Filestream plugin ^^ hast mich auf einer idee gebracht...


    frename - Umbennnen
    fcopy - Kopiert eine Datei
    fdelete - Löscht eine Datei
    ffolder - Erstellt einen Ornder
    fdelfolder - Löscht einen Ordner


    Zum DINI inc, sieht echt echt nice;)

    Zb. So!


    new RandomServerNames[6] = {"TDM Server", "Roleplay Server", "DM Server", "Stunt Server", "Chill Server", "Name Server"};
    new str[128];
    new TM;


    forward RndName();
    public RndName()
    {
    new rnd = random(sizeof(RandomServerNames));
    format(str, sizeof(str), "hostname %s", RandomServerNames[rnd]);
    SendRconCommand(str);
    }


    public OnGameModeInit()
    {
    TM = SetTimer("RndName", 3000, true);
    }


    public OnGameModeExit()
    {
    KillTimer(TM);
    }