Beiträge von Jason_Gregory

    Um den Score zu ermitteltn gibt es


    GetPlayerScore(playerid);


    Wenn du den nun in einer If Anfrage abfragen möchtest, sollte das so aussehen



    OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(!GetPlayerScore(playerid) == X)
    {
    Fahrzeugid = GetPlayerVehicleID(playerid);
    if (Fahrzeugid == X)
    {
    SendClientMessage(playerid, Farbe, "Du kommst hier net rein");

    if(newstate == PLAYER_STATE_DRIVER && GetVehicleModel(GetPlayerVehicleID(playerid)) == 593)
    {
    if(PlayerInfo[playerid][pFlugschein] == 1)
    {
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_ROT,"Du hast kein Flugschein");
    RemovePlayerFromVehicle(playerid);
    }
    return 1;
    }
    }

    Also ein "Runterschubsderby" kannst du praktisch überall machen, auf Hochhäuser zb.
    Dort stellst du dir ein paar AUtos zuecht die möglichst viel Schaden einstecken können.
    Von unten solltest du einen Icon setzen damit deine Spieler drauf aufmerksam werden.
    Hm...die Sache mit dem ausscheiden ist auch ganz simpel du überprüfst einfach ob sich ein Spieler zb. mit PlayerToPoint
    noch im Derby befindet.


    If(!PlayerToPoint(12.0, playerid, DerbyX, DerbyY, DerbyZ)) //Bsp. Radius 12.0
    {
    //Hier was passieren soll wenn sich der Teilnehmer nicht im Radius befindet
    }


    Wünsch dir viel Glück dabei

    Sa-mp funktioniert nach wie vor, es gibt nur Weiterleitungsschwierigkeiten seitens des Domain Anbieters.


    Neuer Link


    http://sa-mp.tk/


    Allerdings liegt das Forum auch auf der Sa-mp.com Domain also nicht aurufbar, genau wie alle anderen Features
    wegen MySQL Problemen

    TogglePlayerControlable ist auch eine Option - siehe oben - es unterbricht alle AKtionen, so auch das Einsteigen.
    So viel du es gemacht hast funktioniert es natürlich auch, aber einfacher ist es sein RemovePlayerFromVehicle
    mit TogglePlayerControlable zu ersetzen. Oder den Spieler beleibig weit wegtelepotieren^.

    Alles in allem kannst du es so verwenden indem du es unter einen public-Timer setzen
    Oder du machst es so...



    if(IsPlayerInAnyVehicle(playerid))
    {
    if(PlayerInfo[playerid][pCarschein] == 1)
    {
    }
    else
    {
    SendClientMessage(playerid,COLOR_ROT,"Du hast kein Führerschein");
    TogglePlayerControllable(playerid, true);
    }
    }


    Erklärt sich von selbst

    Ich finde wenn man tut sich all. leichter wenn man Vorkenntnisse hat in C++
    Alles kann man natürlich auch nicht übernehmen aber zb. If Abfragen
    lassen sich dann leichter nachvollziehen, ich selber hab mich leichter eingewöhnt,
    als vermutlich andere


    Zitat

    Pawn ist ja so ähnlich, wie Pawn


    Geh ich von aus :P

    Ich versteh nicht ganz was du da schreibst^
    Aber es ist nicht möglich, das Spieler den Binco Icon nicht sehen.


    Wieso ?


    Ganz einfach der Binco ist ein Interior das sich Z-Koordinate +1000 im Himmel befindet.
    Man muss sich da so vorstellen, man betritt den Binco und wird 1.000 Sa-mp Meter nach oben geportet
    + SetPlayerInterior. Du müsstest die Map Icons Streamen damit man sie nur in der Höhe des Bincos sehen kann :sleeping:


    Die Cam Position verstellst du mit


    SetPlayerCameraPos(playerid, X, Y, Z);

    Vermutlich liegt das an nen SetPlayerMoney Anti Cheat System^
    Das berücksichtigt Geld das man sich Ingame verdienen kann nicht.


    Außer du nimmst dir das Interior und baust dir dafür ne Variable
    Benutzt du sowas in der Richtung ?

    Zitat

    na hättest du dafür ne andere lösung wie man es besser machen kann?


    /edit ja ich habe die schranken in meinem gm drinnen


    Einen Timer mit Parametern, SetTimerExverwenden anstatt SetTimer.
    Ich hab vor einiger Zeit nen Threat mit hilfreichen Tips gesehen, dort gabs auch ne Diskusion über Timer.
    Mal sehen ob ich den finde.

    Ändert leider nichts an der Cpu Leisung :sleeping:
    Ich will dir dein Filterscript nicht mies machen, den das wichtigste ist nach wie
    vor das sich jemand Mühe gibt.


    Zitat

    //edit ich teste den gm schon mehrere wochen auf meinen homerechner hatte noch nie problem mit meiner cpu


    Ein Gamemode ? Eher ein Filterscript :wacko:
    Du musst nur verstehen, das der Großteil hier Godfather verwendet - das an sich auch wieder zig Timer hat - und ein 20er Interval ist nichts was man gutheißen kann.
    Nach Everest verbraucht er während des Öffnens und Schließen rund 70% CPU.
    Intel Dual Core 1.8 Ghz

    Nja vielleicht hat hier einfach jeder Brights Kommentar übersehen, aber sowas


    SetTimer("SchrankeCloseLS", 20, 1);


    ist wohl kaum erste Klasse. Auf dem ersten Blick eine tolle Sache, aber wozu den Server für eine
    Schranke schädigen ?


    Nur wer genau hinsieht, vermeidet Fehler.

    Klar weiß ich das :P
    Nur kenn ich das Moderntopia nicht.
    Hab es dir mal auf PlayerToPoint umgeschrieben

    dcmd_beantragen(playerid, params[])
    {
    #pragma unused params
    if(!PlayerToPoint(2.0, playerid, 360.0612,161.7672,1008.3828)
    {
    SendClientMessage(playerid, Farbe, "Du musst dich an der Stadthalle befinden, um Arbeitslosengeld zu beantragen!");
    return 0;
    }
    if(Arbeitslosengeld_v1[playerid] == -2)
    {
    SendClientMessage(playerid, Farbe, "Du bist nun als Arbeitloser gemeldet");
    Arbeitslosengeld_v1[playerid] = -1;
    }
    else
    {
    SendClientMessage(playerid, Farbe, "Du bist bereits Arbeitlos - doppelt gibts hier nix");
    }
    }
    return 1;
    }



    Wie speicherst du deine Daten den ab ?
    Dini, Standart Godfather System oder ein anderes Datenbank System ?
    Hab dir hierschonmal eine Basis geschrieben


    Wenn du das mit dem Icon und der Statthalle möchtest, müsstest du uns die Koordinaten geben, also
    Ingame [/Save Notiz] dann in deinen Grand Theft Auto Ordner SavedPositions.txt auslesen und hier rein posten.


    new Arbeitslosengeld_v1[MAX_PLAYERS];


    #define Arbeitlosengeld 1000 //So viel bekommt der gute :sleeping:
    #define Arbeitslosenzeit 600000 // Eine Stunde entspricht 600.000
    #define Farbe 0xAFAFAFAA


    forward Arbeitlosengeldcheck();


    //Unter OnGamemodeinit
    SetTimer("Arbeitlosengeldcheck", Arbeitlosenzeit, 1);


    //Unter OnPlayerConnect
    Arbeitslosengeld_v1[playerid] = -2;


    //Unter OnPlayerCommandText
    dcmd(beantragen, 10, cmdtext);


    //Wohin du willst, außerhalb von Callbacks und Publics


    dcmd_beantragen(playerid, params[])
    {
    #pragma unused params
    if(Arbeitslosengeld_v1[playerid] == -2)
    {
    SendClientMessage(playerid, Farbe, "Du bist nun als Arbeitloser gemeldet");
    Arbeitslosengeld_v1[playerid] = -1;
    }
    else
    {
    SendClientMessage(playerid, Farbe, "Du bist bereits Arbeitlos - doppelt gibts hier nix");
    }
    return 1;
    }


    public Arbeitlosengeldcheck()
    {
    for(new rs=0; rs<MAX_PLAYERS; rs++)
    {
    if(Arbeitslosengeld_v1[rs] == -1)
    {
    GivePlayerMoney(rs, Arbeitlosengeld );
    SendClientMessage(rs, Farbe, "Hier du Arbeitloses Stück Scheisse :D - der Staat denkt an dich");
    }
    }
    }