Else if // errors

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
  • Nabend zusammen,


    Und zwar habe ich ein kleines problem mit meinem fischscript, das gleiche probleme bei playertopoint hatte ich schon öfters bei anderen dingen weshalb ich mich immer auf 2 beschränkt habe da man in eine if abfrage ja 2 koords nebeneinander packen kann aber was mache ich wenn ich mehrere brauche wie in meinem bespiel ? :)


    Bekomme massig errors und fehlermeldungen die sich durchs ganze script ziehen sobald ich mehrere koords mit else if benutze. Was mache ich hier falsch ?



    if(!strcmp(strget(cmdtext, 8), "/angeln"))
    {
    if(PlayerToPoint(1.0,playerid,403.8672,-2088.7969,7.8359))
    {
    else if (PlayerToPoint(1.0,playerid,398.7162,-2088.7979,7.8359))
    {
    else if (PlayerToPoint(1.0,playerid,396.1608,-2088.7981,7.8359))
    {
    else if (PlayerToPoint(1.0,playerid,391.0623,-2088.7983,7.8359))
    {
    else if (PlayerToPoint(1.0,playerid,383.4910,-2088.7983,7.8359))
    {
    else if (PlayerToPoint(1.0,playerid,375.0091,-2088.7983,7.8359))
    {
    else if (PlayerToPoint(1.0,playerid,369.8763,-2088.7983,7.8359))
    {
    else if (PlayerToPoint(1.0,playerid,367.3260,-2088.7983,7.8359))
    {
    else if (PlayerToPoint(1.0,playerid,362.1486,-2088.7983,7.8359))
    {
    else if (PlayerToPoint(1.0,playerid,354.5433,-2088.7981,7.8359))
    {
    else if (PlayerToPoint(1.0,playerid,349.9588,-2072.4565,7.8359))
    {
    else if (PlayerToPoint(1.0,playerid,349.9336,-2067.3796,7.8359))
    {
    else if (PlayerToPoint(1.0,playerid,349.9225,-2064.8132,7.8359))
    {
    else if (PlayerToPoint(1.0,playerid,349.8976,-2059.6997,7.8359))
    {
    else if (PlayerToPoint(1.0,playerid,349.8628,-2052.1328,7.8359))
    {
    new kg = random(100) + 1;
    new fishmessage[50];
    pInfo[playerid][gefischt] +=1;
    dini_IntSet(save,"gefischt",pInfo[playerid][gefischt]);
    pInfo[playerid][fischmenge] +=kg ;
    dini_IntSet(save,"fischmenge",pInfo[playerid][fischmenge]);
    format(fishmessage, sizeof(fishmessage), "Du hast einen %d kg schweren Fisch geangelt.", kg );
    SendClientMessageToAll(COLOR_HELLBLAU, fishmessage);
    }}}}}}}}}}}}}}}
    return 1;
    }



    Danke schonmal im vorraus.



    MfG


    Traxer

  • aber da ich jetzt ers sehe dass du die ans ende gesetzt hast :
    Du musst hinter jedem if auch stehen haben, was er machen soll, wenn diese bedingung erfüllt wird ^^ oder einfacher du definierst die orte als IsAtAngel oder so dann ist das nen bissel überschaubarer als hinter jedem else if zu schreiben was er machen muss ;)

  • du brauchst für jedes {auch ein } ;)


    Das weiß ich auch ;)


    Hatte aber gehofft das man einfach ganz viele aufmachen und ganz am ende zumachen um zu signalisieren das alles zusammen gehört.Aber das geht wohl nicht...



    Denn ich finde es sehr iritierend das man jedes else if zumachen soll weil ein return die funktion doch sozusagen schliesst.





    aber da ich jetzt ers sehe dass du die ans ende gesetzt hast :
    Du musst hinter jedem if auch stehen haben, was er machen soll, wenn diese bedingung erfüllt wird ^^ oder einfacher du definierst die orte als IsAtAngel oder so dann ist das nen bissel überschaubarer als hinter jedem else if zu schreiben was er machen muss ;)


    Ja genau, nach jedem else solle normal stehen was passieren soll,genauso kenn ichs ja auch^^.Habe aber versucht das zu umgehen indem ich ganz oft mit
    { aufgemacht und erst ganz am ende alle zugemacht habe.Dann mach ichs jetzt einfach mit IsAt blablabla udn fasse alle zusammen.Mal schauen obs so besser geht.

  • Du kannst natürlich if Anweisungen auch Verschachteln ;)
    musste nur alle wieder zu machen!



    if (IsPlayerConnected (playerid)) {
    if (gLevel[playerid] > 5) {
    mach_etwas_tolles ();
    }
    }


    // Sowas geht aber auch eleganter:


    // WENN Spieler verbunden ist _und_ WENN Spieler einen Level größer als 5 hat
    if (IsPlayerConnected (playerid) && gLevel[playerid] > 5) {
    mach_etwas_tolles ();
    }


    // ODER:


    // WENN der SPieler im Cop Team ist ODER Wenn der Spieler einen Level größer als 2 hat
    if (gTeam[playerid] == TEAM_COP || gLevel[playerid] > 2) {
    mach_etwas ();
    }


    Ja, so viel zu den if Basics ;)


    Achja, für dich könnte auch Switch interessant sein!
    Hab dafür jetzt aber kein Beispiel, da ich das noch nie gebraucht hab :D

    90% der Breadfish Mitglieder sind kiddys, wenn du mir auch zustimmst dann kopiere diesen Text in deine Signatur!

  • Genau, verschachteln wollte ich aber ohne bei jeder if anweisung angeben zu müssen was er machen soll.Aber das scheint so wie ich es mir gedacht habe nicht zu gehen,also werd ich so machen wie man es machen soll :D



    EDIT:


    Habs hinbekommen, einfach alle Koords als IsAtFishplace bei den publics gebunden udn bei der If abfrage folglicherweise If is @ blablub.


    Funktioniert einwandfrei.



    thx @ all

    Einmal editiert, zuletzt von Traxter ()