Fehler im script: error 010: invalid function or declaration

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
  • Ich habe einen Fehler, den ich einfach nicht raus bekomme. Wäre nett, wen mir jemand helfen könnte.


    Danke schon im voraus.


    Der Fehler:
    error 010: invalid function or declaration


    Die Zeilen:
    native SetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective); //hier ist der fehler
    native GetVehicleParamsEx(vehicleid, &engine, &lights, &alarm, &doors, &bonnet, &boot, &objective); //und hier nochma der gleiche

  • Ma ne frage warum hast du natives im Script stehen?


    SetVehicleParamsEx wird doch so verwendet:


    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective); // <- für motor aus


    sonst guck einfach in den Tutorials

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • danke jez kommt keine fehlermeldung mehr. aber jez hab ich noch en problem. ich habe ein carsystem bearbeitet, weil vorher war das auch mit dem motor und das allesm drin, aber wenn man sich halt reingesetzt hat war der motor schon am laufen. man musste nur /motor machen um loszufahren. jez wollte ich das halt bearbeiten, dass der motor auch erst läuft wenn ich /motor eingegeben habe. aber das funktioniert leider nicht so ganz. ich stelle den script ma rein.
    ich denke mal es ist was bei OnPlayerCommands falsch. ich hoffe du kannst mir helfen.


    [i][i][i][i][i][i][i][i][i][i][i][i][i][i][i][i][i][i][i][i] #if defined MOTOR_SYS
    if (strcmp("/motor", cmdtext,true) == 0)
    {


    new engine,lights,alarm,doors,bonnet,boot,objective;
    new vid = GetPlayerVehicleID(playerid);
    if(vid != INVALID_VEHICLE_ID)
    {
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    }


    else


    if(vid != INVALID_VEHICLE_ID)
    {
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }



    new vehicleid = GetPlayerVehicleID(playerid);
    new Float:healthv;
    GetVehicleHealth(vehicleid,healthv);



    if(!AUTOX[vehicleid][motor_an])
    {
    #if defined TANK_SYS
    if(AUTOX[vehicleid][tank] < 1)
    {
    SendClientMessage(playerid,WHITE," Motor kann nicht gestartet werden da der Tank leer ist!");
    AUTOX[vehicleid][motor_an] = 0;
    TogglePlayerControllable(playerid,1);
    }
    else
    {
    if(healthv > (375.0))
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    TogglePlayerControllable(playerid,1);
    }
    else
    {
    new rando = random(4);
    switch(rando)
    {
    case 0:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    case 1:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    case 2:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    TogglePlayerControllable(playerid,1);
    }
    case 3:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    TogglePlayerControllable(playerid,1);
    }
    case 4:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    default:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    }
    }
    }
    #else
    if(healthv > (375.0))
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    TogglePlayerControllable(playerid,1);
    }
    else
    {
    new rando = random(4);
    switch(rando)
    {
    case 0:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    case 1:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    case 2:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    TogglePlayerControllable(playerid,1);
    }
    case 3:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    TogglePlayerControllable(playerid,1);
    }
    case 4:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    default:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    }
    }
    #endif
    }
    else
    {
    AUTOX[vehicleid][motor_an] = 0;
    SendClientMessage(playerid,WHITE," Motor wurde ausgemacht.");
    TogglePlayerControllable(playerid,0);
    }
    return 1;
    }
    #endif
    return 0;
    }



    PS: woher diese "i"s jez kommen weiß ich ned. die sind ned im script


    [/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]

  • am besten du setzt das bei OnPlayerStateChange ein


    code:
    public OnPlayerStateChange(playerid,newstate,oldstate)
    {
    new vid = GetPlayerVehicleID(playerid);
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    return 1;
    }
    Dann ist der Motor aus wenn du einsteigst
    oder halt bei OnPlayerEnterVehicle


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    new vid = GetPlayerVehicleID(playerid);
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    return 1;
    }


    PS: setz nächstes mal deinen code in den [pwn] tag


    //Edit: ungetest müsste aber funktionieren
    //Edit2: du müsstet dann auch TogglePlayerControllable(playerid,1); von deinem Motorsystem mit den VehicleParams ersetzen

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • aber in dem script is es ja so, dass das auto net explodiert, sondern es bleibt stehn und und dann steht da "Das auto kann nicht gestartet werde, Motorschaden". also man kann es dann nicht mehr starten. bleibt diese funktion? das meinte ich


    das hier alles:
    #if defined TANK_SYS
    if(AUTOX[vehicleid][tank] < 1)
    {
    SendClientMessage(playerid,WHITE," Motor kann nicht gestartet werden da der Tank leer ist!");
    AUTOX[vehicleid][motor_an] = 0;
    TogglePlayerControllable(playerid,1);
    }
    else
    {
    if(healthv > (375.0))
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    TogglePlayerControllable(playerid,1);
    }
    else
    {
    new rando = random(4);
    switch(rando)
    {
    case 0:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    case 1:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    case 2:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    TogglePlayerControllable(playerid,1);
    }
    case 3:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    TogglePlayerControllable(playerid,1);
    }
    case 4:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    default:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    }
    }
    }
    #else
    if(healthv > (375.0))
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    TogglePlayerControllable(playerid,1);
    }
    else
    {
    new rando = random(4);
    switch(rando)
    {
    case 0:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    case 1:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    case 2:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    TogglePlayerControllable(playerid,1);
    }
    case 3:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    TogglePlayerControllable(playerid,1);
    }
    case 4:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    default:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    }
    }
    #endif
    }
    else
    {
    AUTOX[vehicleid][motor_an] = 0;
    SendClientMessage(playerid,WHITE," Motor wurde ausgemacht.");
    TogglePlayerControllable(playerid,0);
    }
    return 1;
    }
    #endif
    return 0;

  • Ja diese Funktion bleibt dann, nur wird der Spieler nicht mehr gefreezt sondern der Motor bleibt aus


    //Edit: Das ganze sieht dann so aus


    #if defined TANK_SYS
    new vid = GetPlayerVehicleID(playerid);
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    if(AUTOX[vehicleid][tank] < 1)
    {
    SendClientMessage(playerid,WHITE," Motor kann nicht gestartet werden da der Tank leer ist!");
    AUTOX[vehicleid][motor_an] = 0;
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    else
    {
    if(healthv > (375.0))
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    else
    {
    new rando = random(4);
    switch(rando)
    {
    case 0:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    case 1:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    case 2:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    case 3:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    case 4:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    default:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    }
    }
    }
    #else
    if(healthv > (375.0))
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    else
    {
    new rando = random(4);
    switch(rando)
    {
    case 0:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    case 1:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    case 2:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    case 3:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    case 4:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    default:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    }
    }
    }
    #endif
    }
    else
    {
    AUTOX[vehicleid][motor_an] = 0;
    SendClientMessage(playerid,WHITE," Motor wurde ausgemacht.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    }
    return 1;
    }
    #endif
    return 0;


    //Edit2: SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective); für motor an
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective); für motor aus

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Du solltest jetzt nicht OnPlayerStateChange unten einfügen, sondern nach OnPlayerStateChange suchen und es dort einfügen
    so:
    public OnPlayerStateChange(playerid,newstate,oldstate)
    {
    new vid = GetPlayerVehicleID(playerid);
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    if(newstate == PLAYER_STATE_DRIVER)
    {
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    //weiterer code von dir
    }
    //weiterer code von dir
    }


    //Edit1 & Edit 3: etwas entfernt
    //Edit2: Ghosty biste verrückt nachher löscht er noch das falsche

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • okay 2 sachen. das auto bekommt keinen motorschaden mehr, sondern es explodiert. also das is die funktion, von der ich geredet habe. wenn ich einsteige ist der motor aus, wenn ich es einschalte, dann läuft es. aber wenn ich das auto ausschalte, läuft der motor trotzdem X(

  • Das liegt wohl daran das ich was vertauscht habe -.-


    #if defined TANK_SYS
    new vid = GetPlayerVehicleID(playerid);
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    if(AUTOX[vehicleid][tank] < 1)
    {
    SendClientMessage(playerid,WHITE," Motor kann nicht gestartet werden da der Tank leer ist!");
    AUTOX[vehicleid][motor_an] = 0;
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    else
    {
    if(healthv > (375.0))
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    }
    else
    {
    new rando = random(4);
    switch(rando)
    {
    case 0:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    case 1:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    case 2:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    }
    case 3:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    }
    case 4:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    default:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    }
    }
    }
    #else
    if(healthv > (375.0))
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    }
    else
    {
    new rando = random(4);
    switch(rando)
    {
    case 0:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    case 1:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    case 2:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    }
    case 3:
    {
    AUTOX[vehicleid][motor_an] = 1;
    SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    }
    case 4:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    default:
    {
    SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    }
    }
    #endif
    }
    else
    {
    AUTOX[vehicleid][motor_an] = 0;
    SendClientMessage(playerid,WHITE," Motor wurde ausgemacht.");
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    }
    return 1;
    }
    #endif
    return 0;


    Außerdem war das nicht
    TogglePlayerControllable(playerid,1);
    sondern
    TogglePlayerControllable(playerid,0);
    das du ersetzen solltest. Sorry mein Fehler -.-
    TogglePlayerControllable(playerid,1); // <- bewegbar
    TogglePlayerControllable(playerid,0); // <- nicht bewegbar


    Wenn das immer noch nicht geht musste mal den code posten von dem Schadensystem, wo der Motor dann ausgeht


    //Edit: verbessert
    //Edit: Rechtschreibung

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Eig ist das so richtig wie ich das oben gepostet habe, nur hab ich das nicht getestet

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski