Was ist falsch?

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
  • public OnPlayerExitVehicle(playerid, vehicleid)
    {
    return 1;
    }
    Policee(vehicleid)
    {
    for(new i; i <= Police; i++)
    {
    if(vehicleid == Police[i]) return true;
    }
    return false;
    }
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(GetPlayerVehicleID(playerid) == Police(vehicleid))
    {
    if(!isPlayerPolice(playerid))
    {
    SendClientMessage(playerid, 0xFFFFFFFF, "Du bist kein Polizist");
    RemovePlayerFromVehicle(playerid);
    }
    }
    }
    return 1;
    }

    C:\Program Files\Rockstar Games\GTA San Andreas\gamemodes\2ndday.pwn(644) : error 012: invalid function call, not a valid address
    C:\Program Files\Rockstar Games\GTA San Andreas\gamemodes\2ndday.pwn(644) : error 017: undefined symbol "vehicleid"
    C:\Program Files\Rockstar Games\GTA San Andreas\gamemodes\2ndday.pwn(644) : error 029: invalid expression, assumed zero
    C:\Program Files\Rockstar Games\GTA San Andreas\gamemodes\2ndday.pwn(644) : 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.


    //EDIT:


    Wobei ich natürlich vor den cars Police[0] = Police[1] = etc... gemacht habe

    Einmal editiert, zuletzt von SecondDay ()


  • public OnPlayerExitVehicle(playerid, vehicleid)
    {
    return 1;
    }
    Policee(vehicleid)
    {
    for(new i; i <= Police; i++)
    {
    if(vehicleid == Police[i]) return true;
    }
    return false;
    }
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    if(GetPlayerVehicleID(playerid) == Police[vehicleid])
    {
    if(!isPlayerPolice(playerid))
    {
    SendClientMessage(playerid, 0xFFFFFFFF, "Du bist kein Polizist");
    RemovePlayerFromVehicle(playerid);
    }
    }
    }
    return 1;
    }

  • public OnPlayerExitVehicle(playerid, vehicleid)
    {
    return 1;
    }

    Policee(vehicleid)
    {
    for(new i; i <= Police; i++)
    {
    if(vehicleid == Police[i]) return true;
    }
    return false;
    }
    Was soll denn das bitte werden?
    > Also es müsste normaler jede gute Scripter das Problem sofort sehen!


    Woher soll der Server bitte wissen, was Policee(vehicleid) bitte sein soll?


    Wenn es eine Funktion ist, solltest Du diese vielleicht auch als Funktion
    behandeln und ordentlich deklarieren... *meine Güte...*


    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    return 1;
    }

    forward Policee(vehicleid);
    public Policee(vehicleid)
    {
    for(new i; i <= Police; i++)
    {
    if(vehicleid == Police[i]) return true;
    }
    return false;
    }

  • Also es müsste normaler jede gute Scripter das Problem sofort sehen!


    Na wenn du dich mal nicht ins Falsche Boot setzt ;)
    Funktionen die einfach so geschrieben werden, ohne public oder stock haben halt die jeweiligen eigenschaften nicht, trotzdem funktioniert sie...

    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(Police(GetPlayerVehicleID(playerid)))
    {
    if(!isPlayerPolice(playerid))
    {
    SendClientMessage(playerid, 0xFFFFFFFF, "Du bist kein Polizist");
    RemovePlayerFromVehicle(playerid);
    }
    }
    }
    return 1;
    }

  • Benjamin


    Du hast Recht, aber ich schrieb ja, dass er diese, wenn er sie
    als Funktion implementieren möchte auch anständig deklarieren muss.


    Woher soll der Server denn auch wissen, was vehicleid ist... ^^


    Und sollte ich trotzdem Unrecht haben... - naja Shit Happens ;)

  • Ach egal kein Problem... ^^


    Sein Problem sollte eigentlich "gegessen" sein.
    Das ist und war ja nur Sinn un Zweck des ganzen.


    Und Benjamin, ja manchmal schreibe ich etwas verzwickt,
    auch oftmals für mich selbst unverständlich :D

  • 4#Future:
    Du willst die Funktion also öffentlich setzen und diese auch noch "forwarden"?
    Ich weiß nicht inwiefern du dich mit "Dekompilieren" auskennst.
    Die Funktionen, die öffentlich sind, werden blanko in die .amx hineingeschrieben.
    Das macht deinen "Script" sehr unsicher und durch die vielen öffentlichen Funktionen auch inperformant.

  • danfai


    Aha und wie kommste bitte zu dieser Annahme?


    Unsicher? - Bitte versuch mal mein SA-MP Script zu hacken... ich lach mich schief.


    Wie wäre es mal damit den Users zu helfen und Ihre Fragen zu beantworten,
    anstatt unsinnge Tipps zu geben, die völlig unangebracht und themenfremd sind.


    Schonmal damit probiert?


    Wenn Du Funktionen erstellen kannst und diese zu deklaieren oder wie Du
    sagst, zu "forwarden", dann bewundere ich Dich echt wahnsinnig.


    Aber mal echt... kannste stecken lassen ;)
    Interessiert mich nicht, es sei denn es ist sinnvoll und Klugscheißerei sowieso nicht...

  • Ich komme zu dieser Annahme, dass die Performance nachlässt, dadurch, dass ich dieses Problem in der Praxis ausprobiert hatte.
    Zu der Annahme, dass die öffentlichten Funktionen blanko in der .amx stehen, komme ich, da ich interessehalber die .amx-Datei geöffnet habe und zufälligerweise alle öffentlichen Funktionen aufgelistet vor mir fand.
    => Nutze die Suchfunktion von Notepad++

  • Ja, ja, ja... das ist sehr beruhigend, also Deine Tests...


    Wie im anderen Beitrag schon erwähnt, kommst Du mit Deiner Klugscheißerei
    bei nicht weiter und ich ignoriere solche Dinge in Zukunft einfach.


    Nur ein Tipp vom Mir:


    > Sei in Deinem späteren Leben besser nicht so pingelich, wie im Forum?
    Warum? - Probiers aus, ich wette Du wirst es schneller merken, als Dir lieb ist.


    ___


    Passend noch ein Abschlusswort...


    > Versuch den Leuten zu helfen und nicht diese zu verbessern.


    Prägs Dir gut ein. Oder ningel eben an meinem Beitrag herum - mir egal ^^