Beiträge von Manniac

    Ich könnte immer die letzte .amx Version veröffentlichen. Mal schaun', wie es sich ergibt.


    Detective Shop ist soweit fertig.

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.



    http://youtu.be/QBwlSVVLeCY



    Maus wird (warum auch immer) nicht im Video angezeigt. Meinungen zu dem Shop Interface?

    Guten Abend.


    ich arbeite seit längerem an einem TTT-Script. TTT? Was soll denn das sein?
    TTT (= Trouble in Terrorist Town) ist ursprünglich eine Modifikation für das Spiel "Garrys Mod". Das Ziel des Spieles ist , alle "bösen" Terroristen ( = Traitor) zu eliminieren. Das Ziel der Traitor ist, alle anderen Terroristen zu eliminieren (Innocent = "normale Terroristen", Detective = Detektiv = Innocent)


    (http://ttt.badking.net/)



    Nun versuche ich, das ganze in SA:MP zu realisieren. Nachdem ich das Script soweit fertig habe, werde ich es zum Download anbieten. ( KOSTENLOS! )
    Deswegen hatte ich die Idee, das ganze in diesem Thread zu dokumentieren, damit ihr euch an der Entwicklung des Scripts beteiligen könnt. Sei es neue Ideen, Codes, Kritik oder Verbesserungsvorschläge & Wünsche. Ich versuche dann, das ganze so gut es geht umzusetzen.



    Ein paar Infos zu dem Script
    Das Script umfasst momentan 1007 Zeilen, beinhaltet 4 includes (ocmd, timer, GetObjectModel, a_samp) und 13Textdraws.



    Es wurden bereits folgende Systeme gescriptet:


    -Automatische Teamzuweisung
    (Danke an dieser Stelle nochmal an Sharpadox, der mir mit dem Code geholfen hat.)
    Es beginnt eine 20 Sekunden dauernde Aufwärmphase, in der sich die Spieler mit Waffen ausrüsten können.
    Danach wird jedem Spieler eine Klasse zugewiesen. ( Traitor, Detective oder Innocent ). Es kann maximal 2 Traitor und 1 Detective geben.
    Nun beginnt die 5 Minuten dauernde Runde.




    -Shop
    Die Klassen Traitor & Detective haben einen Shop, in dem sie sich besondere Items kaufen können, wie z. B die Healstation(Wenn man sich healt ertönt das Geräusch der Heal-Station aus HL2), eine Fake-Leiche, C4 ...
    Die Währung sind sog. Credits, welche man sich durch das Töten anderer Spieler verdienen kann.



    Spoiler anzeigen


    !NEU!
    Video
    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    -Bestätigen der Leiche
    Mit der Taste "N" kann man eine Leiche bestätigen & sie identifizieren. Man sieht den Namen des Spielers, dieTodesart & die Klasse.
    Der bestätigte Spieler wird nun als "Tot" in der Spielerliste angezeigt.


    -Spielerliste
    Die Spieler können sich durch das Drücken der "H" Taste eine Spielerübersicht anzeigen lassen, welche verschiedene Kategorien beinhaltet. ( Lebende Spieler, unbestätigte Tote, Tote).




    Sowie diverse kleinere Sachen, die ich vergessen habe. Ich schau gleich nochmal im Script nach.





    Das ist der momentane Stand des Scriptes. Sieht zwar wenig aus, steckt aber relativ viel Arbeit drin.


    -Grüße, Raven^


    /Edit1: Neue Fotos hinzugefügt, Text verbessert
    /Edit 2&3: Video hinzugefügt

    Guten Abend.


    ich arbeite seit längerem an einem TTT-Script. TTT? Was soll denn das sein?
    TTT (= Trouble in Terrorist Town) ist ursprünglich eine Modifikation für das Spiel "Garrys Mod". Das Ziel des Spieles ist , alle "bösen" Terroristen ( = Traitor) zu eliminieren. Das Ziel der Traitor ist, alle anderen Terroristen zu eliminieren ( Innocent = "normale Terroristen", Detective = Detektiv = Innocent)


    (http://ttt.badking.net/)



    Nun versuche ich, das ganze in SA:MP zu realisieren. Nachdem ich das Script soweit fertig habe, werde ich es zum Download anbieten. ( KOSTENLOS! )
    Deswegen hatte ich die Idee, das ganze in diesem Thread zu dokumentieren, damit ihr euch an der Entwicklung des Scripts beteiligen könnt. Sei es neue Ideen, Codes, Kritik oder Verbesserungsvorschläge & Wünsche. Ich versuche dann, das ganze so gut es geht umzusetzen.



    Ein paar Infos zu dem Script
    Das Script umfasst momentan 1007 Zeilen, beinhaltet 4 includes (ocmd, timer, GetObjectModel, a_samp) und 13 Textdraws.



    Es wurden bereits folgende Systeme gescriptet:


    -Automatische Teamzuweisung
    (Danke an dieser Stelle nochmal an Sharpadox, der mir mit dem Code geholfen hat.)
    Es beginnt eine 20 Sekunden dauernde Aufwärmphase, in der sich die Spieler mit Waffen ausrüsten können.
    Danach wird jedem Spieler eine Klasse zugewiesen. ( Traitor, Detective oder Innocent ). Es kann maximal 2 Traitor und 1 Detective geben.
    Nun beginnt die 5 Minuten dauernde Runde.


    -Shop
    Die Klassen Traitor & Detective haben einen Shop, in dem sie sich besondere Items kaufen können, wie z. B die Healstation(Wenn man sich healt ertönt das Geräusch der Heal-Station aus HL2), eine Fake-Leiche, C4 ...
    Die Währung sind sog. Credits, welche man sich durch das Töten anderer Spieler verdienen kann.


    -Bestätigen der Leiche
    Mit der Taste "N" kann man eine Leiche bestätigen & sie identifizieren. Man sieht den Namen des Spielers, die Todesart & die Klasse.
    Der bestätigte Spieler wird nun als "Tot" in der Spielerliste angezeigt.


    -Spielerliste
    Die Spieler können sich durch das Drücken der "H" Taste eine Spielerübersicht anzeigen lassen, welche verschiedene Kategorien beinhaltet. ( Lebende Spieler, unbestätigte Tote, Tote).


    Sowie diverse kleinere Sachen, die ich vergessen habe. Ich schau gleich nochmal im Script nach.





    Das ist der momentane Stand des Scriptes. Sieht zwar wenig aus, steckt aber relativ viel Arbeit drin.


    -Grüße, Raven^

    Der 2. Satz ist entscheident, im Spectator Mode, kann der Key Nicht abgefragt werden


    Ist nicht der Fall.


    Oder printe auch mal vor der Bedingung, ob er die Taste erkennt, da vielleicht der Callback dann nicht mehr erkannt wird...kp wieso vielleicht wegen irgendeinem Hook


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    printf("%d",newkeys);


    Output:
    [01:43:09] 262144 // Erste mal "H"
    [01:43:09] 0 // h[playerid]
    [01:43:09] 0 // 2. mal "H"


    Was mir gerade auffällt: Das HUD verschwindet. Ist das normal? Kommt ja nur, wenn der Spieler specatet, was aber nicht der Fall ist, da ich TogglePlayerSpectating nicht in meinem Code habe.


    Ich wede eben crashdetect laufen lassen.
    ^Zeigt auch nichts.

    Abend,


    Ich lass mit der Taste "H" verschiedene Textdraws anzeigen.
    Wenn man nun ein 2. Mal "H" drückt, sollten sie verschwinden. Aber das ganze funktioniert nur ein einziges Mal. Die Taste wird einfach nicht mehr erkannt.


    else if(newkeys & KEY_CTRL_BACK) //"H" Stats
    {
    printf("%d",h[playerid]);
    if(h[playerid] == 1)
    {

    TextDrawHideForPlayer(playerid,Box);
    TextDrawHideForPlayer(playerid,Credit);
    TextDrawHideForPlayer(playerid,Line);
    TextDrawHideForPlayer(playerid,Line2);
    TextDrawHideForPlayer(playerid,Next);
    TextDrawHideForPlayer(playerid,Back);
    PlayerTextDrawHide(playerid,Status[playerid]);
    PlayerTextDrawHide(playerid,Player[playerid]);
    h[playerid] = 0;
    }
    else {h[playerid] = 1;

    /*
    new currentpage[MAX_PLAYERS];
    new Text:Box;//hintergrund
    new Text:Credit;//
    new Text:Status;//
    new Text:Line;//trennlinie
    new Text:Player;/
    new Text:Line2;//trennlinie
    new Text:Next;//n#chste seite
    new Text:Back;//voherige Seite
    */
    TextDrawShowForPlayer(playerid,Box);
    TextDrawShowForPlayer(playerid,Credit);
    PlayerTextDrawShow(playerid,Status[playerid]);
    TextDrawShowForPlayer(playerid,Line);
    PlayerTextDrawShow(playerid,Player[playerid]);
    TextDrawShowForPlayer(playerid,Line2);
    TextDrawShowForPlayer(playerid,Next);
    TextDrawShowForPlayer(playerid,Back);
    SelectTextDraw(playerid, 0x00FF00FF);
    currentpage[playerid] = 1;


    //... hier kommen nur noch ein paar Zeilen. Ne Schleife und n' format. Daran sollte es nicht scheitern.



    }}



    Zuerst wird h[playerid] richtig ausgegeben. Wenn ich die Taste ein 2x drücke, wird nichts mehr ausgegeben.
    Jemand ne' Idee? :S

    Schnelle Methode, um Adminränge o. Ä zu erstellen und zu ändern, ohne 1000x den einzelnen Rang suchen & ändern zu müssen.


    static const names[][] = {
    "User","Supporter","Admin","Projektleiter","Scripter"
    };


    printf("%s",names[data[playerid][adminrang]]);


    Wurde bestimmt schon 1000x gepostet, aber egal^^



    Hier noch ein anderer Code
    stock SetTimeForVar(&var, addSeconds) //Speichert die aktuelle Zeit + addSeconds in 'var'
    {
    var = gettime() + addSeconds; // var = aktuelle Zeit in Sekunden + x Sekunden
    return 1;
    }


    stock GetRestTimerForVar(var) // gibt die restzeit in Sekunden an bis die gespeicherte Zeit in 'var' erreicht wurde
    {
    if(var <= gettime()) return 0; // zeit vorbei
    return var - gettime(); //restliche zeit


    //Usage


    new timer;
    SetTimeForVar(timer, 317); // 317 = 5 Minuten 17 Sekunden


    // an einem anderen Zeitpunkt,
    if(GetRestTimerForVar(timer) == 0) print("Die Zeit ist Abgelaufen!");
    else printf("Es sind noch %d Sekunden bis die Zeit erreicht wurde", GetRestTimerForVar(timer));
    }


    Code ist nicht von mir, müsste - glaube ich - von d0ma: sein. ( Ich hoffe du hast nichts dagegen, dass ich den Code poste)

    Wenn dann "33".
    17+15+NullTerminator



    Aber ich hatte die Lösung ja schon gepostet..



    /Edit. LeijaT:
    Das geht noch ein bisschen kürzer :P
    SendClientMessage(playerid , -1, (perso[playerid] == 0) ? ("Personalausweis: Nein") : ("Personalausweis: Ja"));