Beiträge von Crank93

    public OnPlayerCommandText(playerid, cmdtext[])//Hier kommen alle normalen befehle rein


    {
    dcmd(test,4,cmdtext);
    return 0;
    }
    dcmd_test(playerid, prams[])
    {
    SendClientMessage(playerid,COLOR_BLUE,"test");
    return 1;
    }


    kopier das mal und fügd ein, wenn das nicht funktiuoniert, weiß ichs auch nicht mehr...

    hi, kleine frage:
    also, wenn sich ein spieler mit dem server verbindet, wird ja automatisch "[join]...usw" in die konsole geschrieben (das gleiche beim disconnect).
    wie kann ich diese nachrichten entfernen und durch meine eigenen ersetzen?

    hi, ich hab ein racesystem, bei dem die top5 rekorde in einer txt. datei als string gespeichert werden.
    eine linie sieht dann z. B. so aus:


    Rennen000: (erster): 0 : 15 : 345 , (zweiter): 0 : 0 : 0 , (dritter): 0 : 0 : 0 , (vierter): 0 : 0 : 0 , (fünfter): 0 : 0 : 0


    jetzt möchte ich, dass die Zeit jedes racers mit den 5 zeitwerten aus der datei verglichen werden, also müssen die werte irgendwie aus dem string gelesen werden.
    ich habs schon mit sscanf versucht, aber das funktioniert nicht so wirklich.
    also, wie würdet ihr das am besten machen?

    ben


    variable erstellen:
    new isafk[MAX_PLAYERS];


    so, sobald jetzt einer /afk eingibt setzt du du die variable auf 1:


    isafk[playerid]=1;


    und wenn jetzt einer /afklist eingibt, machste ne for-schleife, die alle spieler durchgeht, und wenn bei eimem spieler isafk=1 ist schreibtste den namen einfach in den chat.

    weils grad zum thema passt hab ich auch noch ne frage:
    wenn man bei einem timer ein sehr kleines intervall wählt (z. B. wenn eine Funktion 1000 mal in der sekunde aufgerufen wird), "schafft" das script das dann überhaupt noch?
    bei meinem script z.B. wird eine variable 1000 mal in der sekunde um 1 erhöht und wenn ich das dann teste, (Racing vom start bis zum ziel) bekomme ich immer einen etwas kleineren zeitwert als die tatsächliche Zeit. das deutet doch darauf hin, das die Funktion weniger als 1000 mal/s ausgeführt wird, oder?

    jo danke erstmal, hab das jetzt mit nem timer gelöst, gibt aber ein Problem, und zwar wird der timer beim /start command gestartet und endet im Ziel. ich den timer so eingestellt, dass er jede millisekunde eine funktion aufruft, damit ich im ziel eine auf millisekunden genaue zeit bekomme. jetzt bekomm ich im ziel aber immer werte, die kleiner sind als die wirkliche zeit.
    liegt das daran, dass ein intervall von 1 millisekunde vielleicht zu klein ist und das script "überlastet" ist??

    machs am besten mit einem array, in das du alle wichtigen daten der checkpoints reinschreibst:


    enum CPINFO
    {
    Float: X,
    Float:Y,
    Float:Z,
    Float: Größe
    }


    und dann:


    new RaceCheckpoints[][CPINFO]
    { {} };//koordinaten reinschreiben


    und dann halt beim OnPlayerEnterRaceCheckpoint Callback "DisablePlayerRaceCheckpoint" und SetPlayerRaceCheckpoint. als koordinaten für SetPlayerRaceCheckpoint nimmst du dann die aus dem array, und bei jedem aufruf des callbacks erhöhst du zelle um 1 also z.B. beim 1. Checkpoint
    SetPlayerRaceCheckpoint(playerid, 0, RaceCheckpoints[0][X],RaceCheckpoints[0][Y],RaceCheckpoints[0][Z], RaceCheckpoints[1][X][RaceCheckpoints[1][Y],RaceCheckpoints[1][Z],RaceCheckpoints[0][Größe],


    beim nächsten mal halt [1] statt [0] usw.

    hi, also ich habe ein racingsystem gescriptet und mit den checkpoints und so funktioniert auch alles, nur fehlt mir halt noch ein system, das für jeden racer die zeit vom start bis zum Ziel misst. damit sollen dann z. B. rekordlisten erstellt werden.
    hab schon gesucht, aber nix gefunden. ;(
    hat jemand ahnung, wie sich sowas realisieren lässt??

    hier wird das ganze nochmal genau auf Deutsch erklärt:
    Commands mit Parametern


    bei sieht der command dann so aus:


    dcmd_weapon(playerid, params[])
    {
    new pID, weaponid, ammo;
    if(sscanf(params, "uii", pID, weaponid, ammo))
    return SendClientMessage(playerid, COLOR_RED, "USAGE: \"/weapon [ID] [weaponid] [ammo]\"");
    else
    {
    if(IsPlayerConnected(pID))
    GivePlayerWeapon(pID, weaponid, ammo);
    else
    SendClientMessage(playerid, COLOR_RED, "ERROR: Spieler nicht online");
    }
    return 1;
    }


    mfg

    hm, also ich hab das Porblem jetzt mehr oder weniger durch zufall gelöst, es lag an der ingame-zeit. die war auf 22:30 gestellt, als der server crashte. jetzt hab ich die Zeit einfach mal auf 12:00 Mitag gestellt und s crasht nichr mehr. Aber was hat die Zeit mit dem crash zu tun?

    was meinst du damit?
    der GM arbeitet ( noch) nicht mit einem Dateisystem, wenn du das meinst.


    achso hab noch was wichtiges rausgefunden: der server crasht immer nur wenn ich mich an einer bestimmten Stelle befinde( nähe Grove Street), egal ob in in einem Fahrzeug bin oder nicht, es crasht immer dort. ;(