Beiträge von Kompressor

    Wenn du willst, das man die ingame(mit Waffen) umbrigen kann, kann ichd ir sagen, dass es nicht geht.
    Man kann sie aber mit einem Befehl umbringen, bzw. kicken. Ich glaueb da gibt es eine Funktion...evt. KillBot oder so in der Art. Musst mal im Wiki nachschauen.


    MfG Waoler

    2:
    public OnPlayerDeath(playerid, killerid, reason)
    {
    GivePlayerMoney(playerid, -200);
    GivePlayerMoney(killerid, +200);
    SendClientMessage(playerid, FARBE, "Du wurdest umgebracht und hast $200 verloren");
    SendClientMessage(killerid, FARBE, "Du hast jemanden umgebracht und bekommst $200");
    return 1;
    }
    und zum Startgeld:
    public OnPlayerConnect(playerid)
    {
    SetPlayerMoney(playerid,1000);
    }


    So müsste es alles gehen!


    MfG Waoler

    Das ist angepasst für mein Login System.
    Wenn der Spieler disconnected:
    dini_FloatSet(Spielerdatei,"PosX",PosX);
    dini_FloatSet(Spielerdatei,"PosY",PosY);
    dini_FloatSet(Spielerdatei,"PosZ",PosZ);
    Und bei on player spawn:
    SetPlayerPos(playerid,GetPVarInt(playerid,"PosX"),GetPVarInt(playerid,"PosY"),GetPVarInt(playerid,"PosZ"));
    Hoffe so ist es richtig.


    MfG Waoler

    Was möchtest du denn? Du hast nur gesagt, was du brauchst...Und was willst du jetzt von uns? sollen wir dir das machen, oder wie meinst du das?
    Ich rate dir zur sufu.
    [Liste] Tutorials
    Hier findest du soziemlich alles was du brauchst.


    MfG Waoler

    Ich versuche schon eine ganze Weile, wie ich es hinbekomme, den Spawn auf den Logout Punk tzu setzen. Eigentlich ist das ja nciht schwer. Beim Disconnecten saved man die X,Y,Z Pos und beim connecten bzw. spawnen ruft wan sie ab, und setzt den Spieler dahin.
    Aber in der Praxis sieht es bei mir nciht gut aus.
    Speichern tu ich so: dini_FloatSet(Spielerdatei,"PosX",PosX);
    dini_FloatSet(Spielerdatei,"PosY",PosY);
    dini_FloatSet(Spielerdatei,"PosZ",PosZ); und halt vorher GetPlayerPos...
    Und zum Laden mache ich es so:SetPlayerPos(playerid,GetPVarInt(playerid,"PosX"),GetPVarInt(playerid,"PosY"),GetPVarInt(playerid,"PosZ"));
    Aber es geht einfach nicht. Im Spiel, falle ich erstmal, und dann spawne ich am Bauernhof da...
    ...
    Ich habe es auch schon so versucht(bin ich im Forum drauf gestoßen): new pname[MAX_PLAYER_NAME], Spielerdatei[128];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(Spielerdatei, sizeof(Spielerdatei), "/Accounts/%s.ini", pname);

    SetPlayerPos(playerid,dini_Float(Spielerdatei,"PosX"),dini_Float(Spielerdatei,"PosY"),dini_Float(Spielerdatei,"PosZ"));
    Aber das ist ja eigentlich das gleiche.


    PS: Achja übrigens das speichern macht er richtig. So sieht es aus:
    PosX=210.232330


    PosY=-232.448425


    PosZ=1.778618



    MfG Waoler

    Also ich finde man sollte selber erstmal etwas nachdenken, und dann Fragen. Ich möchte jetzt nicht einfach den Code posten.
    Fangen wir an!
    Zuerst müssen wir überlegen, wann es passsieren soll. Das wissenwir ja nicht genau, also fragen wir es jede Sekunde ab, wenn wir im Auto sitzten. D.h.: bei OnPlayerUpdate ein Abfrag ob wir in einem Auto sitzten. Aber damit wir auch direkt die aktuelle ID vom fahrzeug haben, machen wir es s:
    new gCurVeh = GetPlayerVehicleID(playerid);//ermitteln der aktuellen CarID. Und diese ind die Variable gCurVeh(aktuelles Vehicle) speichern.
    if(gCurVeh) // wenn er im Fahreug sitzt...
    {
    new Float:tempHealth;//neue Float erstellen, für die aktuelle Health
    GetVehicleHealth(gCurVeh, tempHealth); //Speichern der akt. Health vom Car
    if(tempHealth < 250){//Wenn die akt. Health unter 250 ist...
    SetVehicleHealth(gCurVeh, 255);//setze sie auf 255 Health (kurz vorm brennen)
    GetVehicleParamsEx(gCurVeh,engine,lights,alarm,doors,bonnet,boot,objective);//den aktuellen Status des Cars bekommen
    SetVehicleParamsEx(gCurVeh,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);//den status setztn, das der Motor aus ist.
    //Wenn gewollt, noch eine Message ausgeben, z.B. "Dein Fahrzeug ist kapput".
    }
    }


    PS: Ungetestet. Hoffe hab alles berücksichtigt.


    MfG Waoler

    Eine Abfrage, ob der Spieler bei der Feuerwehr oder dem Presidenten ist, und dann die Objekte erstellen lassen, die du für die Straßensperre verwenden willst.
    Achja und vorher noch die Position von Spieler abfragen und die Objekte an dieser Stelle spawnen lassen.


    MfG Waoler

    Hier noch eine kleine Verbesserung:
    if(strcmp(cmd,"/dienst",true)==0)
    {
    if(SpielerInfo[playerid][sLeader] == 22 || SpielerInfo[playerid][sMember] == 22)
    {
    if(IsPlayerInRangeOfPoint(playerid,5.0,1639.2731,-1527.6267,13.5906))
    {
    if(OnDuty[playerid] ==1)
    {
    OnDuty[playerid] = 0;
    SetPlayerSkin(playerid,164);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,"Du bist nun nicht mehr im Dienst!");
    ResetPlayerWeapons(playerid);
    }else{
    GivePlayerWeapon(playerid,9,1);
    GivePlayerWeapon(playerid,42,99999);
    SetPlayerSkin(playerid,279);
    OnDuty[playerid] = 1;
    SendClientMessage(playerid,COLOR_LIGHTBLUE,"Du bist nun im Dienst!");
    }
    }else{
    SendClientMessage(playerid,COLOR_GREY,"Du bist nicht am Dienst-Punkt.");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Du brauchst nicht in den Dienst zu gehen.");
    }
    return 1;
    }


    Und noch ein Tip: Ich würde keine "normale" Variable dafür benutzen, die frisst zuviele Ressourcen. Ich würde dir raten, mit SetPVarInt
    //und
    GetPVarInt 
    zu arbeiten, da dies viel Ressourcen schonender ist als wie du es machst.



    MfG Waoler

    Ich glaube die explosion abstellen ist unmöglich. Aber du kannst es so machen dass, das Auto wenn es anfängt zu brennen, wieder in den Rauchzustand versetzt wird. So würde das Auto auch nicht kapput gehen. Und wenn es soweit kapput geht, einfach den Motor des Autos ausstellen, sodass der Spieler nichtmher fahren kann, bis die Feuerwehr eintrifft. Ich hoffe es war relativ verständlich. Bei Fragen, einfach melden.


    MfG Waoler

    Hat den Niemand das selbe Problem? Oder kann mir helfen? Wie ist es denn bei den ganzen anderen Servern gelöst, dass die nicht erst spawnwn und dann zur Position gesetzt werden?
    Bitte ich brauche eure Hilfe.


    MfG Waoler

    Ein langes Problem.
    Früher hatte ich es so, dass bei "OnPlayerSpawn" abgefragt wurde in welcher Fraktion er ist und demendsprechend wurde der Spawn gesetzt.
    Dies hatte zurfolge, dass man immer einmal am standartspawn gespawnt ist und erst kurz danach zum richtigen spawn gekommen ist. Dies wollte ich eben ändern.
    Mit einem Freund habe ich gestern den ganzen Abend dran gesessen, aber nur leider halberfolgreich. Jetzt ist es so, das ich zwar beim ersten connecten richtig spawne, aber bei jedem Death danach immer in der Luft gespawn bin. Ich habe es im Moment mit SetSpawnInfo(playerid,0,GetPVarInt(playerid, "Skin"),policespawn,0.0,0,0,0,0,0,0);als Stock gelöst. Aber wo kann ich den Stock noch reinschreiben, im Moment habe ich ihn nur bei OnPlayerRequestClass drin. Jetzt müsste ich ihn ja noch irgendwie vor OnPlayerDeath reinmachen, damit er bei einem Death auch auf den Stock zugreift.


    Ich hoffe ihr habt mein Problem verstanden und könnt mir einigermaßen helfen.


    MfG Waoler

    Nein. Du kannst ja mit if(GetPlayerWantedLevel(playerid) == 1)
    {
    SetTimer("Knastzeit",Zeit,0);
    return 1;
    }
    if(GetPlayerWantedLevel(playerid) == 2)
    {... Immer für alle Wanteds alles definieren. Wenn er 1 Wanted level hat usw.
    Bei Wanted1=SetTimer("Knastzeit",30000,0);
    bei 2=SetTimer("Knastzeit",60000,0);
    usw.
    Verstanden? Oder soll ich noch genauer erklären?


    MfG Waoler