Beiträge von YaBroo



    Muss ich nicht immer wenn ich möchte das es bei jedem Spieler einzelnt ist MAX_PLAYERS benutzen?
    Egal wie ichs mache mit new name wenn ich unten kein [playerid] dran hänge kommt
    C:\Dokumente und Einstellungen\user\Desktop\Games\Samp-Server\gamemodes\RaceLV.pwn(803) : error 035: argument type mismatch (argument 3)

    Vorhaben:
    Jetzt da ich einen funktionierenden Timer habe, der die Zeit stoppt beim erreichen des Ziels möchte ich die Zeiten aller Spieler gespeichert werden, damit sie am Ende in einem Dialog wieder gegeben werden wenn das Rennen zu ende ist.(Von den ersten 10 Spielern die das Ziel erreichen)


    Demnach wollte ich jetzt irgendwie alles in einer Datei speichern und danach abrufen. Falsch?


    //Edit
    new Platzi[100];
    new name[MAX_PLAYERS];
    GetPlayerName(playerid,name,sizeof(name));
    format(Platzi,sizeof(Platzi),"/Accounts/Platzierung.txt");
    if(dini_Exists(Platzi) == 0)
    {
    dini_Create(Platzi);
    }
    dini_IntSet(Platzi,"Name",name[playerid]);
    dini_IntSet(Platzi,"Platz",sieger[playerid]);


    Name=67 in der Datei.


    /E3

    Hab ich vergessen, du bistn engel. xD
    //Edit
    Kann ich dann in eine Datei alle Daten rein schreiben von JEDEM Spieler per MAX_PLAYERS oder muss ich für jeden eine erstellen damit ich das am Ende in einem Dialog INGame abrufen kann?

    new Platzi[100];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Platzi,sizeof(Platzi),"/Accounts/Platzierung.txt");


    Datei wird gar nicht erstellt!? :0

    Aber es funktioniert?!
    Nagut dann probier ichs gleich nochmal anders aus.


    //EDIT


    new Platz[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Platz,sizeof(Platz),"/Platzierung/%s.txt");



    dini_IntSet(Platz,"Platzz",sieger);
    dini_IntSet(Platz,"Namen",name);//Hier ist der Fehler);


    Ich hab jetzt mal zum Testen Sieger(Platzierung) und den Namen genommen.


    C:\Dokumente und Einstellungen\user\Desktop\Games\Samp-Server\gamemodes\RaceLV.pwn(520) : error 035: argument type mismatch (argument 3)


    //Edit
    Mit
    dini_IntSet(Platz,"Namen",name[playerid]);//Hier ist der Fehler)


    gings

    Servus d0.
    Ich habs jetzt anders gelöst.


    new racestart;


    racestart = SetTimer("countdown",1000,true);


    new string3[64];
    racestart = ( GetTickCount() );
    format(string3, sizeof string3,"Zeit:0%d/%d!",Mini,second);
    SendClientMessageToAll(grün, string3);


    Das funktioniert eig. so wie ich wollte nur iwie versteh ich den Warning nicht. Ich benutz racestart doch.
    C:\Dokumente und Einstellungen\user\Desktop\Games\Samp-Server\gamemodes\RaceLV.pwn(792) : warning 204: symbol is assigned a value that is never used: "racestart"


    Danke dennoch für deine Schnipsel
    Naja auf jedenfall habe ich ein schwierigeres Anliegen. Ich möchte das die Zeit regelrecht gespeichert wird und am Ende des rennens abrufbar wird von allen Spielern.
    Sprich ich habs mir so vorgestellt das am Ende ein MSG Dialog erscheint in dem die Top 10 platzierten in der Reihenfolge der Zeit natürlich der 1. Platz kleinste Zeit ganz oben zu sehen sind. Wie kann ich das umsetzen? :S Derzeit lasse ich auch nur um die Position zu messen beim Entern des letzten Checkpoints eine Variable +1 hoch zählen


    //Edit
    Ich benutze Dini, kann ich da nicht von den ersten 10 Spielern die Zeit in einer Datei speichern und am Ende aufrufen? Dadurch das die Namen durch Platzierungen unterschiedlich gespeichert werden, sollten sie doch auch von 1-10 aufrufbar sein. Bitte um hilfe


    //Edit
    Ich probiers mal eben mit
    new Platz[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Platz,sizeof(Platz),"/Platzierung/%s.txt");


    & co

    Wenn keine includes, filters vorhanden sind die das verursachen könnten, kann es nur am Script liegen. Versuch's fest zu stellen beim registrieren.

    Vorhaben:
    Ich habe 2 Timer. Der eine gilt dazu öffentlich den Textdraw hoch zu zählen was auch eig. wunderbar funktioniert wenn 1000 1 Sekunde ist und der andere zählt intern mit und wenn er durch's Ziel(Race) fährt soll die Zeit wiedergegeben werden. Ich hab das so gemacht ums bei jedem CP zu sehen ob die timer übereinstimmen. Ding ist, von Checkpoint zu Checkpoint ist der untere Timer im ersten Post höher als der andere. Und das anfangs 5 Sekunden und später um die 30 Sekunden. Ich verstehe nur nicht warum der interne schneller bzw. der globale langsamer ist! Kann man nicht einfach den internen timer in den globalen einbauen ?

    Dann mach das einfach jeder der sich neu registriert Geld gesettet bekommt.
    Und wenn der Betrag sich beim einloggen ändert dann schau in den genutzten Filterscripts nach.

    Wo ist der Unterschied zwischen


    SetTimer("countdown",1000,true);


    und


    new string3[64];
    new timeMs = ( GetTickCount() - racestart );
    //timeMs(millisekunden) in Min:Sek.Ms umrechnen
    new minuten = (timeMs/60000);
    timeMs -= (minuten * 60000);
    new sekunden = (timeMs/1000);
    format(string3, sizeof string3,"Zeit:0%d/%d!",minuten,sekunden);
    SendClientMessageToAll(grün, string3);


    warum läuft das untere schneller bzw. das obere langsamer-.-?

    Ich benutze jetzt erfolgreich
    if(Spieler[playerid][Sprache] == 1)


    Aber angenommen ich habe das jetzt in einem FS und möchte es auch in einem GameMode abrufen lassen sprich die Funktion Sprache dann muss ich das doch mit SetPVarInt machen und dementsprechend im GM aufrufen lassen und abfragen lassen...Dabei komme ich doch auch nicht drum herum bei jeder Abfrage die Acc Datei aufzumachen..Oder kann man das im GM wieder umschreiben GetPVar... und das dann in
    Spieler[playerid][Sprache] wieder um wandeln.

    Theoretisch und praktisch wäre es mit 30 Strings bestimmt auch funktionierend :^
    Was hab ich denn anders gemacht als DasNeo.
    Das war nur ein Beispiel und fungiert genauso wie die's gesat haben .. lol* :D


    /E


    "ich möchte das nur Admins ein paar Fahrzeuge fahren können. Hab es auch eingebaut in den Script"


    Demnach sollte er genau das gegenteil machen von dem was du gesagt hast außerdem wird denke ich der exakte Rang angegeben!


    //Edit2

    zB(Dini)


    #define msg 1


    if (strcmp("/Stats", cmdtext, true, 10) == 0)
    {
    new namess[30], string[255];
    GetPlayerName(playerid,namess,sizeof(namess));
    format(string, sizeof(string), "%s\n\nLevel:%d\nGeld: %d$", namess,GetPlayerScore(playerid),GetPlayerMoney(playerid));
    ShowPlayerDialog(playerid,msg,DIALOG_STYLE_MSGBOX, "Statistiken", string,"Spielen","Spielen");
    return 1;
    }


    Hat er doch Naseweiß.
    Mach mal aus %s ein %d