Problem mit for(new Schleife

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
  • Hey Leute,
    Ich habe eine for(new Schleife mit 3 Error's und weiß diese nciht zu Beheben:


    for(new i=1;i<MAX_BIZZ;i++) // error 010: invalid function or declaration
    {
    if(BizzInfo[i][bizz_pickup] == pickupid) // error 010: invalid function or declaration
    {
    format(s,100,"Owner: %s, Price: %d$",HausInfo[i][haus_besitzer],HausInfo[i][haus_preis]); //
    SendClientMessage(playerid,0x00FF00,s);
    }
    }
    return 1; //error 010: invalid function or declaration
    }


    lg

  • Definiert habe ich es so:
    #define MAX_BIZZ 10
    enum bizz_info
    {
    Float:bizz_x,
    Float:bizz_y,
    Float:bizz_z,
    bizz_besitzer[32],
    bizz_preis,
    bizz_pickup,
    }
    new BizzInfo[MAX_BIZZ][bizz_info];


    Und die Schleife ist unter OnPlayerPickupPickup,
    über dieser Schleife ist eine weitere bloß mit einem "Haussystem" ;)


    lg

  • for(new i=1;i<MAX_HAUS;i++)
    {
    if(HausInfo[i][haus_pickup] == pickupid)
    {
    new s[100];
    format(s,100,"Owner: %s, Price: %d$",HausInfo[i][haus_besitzer],HausInfo[i][haus_preis]);
    SendClientMessage(playerid,0x00FF00,s);
    }
    }
    return 1;
    }
    for(new i=1;i<MAX_BIZZ;i++) // error 010: invalid function or declaration
    {
    if(BizzInfo[i][bizz_pickup] == pickupid) // error 010: invalid function or declaration
    {
    format(s,100,"Owner: %s, Price: %d$",BizzInfo[i][bizz_besitzer],BizzInfo[i][bizz_preis]); //
    SendClientMessage(playerid,0x00FF00,s);
    }
    }
    return 1; //error 010: invalid function or declaration
    }
    LooseWeapons(playerid)
    {
    new WeaponsData[13][2],Float:pos[3],pickupmodel,slot,oldslot;


    Restart:


    for (slot=oldslot; slot < 13; slot++)
    {
    GetPlayerWeaponData(playerid, slot, WeaponsData[slot][0], WeaponsData[slot][1]);
    oldslot++;
    if(WeaponsData[slot][1] > 0) goto Advance;
    }


    Advance:


    if(WeaponsData[slot][1] > 0)
    {
    for(new wid=0; wid<MAX_WEAPONS_DROPPED; wid++)
    {
    if( WeaponsDropped[wid][Ocuppied] == false )
    {
    pickupmodel = GetWeaponModel(WeaponsData[slot][0]);
    GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
    WeaponsDropped[wid][Pickupid] = CreatePickup(pickupmodel, 3, floatadd(pos[0], EachPos[random(11)]), floatadd(pos[1], EachPos[random(11)]), pos[2], -1);
    WeaponsDropped[wid][Model] = WeaponsData[slot][0];
    WeaponsDropped[wid][Ammo] = WeaponsData[slot][1];
    WeaponsDropped[wid][Ocuppied] = true;
    TimerIDs[wid]=SetTimerEx("RemoveWeaponDropped",REMOVE_WEAPONS_DROPPED_TIMER,false,"ii",WeaponsDropped[wid][Pickupid],wid);
    goto Restart;
    }
    }
    }
    return ResetPlayerWeapons(playerid);
    }

  • for(new i=1;i<MAX_HAUS;i++)
    {
    if(HausInfo[i][haus_pickup] == pickupid)
    {
    new s[100];
    format(s,100,"Owner: %s, Price: %d$",HausInfo[i][haus_besitzer],HausInfo[i][haus_preis]);
    SendClientMessage(playerid,0x00FF00,s);
    }
    }
    return 1;
    } //Diese Klammer ist, so nehme ich an, von einer Funktion die Klammer zu.
    //Alles was jetzt kommt, das muss eine Deklarierung sein!
    //Die for-Schleife ist in keiner Funktion und schon deklariert.

  • Eine Deklarierung einer Funktion bzw. einer Variable erstellt diese in einem Programm. Bei der Deklarierung wird der Datentyp sowie die Datenlänge festgelegt.
    In Pawn würde beispielsweise eine Deklarierung eines Strings wie folgt aussehen:
    new Spielername[24];
    Das new erstellt die Variable.
    Spielername ist der Name bzw. die Identität der Variable.
    Die 24 gibt die Länge des String der Variable an (24 Zeichen).


    Edit: Char vergessen.

  • Wie wäre es, wenn du "i" nicht für jede Schleife neu definierst sondern mal die andere Buchstaben des Alphabets nimmst?
    Versuchs einfach mal mit z.B. "o"


    Bitte nicht. Eine Variable reicht für eine gesamte Routine.

    new i; // Einmalige Deklarierung des Integers i


    for(; i < MAX_HAUS; i++) { ... } // Erste Schleife
    for(; i < MAX_HAUS; i++) { ... ] // Zweite Schleife

    Eine Variable reicht völlig aus.

  • @Danifai
    OnPlayerPickupPickup ist ja davor, weit davor, habe es aber unter dem Public


    lord...
    Sobald ich new i;deklariert habe und es dann in meinen Schleifen benutze bekomme ich
    komischweriwese die gleichen 3 eroor's ?(