Explodierende Autos beim betreten: Problem

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo,


    ich hab neulich versucht explodierende Autos ins Spiel einzubringen, die aber nur explodieren sollen, wenn ein Spieler das Auto betretet.


    Also dachte ich mir, versuch ichs mal so: AddStaticPickup(AutoID,9,Float:X,Float:Y,Float:Z);


    Die 9 steht in dem Fall für das explodieren (PickupID) :rolleyes:


    Allerdings hab ich 1. kein sichtbares Auto und 2. explodiert das SCHEINBARE Auto nach ein paar sekunden, wenn ich vor Ort bin.


    Hat jmd eine Idee ,wie man das scripten könnte ? :S


    Danke im voraus ;)

    Zitat

    Kennst du eigentlich Reallife ?

    Nö, schick mal Link. :D

    3 Mal editiert, zuletzt von Butterbrot ()

  • AddStaticPickup erstellt kein Auto sondern ein Pickup......

    Zuletzt gehört:


    Zitat von Chip 04/2009

    Starter


    Windows 7 Starter wird weltweit als OEM-Version verkauft. Gedacht ist sie etwa für Netbooks mit geringer Ausstattung. Ziemlich unpraktisch: Mit ihr kann man nur drei Programme gleichzeitig ausführen. Kosten: rund 50 Dollar.

  • hmm ja aber in der Wiki steht das bei den PickupID's 9 und 10 ,Autos zum explodieren bringen.


    Also wie könnte man das anders umsetzen ? :S
    ich hab eben nochmal geguckt, was ist mit DestroyVehicle ? könnte man das dafür nehmen, und wenn ja wie?

    Zitat

    Kennst du eigentlich Reallife ?

    Nö, schick mal Link. :D

  • SetVheicleHealth.....

    Zuletzt gehört:


    Zitat von Chip 04/2009

    Starter


    Windows 7 Starter wird weltweit als OEM-Version verkauft. Gedacht ist sie etwa für Netbooks mit geringer Ausstattung. Ziemlich unpraktisch: Mit ihr kann man nur drei Programme gleichzeitig ausführen. Kosten: rund 50 Dollar.

  • OnPlayerEnterVehicle wird aber auch ausgelöst wenn der Spieler Enter drückt und dann wieder wegläuft und den Vorgang abbricht.


    SetVheicleHealth ist nicht allzu sehr geeignet, da das Auto dabei erstmal zu brennen anfängt, somit hat man noch eine Chance abzuhauen.


    Vielleicht ist CreateExplosion in OnPlayerStateChange hier die die beste wahl ;)

    Intel Xeon W3690 Hexacore @ 4.5 GHz - 48GB Triple Channel DDR3 - GeForce RTX 2070 Super - Asus P6T Deluxe V1 @ P6T WS Pro BIOS

    Mainboard 12 Jahre, CPU 10 Jahre alt - old but gold!

  • wenns mit nem cmd gehen soll dann so:
    if (strcmp("/explode", cmdtext, true, 10) == 0)
    {
    SetVehicleHealth(vehicleid.-1000);
    return 1;
    }
    (so siehts bei mir aus) und so funzt es bei mir auch..
    musst du halt gucken ob du es bei dir bearbeiten musst..

  • Ah ok ,also ich probier erstmal die Variante mit create explosion.
    Nein soll nicht durch cmd ausgelöst werden. Der Spieler soll ja ungeahnt in ein Auto steigen, was dann hochgeht.
    So wie bei GTA3. Dort gabs das auch. :rolleyes:

    Zitat

    Kennst du eigentlich Reallife ?

    Nö, schick mal Link. :D

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ja, hat auch nicht funktioniert . :(
    Aber nochmal wegen cmd /explode. das wollte ich eigentlich nicht. Soll ja automatisch in die Luft gehen,sobald man einsteigt. :thumbup:


    Also ich würde jetzt annehmen ,das es in
    public OnPlayerEnterVehicle(playerid,vehicleid,ispassenger)
    kommt. Oder liege ich da falsch ? ?(

    Zitat

    Kennst du eigentlich Reallife ?

    Nö, schick mal Link. :D

  • jaaa...da liegst du 99% daneben...^^
    du mmusst es hier einfügen:
    public OnPlayerStateChange
    und da dann halt
    Create Explosion...
    so wie es Breadi geschrieben hatte...

    Zitat

    Vielleicht ist CreateExplosion in OnPlayerStateChange hier die die beste wahl ;)

    naja das mien beitrag zu deiner ProblemLösung... ;)
    Maxx :thumbup:

  • hmm OK. Jetzt erhalte ich aber eine Fehlermeldung ,dass ich bei public OnVehicleExit nichts definiert hab . :S


    K:\sampserver\gamemodes\mmpd.pwn(571) : error 029: invalid expression, assumed zero


    Also wenn ich von derSAMPWiki folgendes unter ONPlayerEnterVehicle einfüge:
    {
    new Float:x, Float:y, Float:z;


    // Get Player Position
    GetVehiclePos(vehicleid, x, y, z);


    // Create an explosion near the vehicle you get into
    CreateExplosion(x+random(5), y+random(5), z+random(5), 12, 10.0);


    return 1;
    }


    dann erscheint die Fehlermeldung nicht mehr. Ingame explodiert dann nicht das Fahrzeug. in einem bestimmten Zeitraum(Sekunden) explodiert an der Stelle ,wo sich das Auto befindet immer wieder etwas (Also sowas wie eine animation, aber wenn ich ins auto steige passiert nichts.) ?(


    Folgendes habe ich bei OnPlayerStateChange


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    CreateExplosion(279.5735 ,-1254.7211 ,73.6557, 12, 10.0);
    CreateExplosion(278.0598,-1268.9597,73.6881, 12, 10.0);
    CreateExplosion(284.0727,-1264.7626,73.6849, 12, 10.0);
    return 1;
    }


    Kann man das evtl umcoden ? is ja echt zum verzweifeln :D

    Zitat

    Kennst du eigentlich Reallife ?

    Nö, schick mal Link. :D

    Einmal editiert, zuletzt von Butterbrot ()

  • Das 2. is schon fast richtig ;)
    Erstmal solltest du abfragen ob der Spieler überhaupt in ein Auto steigt . Dann brauchst du die Koordinaten des Spielers und erzeugst dann die Explosionen wo der spieler ist.

    MrX
    - Nichtmehr bei SA:MP aktiv -

  • kann falsch sein, muss a b er nicht: ganz nach oben:
    new da;
    CommandText:
    if(strcmp(cmdtext, "/boom", true)==0) {
    da = GetPlayerVehicleID(playerid);
    return 1;//man könnt jetzt auch ne eine nachricht senden....
    }
    und OnPlayerSateChange:
    if(newstate == PLAYER_STATE_DRIVER) {
    if(GetPlayerVehicleID(playerid) == da) {
    new Float:x, Float:y, Float:z;
    GetVehiclePos(da,x,y,z); SetVehicleHealth(da,1); CreateExplosion(x,y,z,7,15); }}
    kann vllt sogar klappen^^

  • Um nochmal auf das CMD zurück zu kommen.
    kann man nicht eventuell sowas scripten, dass:


    wenn der Spieler das Auto ("mit der Bombe") betritt, erkennt der Gamemod automatisch, dass er /boom eingeben soll ?


    Weiß jetzt nicht, ob das doof klingt, aber warum sollte ein Admin /boom eingeben, wenn er selbst in diesem Wagen sitzt ? :D



    Oder kann man ein Filterscript für die Autos erstellen ?

    Zitat

    Kennst du eigentlich Reallife ?

    Nö, schick mal Link. :D

  • so kanns nur ein RCON admin machen:
    if(strcmp(cmdtext, "/boom", true)==0) {
    if(IsPlayerAdmin(playerid)) {
    da = GetPlayerVehicleID(playerid); }
    return 1;//man könnt jetzt auch ne eine nachricht senden....
    }
    aber die normalen admin, dafür müsste man den cmd in dein adminscript hauen und das dann auf die admin angleichen

  • cool, das klappt nun endlich! :thumbup: :) Danke


    P.s.: Ich hab bei OnPlayerSateChange noch SetPlayerHealth mit reingetan, da man sonst noch flüchten kann, aber ansonsten klappt das super.

    Zitat

    Kennst du eigentlich Reallife ?

    Nö, schick mal Link. :D