Beiträge von Simon

    ich würde eine datei erstellen, die immer eine meinetwegen 5 stellige zahl speichert, bsp: 11111.


    wenn sich nun einer registriert, speicherst du seine handynummer in der .ini, welche die nummer in der datei entspricht. dann erhöchste die zahl in der datei um 1, damit nicht noch einer die nummer bekommt.
    wenn nun einer /call 11111 macht, überprüfst du mit einer for schleife ob ein spieler diese nummer in der ini hat. wenn ja, wird er verbunden, wenn nicht, kommt ne nachricht mit kein anschluss unter dieser nummer. wenn du es soweit geschaft hast, muss du einfach eine variable erstellen, die überprüft, das du und mit wem du telefonierst, fragst die bei OnPlayerText ab und schickst die nachricht an die bestimmten spieler

    ich erklärs dir: wenn man stirbt, wird das public OnPlayerDeath aufgerufen und es geschieht das was darunter steht:
    spieler bekommen geld, wird in den logs gespeichert.


    mehr passiert da nicht. nur normaler weise wird der spieler gespawnt nachdem er stirbt, was er aber net immer tut.
    das mit den SpawnPlayer finde ich kacke, weil er dann wirklich sofort spawnt wenn er getötet wird.
    ich könnte einen kleinen timer von 3 sekunden einbauen, damit die animation kommt und er dann gespawnt wird, aber verlassen kann man sich da auch nicht drauf, denn manchmal wird er ja gespawnt und in demfall würde er dann doppelt spawnen... kennt jemand das problem bzw. weiß eine lösung, auf allen anderen servern stirbt man und es kommt diese sterbe animation, dass man auf dem boden liegt, (blut verliert,) und dann so von oben rauf guckt. das ganze dauert 2-3 sekunden dann spawnt man, wie im SP auch.

    Guten Tag


    Ich weiß nicht warum aber häufig habe ich ein bug beim sterben. ich schieße einen anderen spieler ab bis er tod ist. die deathmessage wird abgesendet und alles was unter OnPlayerDeath steht passiert.
    Jedoch sollte der spieler doch eigentlich sterben und respawnen, was er nicht immer tut. häufig bleibt er bei allen anderen auf dem boden tod liegen und bei dem getöteten spieler selbst blinkt die hp anzeige, er hat 0 hp und kann rumlaufen. alle anderen spieler neben ihn kann er angreifen, es hat aber kein effekt, da er ja bei den anderen auf dem boden liegt. erst wenn er ein 2. mal getötet wird, indem er 3-4 meter fällt, zufällig in den schuss von einem anderen reinläuft oder wie auch immer, stirbt er endgültig und wird auch respawnt.


    wie kann das sein?


    hier mein OnPlayerDeath:
    public OnPlayerDeath(playerid, killerid, reason)
    {
    new lstr[125], hour, minute, second, year, month, day, name1[MAX_PLAYER_NAME], name2[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name1,sizeof(name1));
    GetPlayerName(killerid,name2,sizeof(name2));
    gettime(hour,minute,second);
    getdate(year,month,day);
    SendDeathMessage(killerid,playerid,reason);
    GivePlayerMoney(killerid,100);
    GivePlayerMoney(playerid,-50);
    Update(playerid);
    if(killerid != INVALID_PLAYER_ID)
    {
    format(lstr,sizeof(lstr),"[%d.%d.%d][%d:%d] %s(%d) hat %s(%d) gekillt. Mordwaffe: %s.\r\n",day,month,year,hour,minute,name2,killerid,name1,playerid,Waffennamen[reason]);
    }
    else
    {
    format(lstr,sizeof(lstr),"[%d.%d.%d][%d:%d] %s(%d) ist gestorben. Grund: %s.\r\n",day,month,year,hour,minute,name1,playerid,Waffennamen[reason]);
    }
    AddLog("/Logs/Kills.log",lstr);
    return 1;
    }


    Ich hoffe ihr könnt mir helfen, Lags sind nicht schuld, da keine lags da sind. es ist nur ein kleines script mit 1-2 timern und wenig spielern. Ansonsten lagt es auch niergens, die Spieler kann man wunderbar treffen und muss nicht 2m neben den Spieler ziehlen.

    du meinst also algemein alle spieler markieren
    ShowPlayerMarkers(1);


    und anstatt die farbe 0xFFFFFFFF einfach 0xFFFFFF00 nehmen. dann bleibt die farbe im chat gleich und wenn man tab drückt, jedoch auf der mapn sind sie unsichtbar.


    und wenn ich sie markiere einfach die farbe ändern.


    Wenn das klappt dann isses einfacher als gedacht, ich probiere es mal ebend.


    //edit: hat alles geklappt, danke

    Guten Tag


    Ich möchte gerne einzelne Spieler auf befehl makieren, sodass die Position dieses Spielers auf der Karte angezeigt wird.
    Wenn man nun den selben befehl nutzt, soll er wieder demakiert werden.


    /marker 0 >> markiert id 0 in farbe rot und dieser wird auf der minimap angezeigt.
    /marker 0 >> gibt ihm die alte farbe weiß zurück und id 0 wird nicht mehr auf der minimap angezeigt.


    Ich habe schon selber probiert einen Spieler zu makieren, jedoch wurde dieser nicht auf der Minimap angezeigt und ich konnte ihn auch nicht demakieren.


    Es wäre sehr nett wenn ihr mir den Befehl scripten könntent oder mir zumindes die Funktionen geben könnt, da ich denke das ich die Falschen funktionen benutzt habe oder welche vergessen habe.


    Folgende Funktion habe ich benutzt: SetPlayerMarkerForPlayer(playerid,pID,0xFF0000FF);

    der updatet die daten. wenn du jemand killst, wird dein kill um ein erhöht. bei spieler update werden alle stats abgefragt und in der .ini eingetragen.

    ja, nur ich verstehe das noch nicht ganz was du ausgerechnet hast und wie bekomme ich das nun hin das der roller nun maximal 60 oder 70 fährt. iwie muss ich herausbekommen wie die velocity sein muss.

    es soll wie eine drosselung sein. Power genug hat er um schneller zu fahren, aber er fährt nicht schneller.
    Das müsste mit SetVehicleVelocity möglich sein, denn genau das ist die Funktion, die die Geschwindigkeit einstellt.
    wenn ich also SetVehicleVelocity(vehicleid,0,0,z); mache, dann bleibt das auto sofort stehen, egal wie schnell ich vorher gefahren bin.
    Wenn ich nun SetVehicleVelocity(vehicleid,99999,99999,z); mache, vermute ich, das das Auto mega schnell wird, ausprobiert habe ich es aber noch nicht.
    Und genauso muss man dann wohl auch die Velocity so einstellen, dass das Auto normal weiterfährt aber halt nicht schneller als im script festgelegt.
    Und dazu muss ich wohl rechnen, und wie genau ich rechnen muss, weiß ich nicht.


    Aufjedenfall ist es möglich, da ich es schon auf anderen Servern gesehen habe.

    Guten Tag


    Ich möchte Geschwindigkeiten von bestimmten Fahrzeugen festlegen. Wenn ich nun die Geschwindigkeit ausrechne:
    Geschwindigkeit = floatsqroot(X*X + Y*Y + Z*Z) * 100 * 2
    dann ist die Geschwindigkeit beim Infernus etwa 200. Wenn ich nun mit dem Roller fahre und das vergleiche, ist der doch recht schnell, besonders wenn man ganze zeit die Pfeiltaste tibbelt so das er sich dauernt nach vorne beugt. Deswegen möchte ich die Geschwindigkeit nicht nur ausrechnen, sondern auch für Fahrzeuge festlegen, so das das Fahrzeug nicht schneller fahren kann.
    Wenn ich nun die Maximale geschwindigkeit vom Infernus auf 100 reduziere und laut berechnung er aber 200 fahren kann, soll er nur bis zu 100kmh fahren können.


    Ich denke das ist machbar mit SetVehicleVelocity, aber wie genau ich dasmachen muss weiß ich nicht.


    Ich hoffe ihr könnt mir da weiterhelfen.

    Guten Tag


    Da ich eine etwas längere Pause eingelegt habe, würde ich gerne wissen, wie ich die neuen Funktionen mit 0.3c nutzen kann.


    Mann kann ja innerhalb einer ClientMessage oder einem dialog die farbe einiger Worte ändern.
    Ich wüsste gerne wie das geht.


    Wie man Objekte an autos klebt oder nummernschilder ändert, weiß ich bereits.
    wenn jemand ein Link dazu hat, wäre es auch gut.. Ich habe nichts gefunden.

    Guten Tag


    inGame kann man ein befehl nutzen und mit ihm ein wunsch schreiben, bsp:


    /wunsch Beispiel


    dann steht in der datei:
    [Datum][Zeit] Name wünscht: Beispiel.


    nun kommt noch einer und schreibt ein wunsch: /wunsch Beispiel 2.


    Nun steht logischerweise in der datei:
    [Datum][Zeit] Name wünscht: Beispiel.
    [Datum][Zeit] Name wünscht: Beispiel2.


    Nun möchte ich das man InGame die Wünsche aufrufen kann.
    Wenn ich nun die Funktion fread nutze, ließt er nur die 1. Zeile.
    Ich kann aber auch nicht überprüfen ob ein bestimmtes Wort oder ein bestimmter Satz gefunden wurde und dann wiedergeben, da ich ja nicht weiß was in der datei drinne steht.


    Wie kann ich nun überprüfen, ob er am ende der datei angelangt ist?


    While(fread(datei,string))
    {
    if(???)
    {
    ShowPlayerDialog(playerid,dialogid,dialogtyp,"Wünsche",string,"","");
    }


    }


    wäre sehr nett wenn ihr mir da weiter helfen könnt

    Guten Tag


    Man kann ja die Marker an und ausstellen.
    Nun nutze ich die funktion SetPlayerMarkerForPlayer(playerid,markerid,farbe);
    Nun habe ich das Problem, das der Spieler nun auch gemarkert wird, jedoch nicht auf der (mini)map angezeigt wird.
    Das liegt wohl daran, das ich die marker abgeschaltet habe. Wie kann ich denn nun wirklich nur die markieren und auf der minimap anzeigen die ich möchte?


    habe es so:

    OnGameModeInit()
    {
    ShowPlayerMarkers(0);
    return 1;
    }


    dcmd_marker(playerid,params[])
    {
    new pID;
    if(sscanf(params, "u", pID))
    {
    return SendClientMessage(playerid,grau,"Benutzung: /marker [playerid]");
    }
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,grau,"Ungültige playerid!");
    }
    else
    {
    SetPlayerMarkerForPlayer(playerid,pID,0xFF0000FF);
    }
    return 1;
    }