Frage _> Auto Motorschaden

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
  • Hi!


    Wie kann man das machen das wenn Das auto wo man drin sitzt 310 Health hat das dann das auto gefreezed wird und da dann Steht Motorschaden?



    so ungefähr? und wenn ja wo muss ich das einfügen:




    new health;
    GetVehicleHealth(GetVehicleID(playerid),health);
    if(health >= 310)
    {
    TogglePlayerControllable(playerid,0);
    SendCLientMessage(playerid,COLOR_YELLOW,"Motorschaden...");
    }


    Ich bedanke mich jetzt schonmal
    Danke^^


    MfG
    Melli

  • Lol? naya ich glaub der code is richtig aba wo muss man das einfügen? mitm Timer und dann IsAnyCar odaso? plz schnippsel ^^

  • /* code by DMA bla bla bla oldsql is h4x0r1ng u! */
    #tryinclude <a_samp>
    static bool:playerMessageMotorschade[MAX_PLAYERS] = { false }; /* Man kann nie sichersein ob er es auch als 0 initalisiert, (C/++) */
    forward GlobalTimer(/*void*/);
    public OnGameModeInit() {
    SetTimer("GlobalTimer", 1000, 1); /* Solltest du schon ein anders Script von mir mit Globaltimer haben, die zeile */
    }
    public OnPlayerDisconnect(playerid) {
    playerMessageMotorschaden[playerid] = false;
    return 1; /* -> true */
    }
    public OnPlayerExitVehicle(playerid, vehicleid) { /* hier bin ich mir nicht sicher, bitte prüfen wie das Callback heißt :> */
    if(playerMessageMotorschade[playerid] == true)
    playerMessageMotorschade[playerid] = false;
    }
    public GlobalTimer() {
    new VID, Float:h_vid;
    for(new i = 0; i < MAX_PLAYERS; i++) {
    if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) {
    VID = GetPlayerVehicleID(i);
    GetVehicleHealth(VID, h_vid);
    if(h_vid <= 310) {
    TogglePlayerControllable(i, 0);
    SendClientMessage(playerid, 0xFF6900AA, "Dieses Fahrzeug hat nun einen Motorschaden");
    playerMessageMotorschade[i] = true;
    } } } }
    Nicht getestet.

  • alles richtig bloß GlobalTimer(playerid)
    muse machen^^


    thx^^


  • C:\Programme\samp\gamemodes\motorschaden.pwn(9) : error 017: undefined symbol "playerMessageMotorschaden"
    C:\Programme\samp\gamemodes\motorschaden.pwn(9) : warning 215: expression has no effect
    C:\Programme\samp\gamemodes\motorschaden.pwn(9) : error 001: expected token: ";", but found "]"
    C:\Programme\samp\gamemodes\motorschaden.pwn(9) : error 029: invalid expression, assumed zero
    C:\Programme\samp\gamemodes\motorschaden.pwn(9) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.

    und wenn ich dann
    new playerMessageMotorschaden[256]; mache dann is der error da weg is dann nur noch folgender error

    C:\Programme\samp\gamemodes\motorschaden.pwn(25) : error 017: undefined symbol "playerid"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

  • /* code by DMA bla bla bla oldsql is h4x0r1ng u! */
    #tryinclude <a_samp>
    static bool:playerMessageMotorschade[MAX_PLAYERS] = { false }; /* Man kann nie sichersein ob er es auch als 0 initalisiert, (C/++) */
    forward GlobalTimer(/*void*/);
    public OnGameModeInit() {
    SetTimer("GlobalTimer", 1000, 1); /* Solltest du schon ein anders Script von mir mit Globaltimer haben, die zeile */
    }
    public OnPlayerDisconnect(playerid) {
    playerMessageMotorschaden[playerid] = false;
    return 1; /* -> true */
    }
    public OnPlayerExitVehicle(playerid, vehicleid) { /* hier bin ich mir nicht sicher, bitte prüfen wie das Callback heißt :> */
    if(playerMessageMotorschade[playerid] == true)
    playerMessageMotorschade[playerid] = false;
    }
    public GlobalTimer() {
    new VID, Float:h_vid;
    for(new i = 0; i < MAX_PLAYERS; i++) {
    if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) {
    VID = GetPlayerVehicleID(i);
    GetVehicleHealth(VID, h_vid);
    if(h_vid <= 310 && playerMessageMotorschade[i] == false) {
    TogglePlayerControllable(i, 0);
    SendClientMessage(i, 0xFF6900AA, "Dieses Fahrzeug hat nun einen Motorschaden");
    playerMessageMotorschade[i] = true;
    } } } }

  • bei mir funzt das i-wie nicht
    das auto fängt zwar nicht an zu brenne und zu freezen
    aber es kommt jede paar sekunden Dieses Auto hat einen Motorschaden so das der ganze chat voll ist bis der Carmechanic da ist wie kann ich das so machen das nur einmal kommt "dieses Auto hat einen Motorschaden" nicht jede paar sekunden neu??

  • Ja aber das is schrott man kann nicht austeigen!Und wenn man nen park Befehl hat dann kann man weiter fahren wenn man irgendwo dann gegen fährt brennt es.Wenn man nen Befehl hat /exit oder was weiß ich ist man gefreezt.Es musst ganz anders gehen.RemovePlayerfromvehicle und dann die Params für das Car setzten das es abgeschlosen ist und man es nicht öffnen kann bevor das Auto repariiert ist.Auch nach neuconecten und allem also muss das irgendwo gespeichert werden das das auto einen Motorschaden hat.

  • Ich habs nun slebe rgetestet, bei mir wirds nur 1mal ausgegeben.
    Habt ihr das aktuelle kopiert?
    Außerdem ist auch ein wenig Eigeniniziative gefragt.
    /exit:
    if(!strcmp(cmdtext, "/exit")) {
    TogglePlayerControllable(playerid, 1);
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    Lernt scripten ...

  • Beitrag von RedBlueJoe ()

    Dieser Beitrag wurde von seegras aus folgendem Grund gelöscht: Wunschgemäß gelöscht lt. Ticket ().
  • Beitrag von RedBlueJoe ()

    Dieser Beitrag wurde von seegras aus folgendem Grund gelöscht: Wunschgemäß gelöscht lt. Ticket ().
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen