Beiträge von Templer

    ja Indem du einfach das Tutorial nicht mit einer Wiederholung aufrufst, sondern immer wieder den Timer neu startest ^^


    Also beim einloggen änderst du
    gTutorialTimer[playerid] = SetTimerEx("tutorial", 15000, 1,"d", playerid);
    um in
    CallLocalFunction("tutorial", "d", playerid);


    und bei deinem public tutorial siehst du am ende von jedem Text das ich einen Kommentar geschrieben habe ^^.
    Natürlich würde es besser gehen, aber egal..
    Nebenbei löscht du auch am besten den KillTimer ganz unten, was ich auch kommentiert habe und wenn du das tust auch die Zeile:
    new gTutorialTimer[MAX_PLAYERS];
    löschen.


    Also hier die public ^^:

    public tutorial(playerid)
    {
    switch(gTutorialCount[playerid])
    {
    case 1: //Text #1
    {
    GameTextForPlayer(playerid,"~w~Willkommen~n~~b~Tutorial: ~g~Startet",3000,3);
    tutorialtext[playerid] = Create3DTextLabel("<Im Tutorial>",gelb,0,0,0,70.5,1);
    Attach3DTextLabelToPlayer(tutorialtext[playerid], playerid, 0.0, 0.0, 0.30);
    TogglePlayerControllable(playerid,0);
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, braun, "[_______________ Willkommen _____________");
    SendClientMessage(playerid, orange, "Willkommen auf 'LS-TDM Street Fights' Server.");
    SendClientMessage(playerid, orange, "Wie ich erkenne bist du neu hier :)");
    SendClientMessage(playerid, orange, "Natürlich denkst du dir was macht ein Tutorial auf");
    SendClientMessage(playerid, orange, "TDM Server? Nun ja Kurz und Knapp 'Wir wollen was Neuartiges'");
    SendClientMessage(playerid, orange, "Darstellen. Nun wird dir das wichtigste erklärt :)");
    SetTimerEx("tutorial", 2000, 0, "d", playerid); //In 2 Sekunden wird tutorial nochmal aufgerufen
    }
    case 2: //Text#2
    {
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, braun, "[_______________ Informationen _____________");
    SendClientMessage(playerid, orange, "TDM Street Fights ist ein Team Deathmatch server");
    SendClientMessage(playerid, orange, "Unser Scripter ist [PoB]PaLL und der Mapper [PoB]XNike");
    SendClientMessage(playerid, orange, "Support/Admin ist [PoB]SonY. Wir Kümmern uns Liebevoll,");
    SendClientMessage(playerid, orange, "darum das ihr hier eine schöne zeit habt. fals du fragen hast");
    SendClientMessage(playerid, orange, "Steht ein Admin/Support gern zuverfügung, Befehle findes du unter /Befehle");
    SetTimerEx("tutorial", 5000, 0, "d", playerid); //In 5 Sekunden wird tutorial nochmal aufgerufen
    }
    case 3: //Text#3
    {
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, braun, "[_______________ Cheaten & Bugusing _____________");
    SendClientMessage(playerid, orange, "Das Cheaten oder Bugusing ist auf den Server Strengsten untersagt!.");
    SendClientMessage(playerid, orange, "Dies wird mit einen PERM. Ban/Warn sogesagt Belohnt!");
    SendClientMessage(playerid, orange, "Zudem ist auch das Parken auf anderen User untersaget");
    SendClientMessage(playerid, orange, "Solltes du mehr über regeln wissen möchten Tipp /regeln ein!");
    SetTimerEx("tutorial", 3000, 0, "d", playerid); //In 3 Sekunden wird tutorial nochmal aufgerufen
    }
    case 4: //Text#4
    {
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, braun, "[_______________ Das Rang System _____________");
    SendClientMessage(playerid, orange, "Du Starte hier mit den Rang 1 (Noob)");
    SendClientMessage(playerid, orange, "Unter /ränge kannst du gucken was du alles mit dein Rang");
    SendClientMessage(playerid, orange, "Kannst. Wie Waffenkaufen, Fahrzeuge fahren und und und!");
    SetTimerEx("tutorial", 6000, 0, "d", playerid); //In 6 Sekunden wird tutorial nochmal aufgerufen
    }
    case 5: //Text#5
    {
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, braun, "[_______________ Wichtiges _____________");
    SendClientMessage(playerid, orange, "User mit <Im Tutorial> angreifen ist Verboten.");
    SendClientMessage(playerid, orange, "Admins die in Duty sind auch ebenfals nicht anzugreifen.");
    SendClientMessage(playerid, orange, "ei mistachtung Folgt eine Verwarnung!");
    SendClientMessage(playerid, orange, "Bitte les dir nach dem Tutorial die Regeln durch. (/regeln)");
    SetTimerEx("tutorial", 8000, 0, "d", playerid); //In 8 Sekunden wird tutorial nochmal aufgerufen
    }
    default: //Letzer Text
    {
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    SendClientMessage(playerid, orange, " ");
    GameTextForPlayer(playerid,"~r~E~n~~g~N~n~~b~D~n~~y~E",3000,3);
    SendClientMessage(playerid, braun, "[_______________ Das Ende _____________]");
    SendClientMessage(playerid, orange, "Regeln findes du unter /regeln");
    SendClientMessage(playerid, orange, "Weiter hilfe findes du unter /help");
    SendClientMessage(playerid, orange, "Nochmals unser Webseite unten link zusehen!!!");
    SendClientMessage(playerid, orange, "Wir wünschen dir viel Spaß auf unserem Server");
    PlayerInfo[playerid][pTutorial] = 1;
    TogglePlayerControllable(playerid,1);
    Delete3DTextLabel(tutorialtext[playerid]);
    //Hier muss man nichtmehr es aufrufen, da es nun zu ende is ^^
    //Nebenbei kannst du (musst aber nicht), dass KillTimer auch löschen bzw. auskommentieren.
    KillTimer(gTutorialTimer[playerid]);
    }
    }
    gTutorialCount[playerid]++; //Zählt eins rauf
    }

    Dudalus, was is mit dir los? Das ist ja schon zum schämen ^^ Ich glaube du hast nichtmehr den Überblick was, wie ist ^^... Jetzt weißte sicher nochmehr, warum ich damals dir von FDaten[MAX_VEHICLES] abgeraten hab, oder? ^^ Nagut hier die Lösung..


    Nebenbei noch, es reicht vollkommen aus SaveTuner bei OnVehicleMod aufzurufen ^^.


    stock GetPrivatCarID(vehicleid)
    {
    for(new pid = 0; pid < _cache_fahrzeug; pid++)
    {
    if(vehicleid == FDaten[pid][fCarID]) return pid;
    }
    return -1;
    }


    //OnVehicleDeath
    public OnVehicleDeath(vehicleid, killerid)
    {
    SaveTuner(GetPrivatCarID(vehicleid));
    return 1;
    }


    //OnVehicleSpawn
    public OnVehicleSpawn(vehicleid)
    {
    PrivatCarTuneUp(GetPrivatCarID(vehicleid));
    return 1;
    }


    public PrivatCarTuneUp(id)
    {
    if(FDaten[id][fTunbar] == 1)
    {
    new vehicleid = FDaten[id][fCarID];
    if(FDaten[id][fTuningteil0] != 0) {AddVehicleComponent(vehicleid, component[0]);}
    if(FDaten[id][fTuningteil1] != 0) {AddVehicleComponent(vehicleid, component[1]);}
    if(FDaten[id][fTuningteil2] != 0) {AddVehicleComponent(vehicleid, component[2]);}
    if(FDaten[id][fTuningteil3] != 0) {AddVehicleComponent(vehicleid, component[3]);}
    if(FDaten[id][fTuningteil4] != 0) {AddVehicleComponent(vehicleid, component[4]);}
    if(FDaten[id][fTuningteil5] != 0) {AddVehicleComponent(vehicleid, component[5]);}
    if(FDaten[id][fTuningteil6] != 0) {AddVehicleComponent(vehicleid, component[6]);}
    if(FDaten[id][fTuningteil7] != 0) {AddVehicleComponent(vehicleid, component[7]);}
    if(FDaten[id][fTuningteil8] != 0) {AddVehicleComponent(vehicleid, component[8]);}
    if(FDaten[id][fTuningteil9] != 0) {AddVehicleComponent(vehicleid, component[9]);}
    if(FDaten[id][fTuningteil10] != 0) {AddVehicleComponent(vehicleid, component[10]);}
    if(FDaten[id][fTuningteil11] != 0) {AddVehicleComponent(vehicleid, component[11]);}
    if(FDaten[id][fTuningteil12] != 0) {AddVehicleComponent(vehicleid, component[12]);}
    if(FDaten[id][fTuningteil13] != 0) {AddVehicleComponent(vehicleid, component[13]);}
    }
    return 1;
    }


    public SaveTuner(id)
    {
    new vehicleid = FDaten[id][fCarID];
    FDaten[i][fTuningteil0] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_SPOILER);
    FDaten[i][fTuningteil1] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_HOOD);
    FDaten[i][fTuningteil2] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_ROOF);
    FDaten[i][fTuningteil3] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_SIDESKIRT);
    FDaten[i][fTuningteil4] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_LAMPS);
    FDaten[i][fTuningteil5] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_NITRO);
    FDaten[i][fTuningteil6] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_EXHAUST);
    FDaten[i][fTuningteil7] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_WHEELS);
    FDaten[i][fTuningteil8] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_STEREO);
    FDaten[i][fTuningteil9] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_HYDRAULICS);
    FDaten[i][fTuningteil10] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_FRONT_BUMPER);
    FDaten[i][fTuningteil11] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_REAR_BUMPER);
    FDaten[i][fTuningteil12] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_VENT_RIGHT);
    FDaten[i][fTuningteil13] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_VENT_LEFT);
    SaveCache();
    return 1;
    }

    new name1[MAX_PLAYER_NAME];
    new onlinestring1[MAX_PLAYER_NAME*MAX_PLAYERS];
    new onlinestring[100];
    format(onlinestring, sizeof(onlinestring), "test/Others/whoisonline.ini");
    new File:onlinestatus = fopen(onlinestring, io_read);
    if(onlinestatus)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    GetPlayerName(i, name1, sizeof(name1));
    format(onlinestring, sizeof(onlinestring),"%s(%d)\r\n", name1, i);
    strcat(onlinestring1, onlinestring);
    }
    fwrite(onlinestatus, onlinestring1);
    fclose(onlinestatus)
    }

    Das hier
    gTutorialTimer[playerid] = SetTimerEx("Tutorial", 15000, 1,"d", playerid);
    muss zu
    gTutorialTimer[playerid] = SetTimerEx("tutorial", 15000, 1,"d", playerid);

    Versuche es so:


    if(strcmp(cmdtext, "/setlevel", true) == 0)
    {
    new tmp[256], idx = 1; //Da idx 0 der Befehl wäre!
    if(Spieler[playerid][AdminLevel] != MAX_ADMINLEVEL){SendClientMessage(playerid, COLOR_OOC, "Ihr Adminlevel ist nicht hoch genug.");return 1;}


    tmp = strtok(cmdtext,idx);
    if(!strlen(tmp)){SendClientMessage(playerid, COLOR_OOC,"/setlevel Spielerid Adminlevel");return 1;}
    new spielerid = strval(tmp);

    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)){SendClientMessage(playerid, COLOR_OOC, "/setlevel [Spielerid] [Adminlevel]");return 1;}
    new adminlevel = strval(tmp);

    if(!IsPlayerConnected(spielerid)){SendClientMessage(playerid, COLOR_OOC, "Dieser Spieler ist nicht Online.");return 1;}
    if(adminlevel < 0 || adminlevel > 10){new str[150];format(str, sizeof(str), "Adminlevel kann nicht unter 0 oder über %d sein.", MAX_ADMINLEVEL);SendClientMessage(playerid, COLOR_OOC, str);return 1;}


    new str[256];
    Spieler[spielerid][AdminLevel] = AdminLevel;
    new Spielername[MAX_PLAYER_NAME];
    GetPlayerName(spielerid , Spielername, sizeof(Spielername));
    format(str,sizeof(str), "Sie haben %s's Adminlevel auf %d gesetzt.", Spielername, AdminLevel);
    SendClientMessage(playerid, COLOR_OOC, str);


    new SpielerName2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, SpielerName2, sizeof(SpielerName2));
    format(str,sizeof(str), "%s hat ihnen Adminlevel %d gegeben.", SpielerName2, AdminLevel);
    SendClientMessage(spielerid, COLOR_OOC, str);
    return 1;
    }

    new Spielerdatei[64],str[256];
    format(str,sizeof(str),"Du bist also %d Jahre Alt",strval(inputtext)); //Besserer ist es den String in Zahl zu konvertieren mit strval
    SendClientMessage(playerid,0xFFFFFFFF,str);
    dini_IntSet(Spielerdatei,"Alter",Spieler[playerid][Alter]);
    //Weil du in einen Array nur einen Charakter ablagern kannst, also nütze bitte format!
    //btw wieso string und nicht str? ^^
    format(string, sizeof(string), inputtext);
    new iValue = strval(string); //Wäre jedoch das direkte 'strval(inputtext)' nicht besser? ^^ Aber lassen wir es dabei.
    Spieler[playerid][Alter] = iValue;
    tutende2(playerid);

    Wenn du ein GF hast, dann ist doch eh alles vordefiniert?..


    Du zählst die Produkte der Bizzes um die Anzahl der Produkte vom Truck hoch also:


    BizProdukte += TruckerProdukte; //Die Theorie

    und zählst dann die TruckerProdukte auf 0 herunter..

    Truckerprodukte = 0;

    Ach quini... Wieso machst du nur solche blöden Fehler die so offensichtlich sind ^^


    Ich meine denk mal nach, was soll deine Zeile bedeuten?
    new Schutz = (dini_FloatSet(s,"armor"));
    er soll den Rückgabewert (return) von dini_FloatSet in Schutz ablagern?.. Ich dachte du willst es umgekehrt ^^ Hier ein Beispiel:

    new Float:armour;
    GetPlayerArmour(playerid, armour);
    dini_FloatSet(s,"armor", armour);


    so wäre es richtig.

    Die Zeile ist korrekt, es kann sein, dass oberhalb deiner { - Klammer der Fehler liegt oder du msg in einem enum mit einem anderen Datentyp definiert hast,also probiere mal statt msg die Definition strtext ^^, ansonsten weitere Codes oben posten..


    new strtext[200];
    ...
    format(strtext,sizeof(strtext),"Willkommen %s.\n\nDu kannst dich jetzt registrieren.\nGib bitte dein gewünschtes Passwort\nein.",pname); // das die zeile 105

    Wir sind aber ganz schön doof, aber wirklich...
    Wir haben vergessen die Varbiable zu setzen ^^
    gWerbungCount[playerid] = 1;


    Also:
    IstEingeloggt[playerid] = 0; //Wieso ist das auf 0, wenn er sich einloggt musses auf 1 ....
    if(PlayerInfo[playerid][pTutorial] == 0)
    {
    gWerbungCount[playerid] = 1; //Das hat vergessen xD
    gTutorialTimer[playerid] = SetTimerEx("Tutorial", 15000, 1,"d", playerid); //Jede Sekunde erscheint ein neuer Text!
    SendClientMessage(playerid,rot,"Fehler: Du musst das Tutorial noch machen!");
    }

    Nein, liest doch genauer (besonders du NeoPhoenix ^^) er meint eigentlich das Laden, also die abspeicherung der Daten in die Variablen ^^. So meinte er es und das Problem liegt an samp_mysql_strtok jedoch kenn ich mich mit mysql ned so aus ^^


    Probiers mal so:


    public OnPlayerLogin(playerid, const string[])
    {
    new Data[1024];
    new Field[64];
    new query[128];
    new PlayerName[24];
    GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
    new rcnt = 1;
    format(query, sizeof(query), "SELECT * FROM spieler WHERE name = '%s'", PlayerName);
    samp_mysql_query(query);
    samp_mysql_store_result();
    samp_mysql_fetch_row(Data);
    print(Data);
    samp_mysql_strtok(Field, "|", Data);
    while (samp_mysql_strtok(Field, "|", "")==1)
    {
    if (rcnt == 2) PlayerInfo[playerid][pLevel] = strval(Field);
    if (rcnt == 3) PlayerInfo[playerid][pEXP] = strval(Field);
    if (rcnt == 4) PlayerInfo[playerid][pScheinA] = strval(Field);
    if (rcnt == 5) PlayerInfo[playerid][pScheinB] = strval(Field);
    if (rcnt == 6) PlayerInfo[playerid][pScheinC] = strval(Field);
    rcnt++;
    }
    gPlayerLogged[playerid] = 1;
    gPlayerAccount[playerid] = 1;
    SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]);
    samp_mysql_free_result();
    return 1;
    }


    p.S.: pöser NeoPhoenix ^^