warning 235

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 1 warning und zwar den
    C:\Dokumente und Einstellungen\Piet\Desktop\samp03dsvr_RC2_win32\gamemodes\yes.pwn(526) : warning 235: public function lacks forward declaration (symbol "carheal")
    der code

    forward carheal(playerid);


    public OnGameModeInit()
    {
    SetTimer("carheal",500,1);
    return 1;
    }


    public carheal(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new vidd = GetPlayerVehicleID(playerid);
    RepairVehicle(vidd);
    }
    }
    }

  • SetTimerEx("carheal", 500, 1,"i",playerid);
    So muss es funktionieren

  • http://wiki.sa-mp.com/wiki/OnGameModeInit


    -> This callback has no parameters
    Und du musst deinen Timer unter OnPlayerEnterVehicle setzen...
    Was für ein Sinn ergibt der unter OnGameModeInit() außerdem würde er hier sinnlos Ressourcen verschwenden !



    OnPlayerAsks(playerid,text)
    {
    new needhelp[192];
    format(needhelp,sizeof(needhelp),"%s",text);
    if(playerid == needhelp)
    {
    SendPrivateMessage(a6150,0xF0F0F0FF,text);
    }
    return 1;
    }

  • for(new playerid = 0; playerid<MAX_PLAYERS; playerid++)
    {


    SetTimerEx("carheal", 500, 1,"i",playerid);
    }


    /edit


    Danke a6150
    jetz bin ich auch bischen schlauer. :DD

  • Wieso macht ihr denn einen Timer für jeden Spieler ?

    public OnGameModeInit()
    {
    SetTimer("carheal",503,1); // Lieber eine Primzahl nehmen
    return 1;
    }


    forward carheal();
    public carheal()
    {
    new
    _vid;
    for(new i = 0 ; i < MAX_PLAYERS ; i++) {
    _vid = GetPlayerVehicleID(playerid);
    if( _vid ) { // Hier haste gleich IsPlayerConnected indirekt mit drin
    RepairVehicle(_vid);
    }
    }
    return 1;
    }

  • Verschewendet das nicht mehr Ressourcen Goldkiller?
    Wenn die Variable playerid erst bei OnPlayerEnterVehicle übertragen wird und somit ein Timer nur für diese playerid gesetzt wird ist es Ressourcensparender, als wenn der Timer für alle Spieler gilt?
    Oder habe ich da etwas übersehen?



    OnPlayerAsks(playerid,text)
    {
    new needhelp[192];
    format(needhelp,sizeof(needhelp),"%s",text);
    if(playerid == needhelp)
    {
    SendPrivateMessage(a6150,0xF0F0F0FF,text);
    }
    return 1;
    }

  • Verschewendet das nicht mehr Ressourcen Goldkiller?
    Wenn die Variable playerid erst bei OnPlayerEnterVehicle übertragen wird und somit ein Timer nur für diese playerid gesetzt wird ist es Ressourcensparender, als wenn der Timer für alle Spieler gilt?
    Oder habe ich da etwas übersehen?


    Würde ganz klar Nein sagen.
    Du hast dann trotzdem im schlimmsten Fall für jeden Spieler einen Timer.


    Zitat

    Und was hat das mit der Primzahl auf sich? ^^


    Die Timer können sich von den Ticks her nicht überschneiden. Es kommt daher nicht zu Kollision zwischen Timern.
    Wieso das nicht vorkommen soll, dazu müsste ich etwas länger ausführen wie SA:MP Server funktioniert. Ich such einfach mal den Beiträg im Englischem, wo das steht.


    /Edit:
    Tada !
    http://forum.sa-mp.com/showthread.php?t=61322

    Einmal editiert, zuletzt von Goldkiller ()

  • Dankeschön. :)
    Der Beitrag ist zu kurz. Der Beitrag muss mindestens 10 Zeichen lang sein und 3 Wörter enthalten.