Beiträge von Holdont

    nicht getestet oder sonstwas sollte aber funzen:


    for(new i=0;i<MAX_VEHICLES;i++)
    {
    SetVehicleHealth(i,1000.0);
    }


    for schleifen können sehr viel elegeanter geschrieben werdenm, aber für deine Verhältnisse reicht diese.(Und ich mag diese am meisten weil einfach)

    Hab nun den Vorschlag von M@tz3 aufgenommen. Und einjeder kann einstellen ob Fahrzeuge beim zerstören zerstört bleiben sollen.


    Ich habe darüber hinaus ein HTTP Changelog eingeführt und man kann unter /info nun die Features von aktuellen Versionen
    verfolgen.

    Erklärung: 10/10
    Super verständlich erklärt. Das man mit print(string[1]) einen String ab der Position 1 ausgeben kann wusste ich z.B. nicht :)


    Verbesserungs Vorschläge:
    Der Link unten ist kaputt. Bei der Erklärung der Boolean Vars hast du bei der Erklärung nur einen Grund angegeben. :S
    static Globale und locale Variablen könntest du hier vielleicht auch erklären ;)

    Auszug aus Ylesses plugin (link)


    Zitat

    Z(string)[length] Invalid optional string
    z(string)[length] Deprecated optional string
    S(string)[length] Optional string
    s[length] String


    Was ich mir auch noch vorstellen könnte ist das du beim eingeben der ID im Spiel als 1. Parameter irgendwie die 0 angegeben hast?(Falscher Name?)

    Das kann nicht so schwer sein:


    bei OnPlayerClickPlayer werden die Parameter playerid und clickedplayer(oder sowas) übergeben.


    Du brauchst nun 1 Variable(Array) new fordert[MAX_PLAYERS];


    bei OnPlayerConnect: fordert[playerid]=-1;


    Wenn nun ein Spieler einen anderen herrausfordert(OnPlayerClickPlayer) fragst du ab ob der schon herrausgefprdert wurde usw.


    Dann bei OnPlayerClickPlayer ShowPlayerDialog(cklickedplayerid usw


    Die Menü Struktur bekommst du sicherlich hin

    Ich vermute Mal, dass das erste ein Countdown sein soll und das 2. dann der Startschuss.(Jedenfalls siehts dannach aus)
    forward RaceCount(playerid);
    public RaceCount(playerid)
    {
    if(rcount > 0)
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(vRacer[i] == 1)
    {
    new str[128];
    format(str,sizeof(str),"~r~%d",rcount);
    GameTextForPlayer(i,str,1050,4);
    rcount--;
    return 1;
    }
    }
    return 1;
    }
    else
    {
    KillTimer(rtimer);
    for(new ri=0; ri<MAX_PLAYERS; ri++)
    {
    if(vRacer[ri] == 1)
    {
    GameTextForPlayer(ri,"~r~GOOOOOOOOOOOOOOO!!!",1050,4);
    TogglePlayerControllable(ri,1);
    ClientLanguageText(ri,COLOR_RED,"Du hast 5 Minuten Zeit bis das Rennen automatisch beendet wird.","You have 5 minutes until the race will automatically end!");
    retimer = SetTimerEx("Rends",300000,false,"i",playerid);
    }
    }
    }
    return 1;


    Dieser Code ist ansich nicht richtig, da bei jedem Spieler der durchgegangen wird(und am Rennen teilnimmt) der Count runtergeht.
    Du möchtest aber vermutlich dass es nur alle Sekunde runterzählt oder? so ists richtig:


    forward RaceCount(playerid);
    public RaceCount(playerid)
    {
    if(rcount > 0)
    {
    new str[128];//Variablen vor der for schleife deklarieren!
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(vRacer[i] == 1)
    {

    format(str,sizeof(str),"~r~%d",rcount);
    GameTextForPlayer(i,str,1050,4);
    continue;// wenn dann dieses ist aber eigentlich nicht notwendig!
    }
    }
    }
    else
    {
    KillTimer(rtimer);
    for(new ri=0; ri<MAX_PLAYERS; ri++)
    {
    if(vRacer[ri] == 1)
    {
    GameTextForPlayer(ri,"~r~GOOOOOOOOOOOOOOO!!!",1050,4);
    TogglePlayerControllable(ri,1);
    ClientLanguageText(ri,COLOR_RED,"Du hast 5 Minuten Zeit bis das Rennen automatisch beendet wird.","You have 5 minutes until the race will automatically end!");
    retimer = SetTimerEx("Rends",300000,false,"i",playerid);
    }
    }
    }
    return 1;


    //edit 1: Fehler behoben


    Ansich ist der code auch falsch, da du den playerid Parameter gar nicht brauchst :)

    blablabla Reallife Server - Get a Life!
    blablabla Reallife Server - Stop Gaming start living!
    blablabla Reallife Server - Your life, our server!


    alles anspielungen darauf, dass derjenige zu lang vorm Pc hockt ^^

    Meines Wissens ohne nicht extra dafür programmiertes plugin möglich. Tut mir Leid :S


    Du kannst den debugger aber mit mysql_debug(0); ausschalten und dann später wieder einschalten

    Was du brauchst:


    Einen Textdraw ( Balken oder Schrift...)


    , am besten ein stock bzw public zum berechnen der Geschwindigkeit (oder selber scripten)
    und einen Timer, der den public Tach aufruft(wo alle Spieler durchgegangen werden und geguckt wird ob diese
    online + in einem Fahrzeug sitzen)

    An deiner Stelle würde ich es mit einem Textdraw machen, da du sonst keinen anderen GameText mehr nutzen kannst.


    Wie du Textdraws erstellst und veränderst kannst du in verschiedenen Tutorials nachlesen ;)

    NOCHMAL:


    Du kannst keine Textdraws in Ongammode init createn, die für einzelne Spieler created werden.


    Setze den Code unter OnPlayerConnect, und ersetzte das i durch playerid

    Ich würd mal vermuten, dass bei Tacho =TextdrawCreate das [i] fehlt??


    btw Nicht sicher ob du ohne Spieler online ein Textdraw createn solltest..(Kannst du auch bei onplayer connect machen ;)

    Für mich sieht das:


    C:\Dokumente und Einstellungen\Administrator\Desktop\Neuer Ordner\gamemodes\Selfmade.pwn(292) : error 004: function "OnPlayerClickPlayer" is not implemented
    C:\Dokumente und Einstellungen\Administrator\Desktop\Neuer Ordner\gamemodes\Selfmade.pwn(297) : warning 225: unreachable code


    nach einem Klammer Fehler aus. Such die fehlende Klammer :D

    Ansich finde ich ist das ne Gute Idee. Man könnte dann auch auf dieses Gamemode zugeschnittene Filterscripts entwerfen und dadurch viele "extras" einbinden.


    Fänd ich ne großartige Idee. Wenn daraus was wird würde jch mich freuen das Script mit zu entwickeln :)

    Maddin hat eingutes Mysql Tutorial geschrieben. schau dir das doch mal an.. (Ausüge:)

    stock mysql_ReturnPasswort(Name[])
    {
    new query[130], Get[130];
    mysql_real_escape_string(Name, Name);
    format(query, 128, "SELECT passwort FROM accounts WHERE Name = '%s'", Name);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(Get);
    mysql_free_result();
    return Get;
    }


    Von diesemTutorial:
    Tutorial Link

    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {


    DieseZeile in OnPlayerState musst du entsprechend ändern. Du kannst nach

    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == Model Des(Boot/FLug etc..)


    Ich würde dir empfehlen stocks für Flugzeug und Boot Models zu schreiben, die überprüfen pb das übergebene Model ein solches Model ist:)