Beiträge von Anubis

    Du könntest auch einfach eine explosion beim spieler erzeugen wenn er sich in dem gebiet aufhält bzw es betritt.Das würde dann den kill durch eine Rakete simulieren.


    Das wäre wesentlich ressourcensparender obwohl so eine Rakete die durch die Luft fliegt natürlich ganz schön was her macht^^

    Ist doch nicht schlimm. Kannst doch auch trotzdem alles daran verändern wie du willst, ob du es jetzt mit oder ohne ex einfügst. Nur das du bei ex eben ganz zum schluss einen weiteren parameter setzen musst - nämlich den zeitintervall(in millisekunden) in dem das fahrzeug spawnen soll wenn es zerstört wird. Add StaticVehicleEx ist also das gleiche wie AddStaticVehicle nur eben mit respawnzeit.



    http://wiki.sa-mp.de/AddStaticVehicle


    http://wiki.sa-mp.de/AddStaticVehicleEx

    Ah okay, deswegen heisst es ja auch else if - wenn man englisch kann ist die logik dahinter nicht allzu schwer zu verstehen(und das kann ich idealerweise).War nur wie gesagt nicht ganz sicher wie man es dann einsetzt. Jetzt hab ich es voll und ganz verstanden :) danke :)

    Sauber, funktioniert ohne probleme.Meldungen werden richtig ausgegeben und getoggelt wird auch :)


    Vielen dank :thumbup:



    Wegen dem unfreeze, wenn man jemanden unfreezed der nicht gefreezed ist dann wird er ja trotzdem von seiner aktion abgehalten.Kommt zwar schonmal vor das sich jemand dadurch reinbuggen kann aber eher selten, mache aber trotzdem noch ein remove mit rein falls es jemand macht^^ thx für den tip



    So dann close ich mal :)

    Ok versuche ich mal, habs unter dem callback "public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)"



    Das returnt ja die vehicle id, deswegen habe ich kein GetVehicleID drin.

    Ja ausser beim ersten if wo die vehicel id überprüft wird, denn das 2te und dritte if istja wieder abhängig vom ersten. Da würde sich glaube ich deine methode anbieten, müsste ich dann aber das erste if wo es um die vehicle id geht an die stritte stelle setzen ?, weil dafür brauche ich ja keine fehlermeldung.



    Oder wie würdest du es machen ?

    So bekomme ich irgendwie warnings.....habe jetzt auch schon wieder ein bischen damit rumexperimentiert aber bekomme es einfach nicht hin, egal wie ich den code verkapsel.Ich werde mal konrketer und poste jetzt den code auf den ich das gern anwenden möchte.


    Unter public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)


    if(GetVehicleModel(vehicleid) == 532)
    {
    if(pInfo[playerid][beruf] == JOB_FARMER) // wenn er kein farmer ist dann blablubb toggle
    {
    if(pInfo[playerid][gefarmt] == 0) // wenn gefarmt nicht auf 0 ist dann blabla toggle
    {
    new starthanfgt[10];
    SendClientMessage(playerid,COLOR_HELLGRUEN, "Fahre nun die Checkpoints ab um Hanf zu ernten");
    pInfo[playerid][farmt] = 1;
    SetPlayerRaceCheckpoint(playerid,0,farmercheckpoints[0][0],farmercheckpoints[0][1],farmercheckpoints[0][2],farmercheckpoints[1][0],farmercheckpoints[1][1],farmercheckpoints[1][2],3.0);
    format(starthanfgt, sizeof(starthanfgt), "~g~%dkg",pInfo[playerid][hanfmenge]);
    GameTextForPlayer(playerid,starthanfgt, 120000, 1);
    }
    else
    {
    TogglePlayerControllable(playerid,1);
    SendClientMessage(playerid,COLOR_ROT, "Du bist kein Farmer !");
    }}
    return 1;
    }

    Ah okay, wieder was dazu gelernt.



    besten dank für eure hilfe :thumbup:



    Edit:


    Hat sich doch noch ein kleines problem ergeben,



    if(pInfo[playerid][beruf] != 1) return TogglePlayerControllable(playerid, 1); SendClientMessage(playerid,0xFF0000AA, "1 trifft nicht zu");


    Wenn ich es so mache wird er zwar davon abgehalten ins fahrzeug zu steigen aber die message kommt nicht, umgekehrt wird die message angezeigt aber toggle nicht ausgeführt. Daher es wird immer nur das erste hinter dem return ausgeführt. Woran liegt das ?

    Bau in deinem enum einfach "duty"ein.Wenn duty auf 0 ist dann ist er nicht im dienst und wenn es auf 1 ist dann ist er im dienst. Wenn er mit /duty in Dienst geht lässt du duty einfach auf 1 setzen.


    Bei den Befehlen fragst du dann einfach ab ob duty auch auf 1ist.

    Servus,


    Als beispiel habe ich mal diese funktion erstellt , bis jetzt kannte ich es nur so das man ganz am ende der funktion ein else mit SendPlayerMessage als Meldung setzt falls eine der vorgaben nicht zutrifft. Wie kann ich es aber machen das für jede bedingung eine PlayerMessage gesended wird wenn sie nicht zutrifft ?. Also wenn a nicht dann, wenn b nicht dann...usw.....



    if(pInfo[playerid][a] ==1)
    {
    if(pInfo[playerid][b] == 2)
    {
    if(pInfo[playerid][code=c] ==3)
    {
    if(pInfo[playerid][d] == 4)
    {
    pInfo[playerid][blablub] = 10
    }
    else
    {
    SendClientMessage(playerid,0xFF0000AA, "Eine der bedingungen trifft nicht auf dich zu o.O ");
    }
    }}
    return 1;
    }




    Mit freundlichen Grüßen


    Anubis

    Also ich habe bei mir ein kleines id System. Wenn der Spieler ein Auto kauft wird er sofort reingesetzt und die id + alle fahrzeugdaten in der ini gespeichert. Wenn er nun sein auto öffnet wird die id aus der ini bzw. pinfo geholt und das entsprechende fahrzeug geöffnet. Beim disconnect wird dann das fahrzeug zerstört + die id aus der ini gelöscht und bei nächsten connect wird das car wieder erstellt und die id neu in der ini gespeichert. Ob es ganz fehlerfrei läuft wenn viele user auf dem Server sind weiß ich nicht da ich es noch nicht testen konnte aber im sebstversuch funktionierte das ohne probleme.

    eine neue Variable ist für den Vorgang nicht nötig bzw. geht sogar Direkt beim verlassen des Servers...

    Ja hast recht, hatte es gerade editiert. Nur ich hatte mal das problem das beim disconnect immer eine 0 gespeichert wurde und als ich dann eine variable benutzt habe war das problem weg.Warum und weshalb......ist mir rätselhaft.

    Spieler[playerid][skin] = GetPlayerSkin(playerid);


    So hätte die pInfo schonmal den Playerskin, wie du dann speicherst weisst du ja schon.
    Wo du das einfügst musst du selbst entscheiden, weiß ja nicht wie dein Register/Login System aufgebaut ist.

    Ich will mich auch nicht streiten, passt schon.


    Ich hatte vorher auch noch nie erlebt das ein leerzeichen einen Servercrash verursacht aber es ist nunmal passiert und aus dem Grund habe ich es bei ihm in Betracht gezogen.Habe ja nicht gesagt das es die 100%tige Lösung ist sondern das er es mal "versuchen" soll. Kann gut sein das mein problem so ausgelöst wurde wie du es sagst und mein Lösungsansatz bei ihm total daneben ist aber ich habe eben nur aus erfahrung gesprochen und nicht aus der programmiertechnischen logik.

    Erzähl mir doch nicht was sein kann und was nicht, warum ziehst du dich eigentlich daran hoch ? Ich habe es so erlebt und darum gebe ich ihm den Tip - wenns bei ihm hilft ist gut und wenn nicht dann eben nicht.Von mir aus kann es auch zufall gewesen sein aber der Punkt ist, es war so. Hier gehts doch nicht darum wer mehr weiß als der andere. :thumbdown: