Beiträge von Goldkiller

    Das machst du entweder mit DUDB,Anleitung >> Funktions Beschreibungen <<
    oder DINI >> Funktions Beschreibungen <<
    DUDB ist für ein Account System gedacht,DINI eher nicht auch wenn man damit ebenfalls ein Account Systen aufbauen kann.
    Dini:

    new name[MAX_PLAYER_NAME]
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    if(!dini_Exists(name)) {
    dini_Create(name);
    }
    dini_IntSet(name,"WelcherEintrag",5); //
    dini_Set(name,"Was","Irgendwas"); //

    Falls du DUDB für ein Account System benutzten willst,ein kleines Tutorial findest du hier >> Klick <<

    Zitat

    drin im Server


    Im Server gibt es nicht,auf dem Server schon.

    Zitat

    ALSO SCHNELL ANTWORTEN DAS IST SOLANGSAM DOOF WENN DIE IP SICH IMMER ÄNDERT!!


    Das ist normal.
    Mit No-IP kannst du nur auf IP's verlinken.Falls du jetzt Marcel9.no-ip hast und das tool am laufen link Marcel9.no-ip auf deine aktuelle IP.
    Deine IP kann sich aber oft ändern,zB nach jedem Router neustart.

    Hast du das IRC Plugin überhaupt schon "installiert"?
    Cross-compatible IRC plugin v1.1 - Download

    Zitat

    Jacob
    How to install
    First, download the package from the link at the bottom of this post. You may either compile the project yourself (I have provided makefiles for both windows and Linux) or use the already-compiled libraries in the plugins directory.


    * Plugin: copy irc.dll (or irc.so if you're on Linux) to your /plugins directory.
    * Include: copy a_irc.inc to your /pawn/includes directory.
    * Example filterscript: copy ircFS.amx and ircFS.pwn to your /filterscripts directory.


    Dazu kommt noch dass du in der server.cfg das Plugin lädst,schreib in die Server.cfg "plugins irc.dll" oder "plugins irc.so" falls du einen Linux Server hast.



    public ircOnUserJoin(conn, channel[], user[])
    {
    new string[128];
    format(string,sizeof(String),"IrcBot: %s hat den Channel %s betreten",user,channel);
    SendClientMessageToAll(FARBE,String);
    return 1;
    }
    InGame schreiben kann der Bot nicht wirklich,du machst das ganz Normal mit SendClientMessageToAll

    Auszug aus /gotod

    SendClientMessage(playerid,red,"*** Der Administrator hat sich zu dich Gebeamt");
    new Float:x,Float:y,Float:z;
    GetPlayerPos(id,Float:x,Float:y,Float:z);
    SetPlayerPos(id,Float:x,Float:y,Float:z);
    printf("id is %d",id);

    Da stimmt wohl was nicht ;)

    SendClientMessage(id,red,"*** Der Administrator hat sich zu dich Gebeamt");
    new Float:x,Float:y,Float:z;
    GetPlayerPos(id,x,y,z);
    SetPlayerPos(playerid,x,y,z);
    printf("id is %d",id);


    Auszug aus /givecashd

    SendClientMessage(playerid,red,"*** Der Administrator hat dir 1000$ gegeben!");
    GivePlayerMoney(id,givecashd);
    printf("id is %d",id);

    Die Nachricht wird an den Falschen Spieler verschickt ;).Ist bei vielen Anderen Commands auch der Fall


    Ein Tipp für /jetpack,benutzt einfach

    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_USEJETPACK);

    anstatt CreatePickup.Benutze es auch so in meinem AdminFS (Signatur falls dir mal angucken willst :p)



    public DisableAllWeapons()
    {
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
    if (IsPlayerConnected(i))
    {
    SetDisabledWeapons(i);
    }
    }
    }

    Damit entwaffnest du niemanden.Du machst nur alle Waffen ID's von 0-199 unbrauchbar,quasi desynchronisierst sie was definitiv falsch ist.
    ResetPlayerWeapons hätte auch gereicht ;).
    Ich empfehle dir außerdem anstatt in Loops MAX_PLAYERS zu verwenden nimm GetMaxPlayers().


    Hab das Script nur schnell überflogen und muss sagen es war teilweise schrecklich
    sich das anzugen ,teilweise hast du gar nicht mehr eingerückt,trotzdem gute Arbeit ;P.
    Du solltest wie ich finde auch n Account System mit einbauen,denn nur mit dem Rcon
    PW auf die Commands Zugriff zu haben ist nicht gerade gut.Außerdem kannst
    via Account System Admins verschiedene AdminLevels zuweisen,ist definitiv besser mit AdminLevels.

    Das Beispiel ist ohne Objekte,hab es nur kurz angeschnitten in OnGameModeInit wie man es machen kann.Geht auch anderes aber du hast ja nicht genau gesagt wie du es brauchst.
    Die Koordinaten sind aus dem LVDM Gamemode.
    #include <a_samp>
    #define COLOR_GREY 0xAFAFAFAA
    #define COLOR_GREEN 0x33AA33AA
    #define COLOR_RED 0xAA3333AA
    #define COLOR_YELLOW 0xFFFF00AA
    #define COLOR_WHITE 0xFFFFFFAA


    new bool:InDM[MAX_PLAYERS];


    new Float:gRandomPlayerSpawns[][3] = { // [][4] wäre auch gut falls
    //du den Spieler mit "FacingAngle" spawnen lassen willst
    // X, Y, Z
    {1958.3783,1343.1572,15.3746},
    {2199.6531,1393.3678,10.8203},
    {2483.5977,1222.0825,10.8203},
    {2637.2712,1129.2743,11.1797},
    {2000.0106,1521.1111,17.0625},
    {2024.8190,1917.9425,12.3386},
    {2261.9048,2035.9547,10.8203},
    {2262.0986,2398.6572,10.8203},
    {2244.2566,2523.7280,10.8203},
    {2335.3228,2786.4478,10.8203},
    {2150.0186,2734.2297,11.1763},
    {2158.0811,2797.5488,10.8203},
    {1969.8301,2722.8564,10.8203},
    {1652.0555,2709.4072,10.8265},
    {1564.0052,2756.9463,10.8203},
    {1271.5452,2554.0227,10.8203},
    {1441.5894,2567.9099,10.8203},
    {1480.6473,2213.5718,11.0234},
    {1400.5906,2225.6960,11.0234},
    {1598.8419,2221.5676,11.0625},
    {1318.7759,1251.3580,10.8203},
    {1558.0731,1007.8292,10.8125},
    {1705.2347,1025.6808,10.8203}
    };
    new gRandomWeapons[][2] =
    {
    {22, 225},
    {23, 250},
    {32, 390}
    };
    public OnPlayerConnect(playerid) {
    InDM[playerid]=false;
    return 1;
    }
    public OnPlayerSpawn(playerid) {
    if(InDM[playerid]) {
    SetPlayerToDM(playerid);
    }
    }
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (!strcmp("/dm", cmdtext, true, 3))
    {
    SetPlayerToDM(playerid);
    InDM[playerid]=true;
    return 1;
    }
    else if (!strcmp("/dmoff", cmdtext, true, 6))
    {
    InDM[playerid]=false;
    SendClientMessage(playerid,COLOR_RED,"DM verlassen");
    SetPlayerWorldBounds(playerid,5000.0,-5000.0,5000.0,-5000.0);
    return 1;
    }
    else if (!strcmp("/teleport1", cmdtext, true, 10))
    {
    if(!InDM[playerid]) { // Falls der Spieler NICHT im DM ist passiert folgendes

    }
    else { // Falls er noch im DM ist,passiert jenes
    SendClientMessage(playerid,COLOR_RED,"Du kannst diesen Befehl nicht benutzten da du noch DM spielst");
    }
    return 1;
    }
    return 0;
    }
    stock SetPlayerToDM(playerid) {
    new rnd=random(sizeof(gRandomPlayerSpawns));
    SetPlayerPos(playerid,gRandomPlayerSpawns[rnd][0],gRandomPlayerSpawns[rnd][1],gRandomPlayerSpawns[rnd][2]);
    SendClientMessage(playerid,COLOR_YELLOW,"DM betreten");
    SetPlayerWorldBounds(playerid,3000.0,500.0,3000.0,500.0);
    rnd=random(sizeof(gRandomWeapons));
    GivePlayerWeapon(playerid,gRandomWeapons[rnd][0],gRandomWeapons[rnd][1]);
    }

    Natürlich geht sowas,ist recht einfach.
    new bool:InDM[MAX_PLAYERS];


    public OnPlayerConnect(playerid) {
    InDM[playerid]=false;
    return 1;
    }
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (!strcmp("/dm", cmdtext, true, 3)) {
    //dm kram
    InDM[playerid]=true;
    SendClientMessage(playerid,COLOR_YELLOW,"DM betreten");
    return 1;
    }
    else if (!strcmp("/dmoff", cmdtext, true, 6)) {
    InDM[playerid]=false;
    SendClientMessage(playerid,COLOR_RED,"DM verlassen");
    return 1;
    }
    else if (!strcmp("/teleport1", cmdtext, true, 10)) {
    if(!InDM[playerid]) { // Falls der Spieler NICHT im DM ist passiert folgendes

    }
    else { // Falls er noch im DM ist,passiert jenes
    SendClientMessage(playerid,COLOR_RED,"Du kannst diesen Befehl nicht benutzten da du noch DM spielst");
    }
    return 1;
    }
    return 0;
    }


    Gibt kein Fahrzeug mit der Vehicle ID 0 :whistling: .
    forward Auto();


    OnGameModeInit()
    {
    SetTimer("Auto", 1000, true);
    return 1;
    }


    Auto() {
    for(new Autos=1; Autos<MAX_VEHICLES; Autos++) {
    SetVehicleHealth(Autos, 1000.0);
    }
    return 1;
    }

    AddStaticPickup gibt keine ID zurück,CreatePickup schon.
    AddStaticPickup(model,type,Float:X,Float:Y,Float:Z) -> CreatePickup(model,type,Float:X,Float:Y,Float:Z)

    public OnGameModeInit()
    {
    germanpoint = CreatePickup (1239, 2, 1490.63,-1767.43,18.79);
    }
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if (pickupid == germanpoint )
    {
    GameTextForPlayer(playerid, "Show Text Here", 5000, 5);
    }


    }

    SanVice löscht für die install map teile die aber leider nicht alle zum Backup hinzugefügt werden deswegen fehlen manche Map teile -> einfach neu installn!


    Man kann es auch deinstallieren,nur nicht ebend Manuell.Im Installation's Ordner befindet sich eine 'Uninstall.exe',die deinstalliert San Vice bzw löscht es und installiert das San Andreas so zurück wie es vor der Installation von San Vice war,zB mit Mods falls welche vorhanden waren.
    Die Deinstallation funktioniert aber auch nur wenn der Ordner 'Backup' nicht gelöscht wurde.

    Schön und gut das du einen ObjectStreamer gemacht hast aber es wird bei 25Leuten oder mehr anfangen
    zu crashen je nachdem wie gut der Server ist.
    "SetTimerEx("ObjectCheck", 200, 1, "i",playerid);" ist gar nicht gut.
    Du solltest lieber nur 1 Timer benutzten der einfach checkt ob ein Player Online ist.
    for(new i;i<GetMaxPlayers();i++) {
    if(IsPlayerConnected(i)) {
    }
    }
    Außerdem könnte man für einen Spieler 10Timer laufen lassen so wie es zur Zeit in deinem Code ist.
    Connecte Ich als ID 0 hab ich einen Timer,beim Disconnect wird der nicht zerstört (Glaub sogar das man SetTimerEx nicht
    zerstören kann).Connecte ich dann wieder als ID 0 hab ich 2 Timer die für mich laufen.Das könnte ich wohl beliebig oft weiter machen :rolleyes: .

    Download: MoneyDrop

    Info:

    Falls ihr das Script benutzt,ladet es als erstes FIlterscript über die Server.cfg,falls nicht wird das OnPlayerDeath Callback nicht aufgerufen ( Wieso weiss ich nicht).
    Das Script erstellt MoneyPackets wenn ein Spieler stirbt sofern er auch Geld bei sich trug.Es kann eingestellt werden wieviele Packete gedropt werden sollen auf die das Geld gleichmäßig aufgeteilt wird und der Prozentuale Anteil wieviel des Geldes gedropt wird.
    Gut möglich dass das Script den Server crashen lassen könnte , falls es am Script liegt könnt ihr es hier sagen.


    Zitat

    Zeile 24 - Einstellung wieviel Prozent des Geldes gedropt werden sollen
    Zeile 25 - Die Anzahl an Packet die gedropt werden sollen wenn ein Spieler stirbt.

    Du musst das Filterscript als erstes Laden in der Server.cfg.
    Ich weiss nicht woran es liegt wenn andere Script davor laufen.Es gab jedenfalls irgndein Problem soweit ich mich noch erinnern kann,gab es damals schon mit dem WeaponDrop Script von mabako.


    Zitat

    frage nebenbei: kann man noch einstellen, dass die geldmenge auf verschiedene packs verteilt wird?das wäre dann noch der ober hammer


    Ich kann es versuchen,jedoch jetzt nicht.Vielleicht heute Abend irgendwann ;)

    Ja,du kannst da soviele Filterscripts in den Ordner einfügen wie du willst.
    Die Filterscripte aktivierst du dann indem du in die 'server.cfg' bei 'filterscript' die Namen einträgst.

    Code
    filterscripts actions adminspec


    Du kannst aber auch ein die server-console "loadfs FSNAME" eingeben,dann wird das Filterscript auch geladen.