Beiträge von apoolecu

    Moin,


    habe das System jetzt geändert


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    for(new t = 1; t < MAX_HOUSES; t++)
    {
    if(pickupid == haus[t][hIDP] && WillRein == 1 && WillRaus == 0)
    {
    SetPlayerInterior(playerid,haus[t][hInt]);
    SetPlayerVirtualWorld(playerid, haus[t][hID]+1);
    SetPlayerPos(playerid, haus[t][hX2],haus[t][hY2],haus[t][hZ2]);
    }
    else if(pickupid == haus[t][hIDP2] && WillRaus == 1 && WillRein == 0)
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerPos(playerid, haus[t][hX]+2,haus[t][hY],haus[t][hZ]);
    }
    for(new i = 1; i < MAX_TANKEN; i++)
    {
    if(pickupid == tanke[i][tIDP] && tanke[i][tBetrieb] == 1 && WillRein == 1 && WillRaus == 0)
    {
    SetPlayerInterior(playerid,tanke[i][tInt]);
    SetPlayerVirtualWorld(playerid, tanke[i][tID]+1);
    SetPlayerPos(playerid, tanke[i][tIX],tanke[i][tIY],tanke[i][tIZ]);
    TankeCP[i] = SetPlayerCheckpoint(playerid,tanke[i][tCPX],tanke[i][tCPY],tanke[i][tCPZ],2);
    }
    else if(pickupid == tanke[i][tIDP] && tanke[i][tBetrieb] == 0 && WillRein == 1 && WillRaus == 0){SendClientMessage(playerid,COLOR_RED,"Diese Tankstelle ist InAktiv!"); WillRein = 0;}
    else if(pickupid == tanke[i][tIDP2] && WillRaus == 1 && WillRein == 0)
    {
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerPos(playerid, tanke[i][tPX]+2,tanke[i][tPY],tanke[i][tPZ]);
    DisablePlayerCheckpoint(playerid);
    }
    }
    return 1;
    }


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if (PRESSED( KEY_WALK ))
    {
    if((WillRein == 0) && (WillRaus == 0))
    {WillRein = 1; SendClientMessage(playerid,COLOR_GREEN,"WillRein An");}
    else if((WillRein == 0) && (WillRaus == 1))
    {WillRein = 1; WillRaus = 0;SendClientMessage(playerid,COLOR_GREEN,"WillRein An Mth 2");}
    else if((WillRein == 1) && (WillRaus == 0))
    {WillRaus = 1; WillRein = 0;SendClientMessage(playerid,COLOR_GREEN,"WillRaus An");}
    }


    so wenn WillRein 1 erfordert wird und ich nun WillRaus 1 drinnen habe dann Aktiviert sich das pickup trotzdem und ich komme wieder bei dem gleiche raus, gibt es keine möglichkeit diesen Fehler zubeheben?


    MfG: Apoolecu

    Moin,


    ich habe soeben bei mir in meinem Script einen bug gefunden nur frage ich mich, wie ich hin raus bekomme und zwar wenn ich nicht in der nähe von einem Pickup bin komme ich aufeinmal bei den Kords 0,000 , 0,000 , 0,000 raus.



    Der Code:
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if (PRESSED( KEY_WALK ))
    {
    for(new t = 1; t < MAX_HOUSES; t++)
    {
    if(IsPlayerInRangeOfPoint(playerid,1,haus[t][hX], haus[t][hY], haus[t][hZ]))
    {
    SetPlayerInterior(playerid,haus[t][hInt]);
    SetPlayerVirtualWorld(playerid, haus[t][hID]+1);
    SetPlayerPos(playerid, haus[t][hX2],haus[t][hY2],haus[t][hZ2]);
    }
    else if(IsPlayerInRangeOfPoint(playerid,1,haus[t][hX3],haus[t][hY3],haus[t][hZ3]))
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerPos(playerid, haus[t][hX]+2,haus[t][hY],haus[t][hZ]);
    }
    else{}
    for(new i = 1; i < MAX_TANKEN; i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,1,tanke[i][tPX], tanke[i][tPY], tanke[i][tPZ]) && tanke[i][tBetrieb] == 1)
    {
    SetPlayerInterior(playerid,tanke[i][tInt]);
    SetPlayerVirtualWorld(playerid, tanke[i][tID]+1);
    SetPlayerPos(playerid, tanke[i][tIX],tanke[i][tIY],tanke[i][tIZ]);
    TankeCP[i] = SetPlayerCheckpoint(playerid,tanke[i][tCPX],tanke[i][tCPY],tanke[i][tCPZ],2);
    }
    else if(IsPlayerInRangeOfPoint(playerid,1,tanke[i][tPX], tanke[i][tPY], tanke[i][tPZ]) && tanke[i][tBetrieb] == 0){SendClientMessage(playerid,COLOR_RED,"Diese Tankstelle ist InAktiv!");}
    else if(IsPlayerInRangeOfPoint(playerid,1,tanke[i][tILX], tanke[i][tILY], tanke[i][tILZ]))
    {
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerPos(playerid, tanke[i][tPX]+2,tanke[i][tPY],tanke[i][tPZ]);
    DisablePlayerCheckpoint(playerid);
    }
    }
    }


    hoffe auf eine schnelle Lösung.


    MfG: Apoolecu

    Moin,


    ich habe gerade eine Zustands anzeige für meine Tacho erstellt problem ist nur das jedes mal nur die drei Roten I angezeigt werden nie die grünen I I I :(


    public TachoTimer()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
    {
    new Float:Entfernung, Float:Geschwindigkeit;// Die definierten Floats die mit den Werten gefüttert werden
    GetVehiclePos(GetPlayerVehicleID(i), X1[i], Y1[i], Z1[i]); //Erste Koordinate wird genommen
    Entfernung = floatsqroot(floatpower(floatabs(floatsub(X1[i], X2[i])), 2)+floatpower(floatabs(floatsub(Y1[i], Y2[i])), 2)+floatpower(floatabs(floatsub(Z1[i], Z2[i])), 2)); //Berechnung der Entfernung
    CarInfo[GetPlayerVehicleID(i)][aMeter] += Entfernung;
    MeterCar[i] +=Entfernung;
    Geschwindigkeit = (Entfernung / (TACHOTIMER/1000)) * 3.6; //Meter/Sekunde in Kilometer/Stunde
    new Tachostring[125], Float:CarHealth;
    GetVehicleHealth(GetPlayerVehicleID(i), CarHealth);
    if(GetVehicleHealth(GetPlayerVehicleID(i), CarHealth) >=900.0)
    {
    format(Tachostring, sizeof(Tachostring), "Km/h: %d~n~Benzin: %.1fL/%.1fL~n~Besitzer: %s~n~KM: %.1f~n~Zustand: ~g~I I I", floatround(Geschwindigkeit), CarInfo[GetPlayerVehicleID(i)][aBenzin],CarInfo[GetPlayerVehicleID(i)][aMBenzin],CarInfo[GetPlayerVehicleID(i)][aBesitzer],CarInfo[GetPlayerVehicleID(i)][aMeter]/500);
    TextDrawSetString(Tacho[i], Tachostring);
    }
    if(GetVehicleHealth(GetPlayerVehicleID(i), CarHealth) >=750.0)
    {
    format(Tachostring, sizeof(Tachostring), "Km/h: %d~n~Benzin: %.1fL/%.1fL~n~Besitzer: %s~n~KM: %.1f~n~Zustand: ~r~I~g~I I", floatround(Geschwindigkeit), CarInfo[GetPlayerVehicleID(i)][aBenzin],CarInfo[GetPlayerVehicleID(i)][aMBenzin],CarInfo[GetPlayerVehicleID(i)][aBesitzer],CarInfo[GetPlayerVehicleID(i)][aMeter]/500);
    TextDrawSetString(Tacho[i], Tachostring);
    }
    if(GetVehicleHealth(GetPlayerVehicleID(i), CarHealth) >=500.0)
    {
    format(Tachostring, sizeof(Tachostring), "Km/h: %d~n~Benzin: %.1fL/%.1fL~n~Besitzer: %s~n~KM: %.1f~n~Zustand: ~r~I I~g~I", floatround(Geschwindigkeit), CarInfo[GetPlayerVehicleID(i)][aBenzin],CarInfo[GetPlayerVehicleID(i)][aMBenzin],CarInfo[GetPlayerVehicleID(i)][aBesitzer],CarInfo[GetPlayerVehicleID(i)][aMeter]/500);
    TextDrawSetString(Tacho[i], Tachostring);
    }
    if(GetVehicleHealth(GetPlayerVehicleID(i), CarHealth) <=499.0) // nur das hier wird angezeigt!
    {
    format(Tachostring, sizeof(Tachostring), "Km/h: %d~n~Benzin: %.1fL/%.1fL~n~Besitzer: %s~n~KM: %.1f~n~Zustand: ~r~I I I", floatround(Geschwindigkeit), CarInfo[GetPlayerVehicleID(i)][aBenzin],CarInfo[GetPlayerVehicleID(i)][aMBenzin],CarInfo[GetPlayerVehicleID(i)][aBesitzer],CarInfo[GetPlayerVehicleID(i)][aMeter]/500);
    TextDrawSetString(Tacho[i], Tachostring);
    }
    GetVehiclePos(GetPlayerVehicleID(i), X2[i], Y2[i], Z2[i]); //Zweite Koordinate wird genommen
    TextDrawShowForPlayer(i, Tacho[i]);
    CarInfo[GetPlayerVehicleID(i)][aKM] = MeterCar[i]/500;
    CheckKM(GetPlayerVehicleID(i),i);
    }
    else if(!IsPlayerInAnyVehicle(i))
    {
    TextDrawHideForPlayer(i, Tacho[i]);
    }
    }
    return 1;
    }

    public SpeicherKonto(id)
    {
    new str[256];
    if(id <= 0)
    {
    return 1;
    }
    format(str, sizeof(str), "SAP/Konten/%d.konto", id);
    dini_Create(str);
    {
    dini_IntSet(str,"ID",bank[id][bID]);
    dini_IntSet(str,"ID2",bank[id][bID2]);
    dini_IntSet(str,"Geld",bank[id][bGeld]);
    dini_IntSet(str,"Passwort",bank[id][bPasswort]);
    printf("ID: %d, ID2: %d, PW: %d, Geld: %d",bank[id][bID],bank[id][bID2],bank[id][bPasswort],bank[id][bGeld]);
    }
    return 1;
    }


    in dem SpeicherSystem werden aber hab keine Werte gespeichert, vorher habe ich es mit deiner Debug MSG überprüft in meinem CMD wo denn die Speicher Funktion ausgeführt wird dort werden aber die Werte ausgespuckt :O

    if(dialogid == DIALOG_BANKR)
    {
    if(response == 1) // Passwort eingabe
    {
    for(new t = 1; t < MAX_KONTEN; t++)
    {
    new szString1[125];
    format(szString1,sizeof szString1,"Deine KontoNummer ist %d\nDein Konto Passwort: %s\nBitte merke dir dies, wenn du sie verlierst kann sie dir niemand ersetzen",NeuesKonto,inputtext);
    ShowPlayerDialog(playerid,DIALOG_BANKRE,DIALOG_STYLE_MSGBOX,"Bank System", szString1,"Weiter","");
    bank[t][bID] = NeuesKonto;
    strmid(bank[t][bPasswort],inputtext, 0, strlen(inputtext),255);
    bank[t][bGeld] = 0;
    bank[t][bID2] = KontoExistiert;
    SpeicherKonto(KontoExistiert);
    }
    }
    }



    so habe ich es derzeit problem ist bei bPasswort kommen immer noch zahlen raus :O

    Hallo,


    ich habe mir ein simples Bank System gescriptet.
    Nur bei dem Bank System werden bei Eingaben falsche Werte wieder ausgeben :S


    if(dialogid == DIALOG_BANKM)
    {
    if(response == 0) // Abbruch
    {
    }
    if(response == 1) // Wählen
    {
    if(listitem == 0) // Login
    {
    ShowPlayerDialog(playerid,DIALOG_BANKL,DIALOG_STYLE_INPUT,"Bank System","Gebe nun deine Kontonummer von deinem Konto ein" ,"Weiter","Abbruch");
    }
    if(listitem == 1) // Reg
    {
    new szString1[125];
    NeuesKonto = strval(RandomStr(6));
    format(szString1,sizeof szString1,"Deine KontoNummer ist %d, bitte merke sie dir.\nGebe nun dein Gewünschtes Passwort ein.",NeuesKonto);
    ShowPlayerDialog(playerid,DIALOG_BANKR,DIALOG_STYLE_INPUT,"Bank System",szString1 ,"Weiter","");
    }
    }
    }
    if(dialogid == DIALOG_BANKR)
    {
    if(response == 1) // Passwort eingabe
    {
    for(new t = 1; t < MAX_KONTEN; t++)
    {
    new szString1[125];
    format(szString1,sizeof szString1,"Deine KontoNummer ist %d\nDein Konto Passwort: %d\nBitte merke dir dies, wenn du sie verlierst kann sie dir niemand ersetzen",NeuesKonto,strlen(inputtext));
    ShowPlayerDialog(playerid,DIALOG_BANKRE,DIALOG_STYLE_MSGBOX,"Bank System", szString1,"Weiter","");
    bank[t][bID] = NeuesKonto;
    bank[t][bPasswort] = strlen(inputtext);
    bank[t][bGeld] = 0;
    KontoExistiert ++;
    bank[t][bID2] = KontoExistiert;
    SpeicherKonto(KontoExistiert);
    }
    }
    }
    if(dialogid == DIALOG_BANKRE)
    {
    if(response == 1) // Passwort eingabe
    {
    ShowPlayerDialog(playerid,DIALOG_BANKM2,DIALOG_STYLE_LIST,"Bank System","Abheben\nÜberweisen\nKontostand","OK","Abbruch");
    }
    }
    if(dialogid == DIALOG_BANKL)
    {
    if(response == 0) // Abbruch
    {
    }
    if(response == 1) // Passwort eingabe
    {
    for(new t = 1; t < MAX_KONTEN; t++)
    {
    if(bank[t][bID] == strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_BANKL2,DIALOG_STYLE_INPUT,"Bank System","Gebe nun dein Passwort von deinem Konto ein.","Weiter","Abbruch");
    konto = strlen(inputtext);
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_BANKE,DIALOG_STYLE_MSGBOX,"Bank System","Diese Kontonummer existiert gar nicht!","OK","");
    }
    }
    }
    }
    if(dialogid == DIALOG_BANKL2)
    {
    if(response == 0) // Abbruch
    {
    }
    if(response == 1) // Erfolgreich?
    {
    if(strcmp(inputtext,bank[konto][bPasswort]) == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_BANKL3,DIALOG_STYLE_MSGBOX,"Bank System","Du wurdest erfolgreich in dein Kontoeingeloggt.","OK","");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_BANKE,DIALOG_STYLE_MSGBOX,"Bank System","Dieses Passwort ist nicht richtig!","OK","");
    }
    }
    }
    if(dialogid == DIALOG_BANKL3)
    {
    if(response == 1) // Menü
    {
    ShowPlayerDialog(playerid,DIALOG_BANKM2,DIALOG_STYLE_LIST,"Bank System","Abheben\nÜberweisen\nKontostand","OK","Abbruch");
    }
    }
    if(dialogid == DIALOG_BANKM2)
    {
    if(response == 0) // Abbruch
    {
    }
    if(response == 1) // Wählen
    {
    if(listitem == 0) // Abheben
    {
    ShowPlayerDialog(playerid,DIALOG_BANKA,DIALOG_STYLE_INPUT,"Bank System","Gebe nun deinen gewünschten Geldbetrag ein" ,"Weiter","Abbruch");
    }
    if(listitem == 1) // Überweisen
    {
    ShowPlayerDialog(playerid,DIALOG_BANKUA,DIALOG_STYLE_INPUT,"Bank System","Konto Nummer des Empfängers bitte eingeben" ,"Weiter","Abbruch");
    }
    if(listitem == 2) //Kontostand
    {
    new szString1[56];
    format(szString1,sizeof szString1,"Derzeitiger Kontostand: %i $",bank[konto][bGeld]);
    ShowPlayerDialog(playerid,DIALOG_BANKS,DIALOG_STYLE_INPUT,"Bank System",szString1,"Zurück","");
    }
    }
    }
    if(dialogid == DIALOG_BANKA)
    {
    if(response == 0) // Abbruch
    {
    ShowPlayerDialog(playerid,DIALOG_BANKM2,DIALOG_STYLE_LIST,"Bank System","Abheben\nÜberweisen\nKontostand" ,"OK","Abbruch");
    }
    if(response == 1) // Wählen
    {
    new szString1[125];
    format(szString1,sizeof szString1,"Du hast %d $ abgehoben, es wird dir nun Gutgeschrieben",strlen(inputtext));
    ShowPlayerDialog(playerid,DIALOG_BANKAE,DIALOG_STYLE_INPUT,"Bank System",szString1,"Zurück","");
    GivePlayerMoney(playerid, strlen(inputtext));
    bank[konto][bGeld] -= strlen(inputtext);
    SpeicherKonto(bank[konto][bID2]);
    }
    }
    if(dialogid == DIALOG_BANKUA)
    {
    if(response == 0) // Abbruch
    {
    ShowPlayerDialog(playerid,DIALOG_BANKM2,DIALOG_STYLE_LIST,"Bank System","Abheben\nÜberweisen\nKontostand" ,"OK","Abbruch");
    }
    if(response == 1) // Wählen
    {
    Empfaenger += strlen(inputtext);
    ShowPlayerDialog(playerid,DIALOG_BANKUW,DIALOG_STYLE_INPUT,"Bank System","Gebe bitte nun den gewünschten Betrag ein","Weiter","Abbruch");
    SpeicherKonto(bank[Empfaenger][bID2]);
    }
    }
    if(dialogid == DIALOG_BANKUW)
    {
    if(response == 0) // Abbruch
    {
    ShowPlayerDialog(playerid,DIALOG_BANKM2,DIALOG_STYLE_LIST,"Bank System","Abheben\nÜberweisen\nKontostand" ,"OK","Abbruch");
    }
    if(response == 1) // Wählen
    {
    bank[konto][bGeld] -= strlen(inputtext);
    bank[Empfaenger][bGeld] = strlen(inputtext);
    new szString1[125];
    format(szString1,sizeof szString1,"Du hast soeben an Kontonummer: %d %d $ überwiesen",Empfaenger,strlen(inputtext));
    ShowPlayerDialog(playerid,DIALOG_BANKUE,DIALOG_STYLE_MSGBOX,"Bank System",szString1,"Menü","");
    SpeicherKonto(konto);
    }
    }
    if(dialogid == DIALOG_BANKUW)
    {
    if(response == 1) // Abbruch
    {
    ShowPlayerDialog(playerid,DIALOG_BANKM2,DIALOG_STYLE_LIST,"Bank System","Abheben\nÜberweisen\nKontostand" ,"OK","Abbruch");
    }
    }


    MfG: Apoolecu

    Hey,


    ich habe ein wenig herum probiert und bin auf dies herraus gekommen.


    public SpeicherWaffen(playerid)
    {
    GetPlayerName(playerid,pName,sizeof pName);
    format(accFormat,sizeof accFormat,"SAP/User/%s.datei",pName);
    if(fexist(accFormat) && Spieler[playerid][eingeloggt])
    {
    new waffe,muni,frm[20];
    for(new i = 0;i<13;i++)
    {
    GetPlayerWeaponData(playerid,i,waffe,muni);
    {
    format(frm,sizeof frm,"WSlot%d",i);
    dini_IntSet(accFormat,frm,waffe);
    format(frm,sizeof frm,"WAmmu%d",i);
    dini_IntSet(accFormat,frm,muni);
    printf(" %d, Waffe: %d, Ammu: %d",i,waffe,muni);
    }
    }
    }
    SpielerDatenSpeichern(playerid);
    SendClientMessageToAll(COLOR_WHITE,"Die Waffen sind nun gespeichert!");
    return 1;
    }


    problem bei printf kommt jedes mal nur diese Anzeige ,,SlotID (richtige anzeige) Waffe: 0 , Ammu: 0"
    das kann aber nicht sein weil ich jedes mal wenn ich die Funktion teste eine Shotgun in meiner Hand habe mit 500 Schuss..


    MfG: Apoolecu

    public SpeicherWaffen(playerid)
    {
    for (new i = 0; i < 13; i++)
    {
    GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
    Spieler[playerid][WSlot0] = weapons[0][0];
    Spieler[playerid][WAmmu0] = weapons[0][1];
    Spieler[playerid][WSlot1] = weapons[1][0];
    Spieler[playerid][WAmmu1] = weapons[1][1];
    Spieler[playerid][WSlot2] = weapons[2][0];
    Spieler[playerid][WAmmu2] = weapons[2][1];
    Spieler[playerid][WSlot3] = weapons[3][0];
    Spieler[playerid][WAmmu3] = weapons[3][1];
    Spieler[playerid][WSlot4] = weapons[4][0];
    Spieler[playerid][WAmmu4] = weapons[4][1];
    Spieler[playerid][WSlot5] = weapons[5][0];
    Spieler[playerid][WAmmu5] = weapons[5][1];
    Spieler[playerid][WSlot6] = weapons[6][0];
    Spieler[playerid][WAmmu6] = weapons[6][1];
    Spieler[playerid][WSlot7] = weapons[7][0];
    Spieler[playerid][WAmmu7] = weapons[7][1];
    Spieler[playerid][WSlot8] = weapons[8][0];
    Spieler[playerid][WAmmu8] = weapons[8][1];
    Spieler[playerid][WSlot9] = weapons[9][0];
    Spieler[playerid][WAmmu9] = weapons[9][1];
    Spieler[playerid][WSlot10] = weapons[10][0];
    Spieler[playerid][WAmmu10] = weapons[10][1];
    Spieler[playerid][WSlot11] = weapons[11][0];
    Spieler[playerid][WAmmu11] = weapons[11][1];
    Spieler[playerid][WSlot12] = weapons[12][0];
    Spieler[playerid][WAmmu12] = weapons[12][1];
    }
    SpielerDatenSpeichern(playerid);
    SendClientMessageToAll(COLOR_WHITE,"Die Waffen sind nun gespeichert!");
    return 1;
    }


    so könnte man ja theoretisch Waffen Speichern oder?

    Moin


    ich hab probiert Waffen zu speichern nun habe ich es so


    public SpeicherWaffen(playerid)
    {
    GetPlayerName(playerid,pName,sizeof pName);
    format(accFormat,sizeof accFormat,"SAP/User%s.datei",pName);
    if(fexist(accFormat) && Spieler[playerid][eingeloggt])
    {
    new waffe,muni,frm[20];
    for(new i = 0;i<13;i++)
    {
    GetPlayerWeaponData(playerid,i,waffe,muni);
    format(frm,sizeof frm,"WSlot%d",i);
    Spieler[playerid][frm] = waffe;
    format(frm,sizeof frm,"WAmmu%d",i);
    Spieler[playerid][frm] = muni;
    }
    }
    SpielerDatenSpeichern(playerid);
    SendClientMessageToAll(COLOR_WHITE,"Die Waffen sind nun gespeichert!");
    return 1;
    }


    die Enum ist ca. so aufgebaut



    enum blalbla
    {
    WSlot1,
    WSlot2,
    etc.
    WAmmu1,
    WAmmu2,
    etc
    }


    mit dem String möchte ich bewirken das genau nur der derzeitige WSlot + WAmmu abgerufen wird.
    Gibt es eine möglichkeit, das dies funktioniert weil derzeit bekomme ich nur 2 Fehler raus.


    Zeile (2703) : error 033: array must be indexed (variable "frm")
    Zeile (2706) : error 033: array must be indexed (variable "frm")


    mfG. Apoolecu