Beiträge von Goldkiller

    Man kann es sicherlich erhöhen,nur wird es mit je mehr Objekten immer unstabiler und die Gefahr das es mal crasht steigt.Bis 2048 sollte es wohl stabil laufen,darüber hinaus sollte es zu öfteren Crashes kommen.

    Wie wäre es wenn du dich an ein Admin Filterscript machst ?
    Dann müsste man sich nicht immer als Rcon Admin einloggen um jemanden zu jailen ;).


    Der Code sieht jedenfalls sauber aus.Hast alles ordentlich eingerückt.


    SendClientMessageToAll(COLOR_GREEN,"Der wo Gejailt war ist aus dem Knast raus(Gefengnis)");

    Fände es so besser:

    new str[100],PlayerName[24];
    GetPlayerName(unjailid,PlayerName,24);
    format(str,100,"%s wurde aus dem jail entlassen",PlayerName);
    SendClientMessageToAll(COLOR_GREEN,str");

    So ähnlich hast du es ja auch in deinem Job Filterscript :thumbup: .


    ...
    Weiter so ;)

    Bist du sicher das du Züge meinst?Die sind ganz normal betretbar wie im Single Player auch (F-Taste)
    Könnte mir vorstellen das du die Tram meinst (Der kleine 'Zug' der durch San Fierro fährt)


    public timer1()
    {
    for(new pid=0;pid<MAX_PLAYERS;pid++)
    {
    if(IsPlayerConnected(pid))
    {
    if(IsPlayerInArea(pid, 1205.5015, -848.337, 1316.8862,-740.3098 ))
    {
    if(!IsPlayerAdmin(pid)) //Es soll doch eine Admin Zone sein...Also wenn der Spieler nicht Admin ist ;)
    {
    SetPlayerPos(pid, 1958.3783, 1343.1572, 15.3746);
    }
    }
    }
    }
    }


    //**********
    stock IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy) //By Alex "Y_Less" Cole
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    if (x > minx && x < maxx && y > miny && y < maxy) return 1;
    return 0;
    }




    So sollte es funktionieren.Du hast wohl die Funktion "IsPlayerInArea" nicht in deinem Script :P

    Na gut,jeder fängt mal klein an :pinch:


    In deinen Commands erstellst du immer "id,ActionName[24]".Du verwendest es aber nie.Ist
    also quasi um sonst da.
    Der Command /artzt müsste richtig /arzt heissen ;).
    Was mich auch noch stört,ist es das meistens bei solchen Filterscripts wie deinem
    (Ja,gab schon vor dir welche die auf so eine Idee kamen ;P) man sogar den Beruf den man zuvor
    schon gewählt hat,per cmd nochmal wählen kann.
    Ich zeig dir mal wie ich es für besser halte.




    //Nach oben in dein Filterscript
    new Beruf[MAX_PLAYERS];
    #define ARBEITSLOS 0
    #define POLIZEI 1
    #define ARTZ 2
    #define PILOT 3
    //etc
    //Commands
    if (strcmp(cmdtext, "/arbeitslos", true) == 0) {
    if(Beruf[playerid]!=ARBEITSLOS) { // Checkt ob er schon Arbeitslos war
    new string[256],PlayerName[24]; GetPlayerName(playerid,PlayerName,24);
    format(string,256,"%s hat keinen job mehr!",PlayerName); SendClientMessageToAll(COLOR_RED,string);
    SpawnPlayer(playerid);
    Beruf[playerid]=ARBEITSLOS;
    }
    else {
    SendClientMessageToAll(COLOR_RED,"Du bist bereits Arbeitlos");
    }
    return 1;
    }
    if (strcmp(cmdtext, "/polizei", true) == 0) {
    if(Beruf[playerid]!=POLIZEI) {
    new string[256],PlayerName[24]; GetPlayerName(playerid,PlayerName,24);
    format(string,256,"%s ist nun Polizist!",PlayerName); SendClientMessageToAll(COLOR_GREEN,string);
    SetPlayerColor(playerid, COLOR_BLUE);
    GivePlayerWeapon(playerid, 22, 200);
    SetPlayerPos(playerid, 1543.5017,-1639.5959,6.2188);
    SetPlayerSkin(playerid, 280);
    Beruf[playerid]=POLIZEI;
    }
    else {
    SendClientMessageToAll(COLOR_RED,"Du bist bereits Polizist");
    }
    return 1;
    }

    Da es ein Filterscript ist,kannst du "OnGameModeInit()" und "OnGameModeExit()" nicht verwenden.
    Versuch es mal neu,in dem du alles was unter "OnGameModeInit()" hast unter "OnFilterScriptInit()" einfügst.
    Das Gleiche machst du auch mit "OnGameModeExit()".


    Nebenbei,dein Command solltest du ändern.Du hast nämlich "cmd" neu definiert und vergleichst es mit "/auswahl"."cmd" ist aber ein leerer String.

    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(cmdtext, "/auswahl", true) == 0) {
    ShowMenuForPlayer(haupt,playerid);
    return 1;
    }


    return 0;
    }

    Vorne Weg,das Filterscript benötigt dini falls ihr es selber compilen wollt.
    Download dini
    Was macht das Filterscript?
    Nicht wirklich viel.Vielleicht kennt ihr vom ga Server die Announce Commands wie zB "!afk","!hi" etc. Es wird eine Nachricht in den Chat geschrieben.Da es mir zu blöd war sowas immer in den GameMode zu schreiben und immer neu zu compilen,amx auszutauschen [...] habe ich ein FS gemacht wo man in ein Filei (cmds.ini) schreiben kann was für eine Nachricht bei welchem text erscheinen soll.
    Hier ein kleines Beispiel:

    Zitat


    !Test=Just a Test right :P ?
    $Bla=bla bla bla bla


    Schreibt jmd "!test" in den Chat erscheint "Just a Test right :P" in einer per zufall ausgesuchten Farbe im Chat.Bei "$Bla" erscheint "bla bla bla bla"...Das ganze hat einfach den Vorteil das man Commands erstellen kann während der Server läuft ;).
    Ich hab es so eingestellt das man Announce Commands mit "! und $" machen kann.Natürlich kann man noch viele andere einstellen.Einfach mal im Source Code etwas suchen.


    Vielleicht kann das FS ja jemand gebrauchen :/
    hf


    #include <a_samp>


    new Menu:geschenk;
    #define COLOR_RED 0xAA3333AA
    #define COLOR_GREEN 0x33AA33AA


    public OnFilterScriptInit() {
    print("___________________________________");
    print("| Waffen Geschenk |");
    print("| Version 1.0 |");
    print("| |");
    print("| (c) Hayssen Vampyrum 2007 |");
    print("|_________________________________|");
    print(" 16.09.07");
    }


    public OnFilterScriptExit() {
    //
    }


    public OnGameModeInit()
    {
    geschenk=Menu:CreateMenu("~w~Waffen Geschenk",1,130,150,300);
    SetMenuColumnHeader(geschenk,0,"Such dir ein Geschenk aus ^^");
    AddMenuItem(geschenk,0," Messer");
    AddMenuItem(geschenk,0," Schaufel");
    AddMenuItem(geschenk,0," Tränen Gas");
    AddMenuItem(geschenk,0," Feuerlöscher");
    return 1;
    }


    public OnPlayerSelectedMenuRow(playerid, row)
    {
    new Menu:Now;
    Now=Menu:GetPlayerMenu(playerid);
    if(Now==geschenk) {
    TogglePlayerControllable(playerid,false); // Muss hier nicht "true"hin?Nach der Auswahl sollte er sich doch wieder bewegen können.
    // ShowMenuForPlayer(geschenk,playerid); Hier liegt der Fehler.Du öffnest das Menu nochmal nachdem etwas im Menu geöffnet wird.
    switch(row) {
    case 0: {
    SendClientMessage(playerid,COLOR_RED,"Waffen geschenk");
    GivePlayerWeapon(playerid, 4, 1);
    SendClientMessage(playerid, 0xAA3333AA, "Du hast das Messer genommen...");
    SendClientMessageToAll(0x33AA33AA, "Jemand hat ein Messer genommen...");
    }
    case 1: {
    SendClientMessage(playerid,COLOR_RED,"Waffen geschenk");
    GivePlayerWeapon(playerid, 6, 1);
    SendClientMessage(playerid, 0xAA3333AA, "Du hast die Schaufel genommen...");
    SendClientMessageToAll(0x33AA33AA, "Jemand hat die Schaufel genommen...");
    }
    case 2: {
    SendClientMessage(playerid,COLOR_RED,"Waffen geschenk");
    GivePlayerWeapon(playerid, 17, 250);
    SendClientMessage(playerid, 0xAA3333AA, "Du hast das Tränen Gas genommen...");
    SendClientMessageToAll(0x33AA33AA, "Jemand hat das Tränen Gas genommen...");
    }
    case 3: {
    SendClientMessage(playerid,COLOR_RED,"Waffen geschenk");
    GivePlayerWeapon(playerid, 42, 1);
    SendClientMessage(playerid, 0xAA3333AA, "Du hast dir den Feuerfoescher genommen...");
    SendClientMessageToAll(0x33AA33AA, "Jemand hat den Feuerfoescher genommen...");
    }
    }
    }
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    TogglePlayerControllable(playerid,false);
    ShowMenuForPlayer(geschenk,playerid);
    return 1;
    }


    public OnGameModeExit()
    {
    DestroyMenu(geschenk);
    return 1;
    }

    Schön und gut wenn du Tutorials erstellst aber solltest du dich dafür nicht etwas besser auskennen?
    zB wofür steht hier

    Code
    if (strcmp("/befehl", cmdtext, true, 10) == 0)

    ...die 10 ?


    Und wieso benutzt du hier

    Code
    if(strcmp(cmdtext, "/me", true)==0) {

    die "10" oder was auch immer nicht :/ ?
    Glaube nur ungern das der /me cmd von dir ist ;)


    Nimms' nicht böse,will ja nur helfen :cursing:

    Und das ist zu schwer für dich 0o?
    Das heisst doch nur das nicht richtig eingerückt wurde...Kein Script Fehler,es funktioniert trotzdem 100%.

    AddStaticPickup funktioniert nur in OnGameModeInit oder OnFilterScriptInit


    CreatePickup ist der mehr dynamisch.Die kannst du zB per cmd erstellen.Ich glaube das man die Pickups mit "createpickup"erstellt wurden wieder zerstören kann,(destroypickup) und die mit "addstaticpickup" nicht.

    Nicht ausprobiert...Habe keine Lust Kordinaten zu sammeln ;P

    forward Area51Check();


    public OnGameModeInit()
    {
    SetTimer("Area51Check",1000*1,1); //jede Sekunde wird gecheckt.....
    return 1;
    }


    stock IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy) //By Alex "Y_Less" Cole
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    if (x > minx && x < maxx && y > miny && y < maxy) return 1;
    return 0;
    }




    public Area51Check() {
    for(new i;i<MAX_PLAYERS;i++) {
    if(IsPlayerInArea(i,minX,maxX,minY,maxY)){ //minX,maxX,minY,maxY sind die Cordinaten.Musst selber eintragen ;)
    //Ist in Area51 also nix machen,oder?
    }
    else { //nicht in area51
    new Float:h;
    GetPlayerHealth(i,h);
    SetPlayerHealth(i,h-15.0);//zieht 15hp ab
    GameTextForPlayer(i,"~r~ Get Back into ~y~ Area51",3000,4);
    }
    }
    return 1;
    }


    Bei deinem Pickup problem weiss ich nicht.Eigentlich sollte es respawnen.


    Ja ne ist klar xD
    Die Objekte werden für alle Player gleich gestreamt,nicht für jeden einzelnt ...
    Es kommt bei dem ~150 Objekt Limit auch auf den Speicher an den ein Object benötigt...Ist auch nicht anders bei dem Vehicle Model Limit.

    Du redest wirres Zeug, das Objektelimit ist erstens schonmal garnicht auf exakt 150
    Zweitens würde es absolut überhaupt keinen Sinn machen das Objektelimit mit der Anzahl der Spieler zu verknüpfen, da die Ressourcen so oder so auf dem Server verteilt werden müssen.


    ++