Beiträge von Monte

    Hallo Brotkrümel, ich hoffe mir kann jemand helfen.
    Und zwar geht es um folgendes:
    public OnVehicleSave()
    {
    new File:vfile = fopen("vehicles.cfg", io_append);
    if(vfile)
    {
    for(new v;v<MAX_VEHICLES;v++)
    {
    new string[128];
    format(string, sizeof string, "%d|%d|%d|%f|%f|%f|%f|%d|%d|%d|%d",
    VehicleInfo[v][vKey],
    VehicleInfo[v][vModel],
    VehicleInfo[v][vLocked],
    VehicleInfo[v][vX],
    VehicleInfo[v][vY],
    VehicleInfo[v][vZ],
    VehicleInfo[v][vA],
    VehicleInfo[v][vColor],
    VehicleInfo[v][vColor1],
    VehicleInfo[v][vTuning],
    VehicleInfo[v][vTuning1]);
    fwrite(vfile,string);
    fclose(vfile);
    }
    }
    }


    Ich habe ein Auto erstellt, mit meinem CMD, welcher automatisch für dieses auch key generiert. Die Farbe setzt u.s.w.
    Nun rufe ich per anderem Befehl, dieses Public SaveCar auf, er schreibt dies zwar nun in die Datei aber nicht die Daten, sondern nur:
    0|0|0|0.000|0.000|0.000|0.000|0|0|0|0


    Wieso? Ich hoffe jemand peilt das :P

    Dann müsste er aber wenn es mehrere sind, mehr IsInVehicle's machen ^^
    Da ist meine Methode leichter, da wie er sagt er IsAEventCar schon existiert :D

    IsAEventCar gibt keine 'vehicleid' wieder, sondern true oder falsch.
    Abfragen tust du es so:
    new vehicleid = GetPlayerVehicle(playerid);
    if(IsAnEventCar(vehicleid))
    {
    // das wird ausgeführt, wenn es ein Event Car ist ;)
    }


    Außerdme ist in einem Befehl IsPlayerConnected fehl am Platze, da sich wenn er nicht connectet ist, die Frage stellt: "Wie hat er den CMD eingegeben?" o_O
    Also ma nachdenken, hehe^^

    Und du bist einer? :P
    Aber sehr interessant, naja back to topic :D
    Ich halte Ausschau nach guten ICQ Historys ;)

    Zitat


    [..](dt. Ameisenficker)[..]


    Wenn hier noch AmeisenXXX drin vorkommt kann ich gar nicht mehr in den Thread o_O
    Netgear und ein comuptererfahrener Vater :(

    Schönen guten Abend ;)
    Ich werde hier nochmal ein verbessertes Tutorial schreiben ;)
    Erstmal müsst ihr diesee Variablen deklarieren und ein forward für das Tutorial:
    new bool:pFirstLog[MAX_PLAYERS],TutTimer[MAX_PLAYERS],TutTime[MAX_PLAYERS];
    forward Tutorial(playerid);
    Nun macht ihr am Besten in euren Register Command:
    pFirstLog[playerid] = true;
    Nun kann er sich einloggen und Spawnen, wenn er spawnt fragt ihr ab ob das sein erster Login ist:
    public OnPlayerSpawn(playerid)
    {
    if(pFirstLog[playerid] == true)
    {
    SetPlayerPos(playerid,0.0,0.0,0.0); // Tutorial Position
    TogglePlayerControllable(playerid,false);
    TutTime[playerid] = 1;
    TutTimer[playerid] = SetTimerEx("Tutorial",1000,1,"i",playerid);
    }
    return 1;
    }
    Und setzt die Zeitvariable auf 1. Mit SetTimerEx wird nun der Timer nur für die gegebene Playerid gestartet.
    Da er auf 1000 ist, wird jede Sekunden die Zeit-Variable erhöht, weshalb ihr nun in der TutTime Variable die Sekundenzahl abfragen könnt.
    Hier ist dann im public Tutorial ein Beispiel Tutorial:
    public Tutorial(playerid)
    {
    if(TutTime[playerid] >= 1) // wenn die Zeit auf 1 gesetzt worden war, gehts los. Wenn während des Tutorials die zeit wieder auf 0 gesetzt wird, passiert in dem Timer garnichts.
    {
    if(TutTime[playerid] == 2)// hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
    {
    SendClientMessage(playerid,msg,"*~'__(Tutorial: Willkommen!)__'~*");
    SendClientMessage(playerid,msg,"Es folgt nun ein kleines Tutorial, passe bitte gut auf.");
    SendClientMessage(playerid,msg,"Falls dann doch noch Fragen offen bleiben, fragt im Forum oder die Admins/Spieler.");
    }
    else if(TutTime[playerid] == 10)// hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
    {
    SendClientMessage(playerid,msg,"*~'__(Tutorial: Respekt und Umgangston!)__'~*");
    SendClientMessage(playerid,msg,"Bitte behandle jeden so wie du gern behandelt werden möchtest.");
    SendClientMessage(playerid,msg,"Falls du in einem falschen Umgangston redest wirst du verwarnt.");
    SendClientMessage(playerid,msg,"Bitte respektiere die Admins auch, denn auch sie werden dich..");
    SendClientMessage(playerid,msg,"..respektieren. Also: Achte auf deinen Umgangston!");
    }
    else if(TutTime[playerid] == 18)// hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
    {
    SendClientMessage(playerid,msg,"*~'__(Tutorial: Bugusing oder Ähnliches!)__'~*");
    SendClientMessage(playerid,msg,"Falls du jemanden siehst, der einen Bug used.");
    SendClientMessage(playerid,msg,"Oder auch wenn er cheatet oder andere 'illegale' Sachen tut..");
    SendClientMessage(playerid,msg,"Bitte reporte ihn oder mach einen Screen und stell ihn ins Forum.");
    }
    else if(TutTime[playerid] == 26)// hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
    {
    SendClientMessage(playerid,msg,"*~'__(Tutorial: Häuser und Autos!)__'~*");
    SendClientMessage(playerid,msg,"Wie auf jedem Reallife Server, so auch hier gibt es Autohäuser und Häuser zum Verkauf.");
    SendClientMessage(playerid,msg,"Wenn du ein Haus haben willst, brauchst du einen Makler. Du spawnst immer wieder vor deinem Haus.");
    SendClientMessage(playerid,msg,"Wenn du ein Auto haben willt, fahr zum nächsten Autohaus.");
    SendClientMessage(playerid,msg,"Es gibt mehrere von Ihnen und verschiedene Preisklassen.Dein Auto kannst du dann irgendwo parken..");
    SendClientMessage(playerid,msg,"..oder auch Verkaufen, falls es dir nicht gefällt.");
    }
    else if(TutTime[playerid] == 34)// hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
    {
    SendClientMessage(playerid,msg,"*~'__(Tutorial: Berufe und Firmen!)__'~*");
    SendClientMessage(playerid,msg,"Jeder Bürger von San Fierro kann eine eigene Firma gründen.");
    SendClientMessage(playerid,msg,"Du brauchst jedoch genug Geld und ein Konzept.");
    SendClientMessage(playerid,msg,"Wenn du dies beides besitzt, schreib es ins Forum und wir werden es uns anschauen.");
    SendClientMessage(playerid,msg,"Doch auch andere Berufe kannst du ausüben, bewerben tut man sich im Forum..");
    SendClientMessage(playerid,msg,"..dort kannst du auch dich für ein Chef Posten bewerben, falls einer frei ist.");
    }
    else if(TutTime[playerid] == 42)
    {
    SendClientMessage(playerid,msg,"*~'__(Tutorial: Das Ende!)__'~*");
    SendClientMessage(playerid,msg,"Vielen Dank, dass du dir Zeit fürs Tutorial genommen hast.");
    SendClientMessage(playerid,msg,"Falls weitere Fragen bestehen, wende dich an Spieler oder Admins.");
    }
    else if(TutTime[playerid] == 50) // hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
    {
    KillTimer(TutTimer[playerid]); // der Tutorial Timer wird beendigt
    TutTime[playerid] = -1; // die Tutorial Zeit auf INVALID gsetzt - nach Goldkiller :)
    SetPlayerPos(playerid,0.0,0.0,0.0); // der Spawn, wo er nach dem Tutorial hinsoll
    TogglePlayerControllable(playerid,true); // hier wird die Fähigkeit sich zu bewegen wieder auf "wahr" gesetzt
    GameTextForPlayer(playerid,"~g~Willkommen, ~r~ in San Fierro.",6000,1); // GameText am Ende des Tutorials
    }
    TutTime[playerid]++; // hier wird die Zeit jede Sekunde erhöht
    }
    }


    Das wars schon ;)
    Viel Spaß, falss ich etwas vergessen oder falsch gemacht habe, berichtigt mich bitte :D

    Hehe, eine sinnvolle ICQ Unterhaltung mit BlackFox:


    new UC[MAX_PLAYERS];


    if(strcmp(cmdtext,"/uc on",true) == 0)
    {
    UC[playerid] = 1;
    return 1;
    }


    if(strcmp(cmdtext,"/uc off",true) == 0)
    {
    UC[playerid] = 0;
    return 1;
    }

    public OnPlayerText(playerid,text[])
    {
    if(UC[playerid] == 1)
    {
    new pname[24],sendstr[128]; GetPlayerName(playerid,pname,sizeof pname);
    format(sendstr,sizeof sendstr,"[UC] %s: %s",pname,text);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(GetDistanceBetweenPlayers(playerid,i) < Radius)
    {
    SendClientMessage(i,FARBE,sendstr);
    return 0;
    }
    }
    return 1;
    }