Beiträge von Goldkiller

    Die sollen raus!
    Ich finde, das das nichts bringt, das Deutschland sich überall einmischt.


    Deutschland ist dazu verpflichtet zu helfen.Es gibt so etwas wie die NATO und UNO,in dem Fall ist es aber die NATO.
    Wird ein Mitgliedsstaat angegriffen ( In dem Fall USA ) sind die Bündnissländer dazu verpflichtet zu helfen.Deutschland würde man auch helfen müssen,würde irgendein anderer Staat Deutschland angreifen.Man sollte auch nicht vergessen,dass die paar wenigen Soldaten die Deutschland in Afghanistan stationiert hat ein Witz gegen die Anzahl der US Soldaten ist.Sollte klar sein,dass die USA die meisten Soldaten dort stationiert hat,mehr als alle anderen zusammen.


    Zitat

    Vorallem verstehe ich nicht warum ihr euch über Afghanistan aufregt, als wäre es das einzigste Land, wo Deutschland mit Militär vertreten ist.

    Liegt daran,dass es jetzt jeder mitbekommen hat durch die Medien.Hauptsächlich durch den Angriff auf den Oillaster.

    Die Methode nur mit strcmp() hat keine wirklichen Parameter.
    Die musst du dir umständlich via strtok() oder strget() besorgen.Das ist aber sehr umständlich und auch nicht wirklich leicht zu verstehen.
    Versuch dich einfach mal am Tutorial von mir was vorher hier schon gepostet wurde,hast du das erstmal drin wirst du merken wie einfach es ist einen Command mit 5 Parametern zu haben im Gegensatz zu der alten strcmp + strok() / strget() Methode ist.


    Ich denke, dass Goldkiller dir sicher den Umgang mit strtok zeigen könnte, doch er will sagen, dcmd / sscanf / zcmd ist besser :)


    Da bin ich mir nicht mal so sicher :D.Einfache bekomm ich definitiv noch hin,zb /kick [ID] [Grund] oder /cash [ID] [Betrag] ... Ist mir trotzdem zu umständlich x).zcmd hab ich selbst noch nicht ausprobiert,scheint aber noch etwas schneller zu sein als dcmd von der Ausführung her.

    Keine Gute Einstellung zu sagen "Hey,ich will Parameter in Commands haben / lernen",aber anstatt dcmd + sscanf ( oder ganz neu zcmd + sscanf ) zu nehmen benutzt ich strcmp + strtok ... ;)

    Du kannst PWN Größe nicht mit AMX Größe vergleichen,wobei ich finde das PWN Größe mehr Aussagt als AMX Größe.


    Bsp:
    Script1,
    #include <a_samp>
    new
    var[MAX_PLAYERS],
    s[1024],
    s2[8*1024],
    AmazingArray[MAX_PLAYERS][2000],
    Float:fBlub;
    main()
    {
    print("\n----------------------------------");
    print(" Blank Gamemode by your name here");
    print("----------------------------------\n");
    }
    public OnGameModeInit()
    {
    SetGameModeText("Blank Testscript");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    var[0]=2;
    s[0]='\0';
    s2[0]='\0';
    AmazingArray[0][0]=5;
    fBlub=2.0;
    return 1;
    }
    public OnGameModeExit()
    {
    return 1;
    }

    *.pwn=560 Byte (560 Bytes)
    *.amx=988 KB (1.012.133 Bytes)
    ~ 1800x größer.


    Script2,
    #include <a_samp>


    main()
    {
    print("\n----------------------------------");
    print(" Blank Gamemode by your name here");
    print("----------------------------------\n");
    }


    public OnGameModeInit()
    {
    SetGameModeText("Blank Testscript");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    return 1;
    }


    public OnGameModeExit()
    {
    return 1;
    }


    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    return 1;
    }


    public OnPlayerDeath(playerid, killerid, reason)
    {
    return 1;
    }


    public OnVehicleSpawn(vehicleid)
    {
    return 1;
    }


    public OnVehicleDeath(vehicleid, killerid)
    {
    return 1;
    }


    public OnPlayerText(playerid, text[])
    {
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/mycommand", cmdtext, true, 10) == 0)
    {
    // Do something here
    return 1;
    }
    return 0;
    }


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    return 1;
    }


    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    return 1;
    }
    *.pwn = 1,34 KB (1.380 Bytes)
    *.amx = 1,05 KB (1.085 Bytes)
    ~ gleichgroß.


    Trotz größerer PWN ist die AMX von Script2 viel kleiner als die von Script1.
    Script1 ist ein extremes Beispiel,aber wenn man mal überlegt wieviele Variablen man im Script hat für jeden Spieler ( Arrays, new Adminlevel[MAX_PLAYERS] ) kommt schon eine Menge zusammen.

    Zitat

    ach schwachsinn. die anzahl der variablen hat nur minimal was mit der größe des maschinencodes zu tun.


    Soviel dazu :0.

    So würde ich es machen
    //ganz oben
    forward HealthUpdate();
    // irgwo im Script
    public HealthUpdate() {
    new
    Float:fHealth;
    for(new i;i<MAX_PLAYERS;i++) {
    if(GetPlayerHealth(i,fHealth)) {
    fHealth+=10.0;
    if(fHealth >= 100) {
    SetPlayerHealth(i,100.0);
    }
    else {
    SetPlayerHealth(i,fHealth);
    }
    }
    }
    return 1;
    }
    // OnGameModeInit
    SetTimer("HealthUpdate" ,3*60*1000,1);

    Ist richtig so.Der Fehler liegt aber nicht daran.


    Oder kurz auf Deutsch.Du versuchst mit MYSQL support zu kompilieren,dir fehlt aber die Include Datei dafür.
    Wenn du MYSQL nicht brauchst,such nach #define MYSQL ,änder es in //#define MYSQL

    Glaub ich kaum,sonst würde der Fehler nicht kommen.So ein Fehler tritt sehr häufig auf wenn Leute die Includes falsch installiert haben,in den falschen Ordner eingefügt haben.
    Brauchst du denn unbedingt IRC support ( Hast du das Plugin ? ),falls nicht such nach "#define irc_gAdmin",mach daraus "//#define irc_gAdmin".

    Du holst dir auch nie den Usernamen des Spielers der den Command ausführt.

    //....
    new
    ThePlayer[MAX_PLAYER_NAME],
    admin[MAX_PLAYER_NAME],
    kicknachricht[128];
    GetPlayerName(pID,ThePlayer,sizeof(ThePlayer));
    GetPlayerName(playerid,admin,sizeof(admin)); // <---
    format(kicknachricht,sizeof(kicknachricht),"%s wurde von %s Server gekickt,Grund: %s",ThePlayer,admin,sGrund);
    SendClientMessageToAll(COLOR_BLACK,kicknachricht);
    Kick(pID);
    //...


    man sieht das die Gruppe dich Fail gemacht hat und nicht uns :D


    Die Gruppe macht keinen Fail ... wie soll das auch gehen :thumbdown: .


    Zitat

    Ja Dings halt.
    Phaili = Phaili.
    Da kann man nicht mehr sagen.
    Wie gesagt: Die Gruppe bringt andere Leute zum Phalien


    Das bei Urban Dictionary stimmt schon ...

    Da musst du einiges ändern.
    Ich hab dir das mal ebend gemacht.In deinem Beispiel wurden die alten Textdraws nie zerstört,was irgendwann zu Fehler geführt hätte da es ein Limit an Textdraws gibt.Außerdem war da etwas problematisch mit der public - funktion,da du eine spielerid als Parameter übergibst,aber durch alle Spieler eine Schleife aufrufst,trotzdem im Endeffekt alles für die spielerid machst die als Parameter übergeben wurde.


    Für weitere Erklärungen bin ich zu Faul phali x).

    new
    Text:td_DMZone,
    Text:td_NoDMZone;


    forward Dminfo();


    public OnGameModeInit() // oder OnFilterscriptinit...
    {
    td_DMZone = TextDrawCreate(1.000000,433.000000," ~r~DM zone");
    TextDrawAlignment(td_DMZone,0);
    TextDrawBackgroundColor(td_DMZone,0x000000ff);
    TextDrawFont(td_DMZone,1);
    TextDrawLetterSize(td_DMZone,0.288888,1.100000);
    TextDrawColor(td_DMZone,0xffffffff);
    TextDrawSetOutline(td_DMZone,1);
    TextDrawSetProportional(td_DMZone,1);
    TextDrawSetShadow(td_DMZone,1);


    td_NoDMZone = TextDrawCreate(1.000000,433.000000," ~r~No DM zone");
    TextDrawAlignment(td_NoDMZone,0);
    TextDrawBackgroundColor(td_NoDMZone,0x000000ff);
    TextDrawFont(td_NoDMZone,1);
    TextDrawLetterSize(td_NoDMZone,0.288888,1.100000);
    TextDrawColor(td_NoDMZone,0xffffffff);
    TextDrawSetOutline(td_NoDMZone,1);
    TextDrawSetProportional(td_NoDMZone,1);
    TextDrawSetShadow(td_NoDMZone,1);
    return 1;
    }


    public Dminfo()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(InDMzone[i] == 1 || InDMzone[i] == 2 || InDMzone[i] == 3 || InDMzone[i] == 4)
    {
    TextDrawShowForPlayer(i,td_DMZone);
    TextDrawHideForPlayer(i,td_NoDMZone);
    }
    else if(InDMzone[i] == 0)
    {
    TextDrawShowForPlayer(i,td_NoDMZone);
    TextDrawHideForPlayer(i,td_DMZone);
    }
    }
    return 1;
    }

    Wenn du eine der *.AMX benutzt die im Download Archiv ist,ist dein Server standartmäßig erstmal auf Englisch gestellt.
    Das müsstest du ändern,such nach
    SetServerLanguage(g_l_English);
    dem.Mach daraus:
    SetServerLanguage(g_l_German);


    Ingame kann jeder die Sprache für sich änder mit '/language'.

    Teilweise.
    Such mal nach "#define LOCK_MODE" in der gAdmin.pwn Datei.
    Mach dort hallt " // " vor,dann wird das nicht mit kompiliert.


    /* Userbuild - Here you can decide what system to really need or not */


    #define SPECTATE_MODE // - Comment out if you dont need inbuild Spectate Mode
    #define DISPLAY_MODE // - Comment out if you dont need DisplayMode showing Area,Speed or both while in a vehicle
    #define DISPLAY_MODE_TD // - Comment out if you want to have DisplayMode using GametextForPlayer,instead of TextDraw
    #define LOCK_MODE // - Comment out if you dont need Lock system,providing some extra admincommands too
    #define BASIC_COMMANDS // - Comment out if you dont want the following commands
    /* Read:
    The BASIC_COMMANDS are:
    - /players
    - /clock
    - /date
    - /pos
    - /me
    - /kill
    - /givemoney
    */
    #define EXTRA_COMMANDS // - Comment out if you dont want the following commands
    /* Read:
    The EXTRA_COMMANDS are:
    - /bank
    - /withdraw
    - /para
    - /hitman
    - /bounty
    */
    #define USE_MENUS // - If you dont need menus,you can remove them easily (all cmd which involve menus won't work anymore)
    //#define SAVE_POS // - Save the position of a player when he leaves the server
    //#define SAVE_ADDITION // - Saves Playerinfo in a custom time,not only on Connect and Disconnect (If server crashes this might be helpful)
    #if defined SAVE_ADDITION
    #define SAVE_TIME 5*60*1000 // 5 Minutes
    #endif


    /* Misc defines - You might edit them to fit your needs*/
    #define MAX_WRONG_PW 5
    #define PREFIX_ADMINCHAT '#' // Char to identify with AdminChat
    #define PREFIX_VIPCHAT '*' // Char to identify with VipChat
    #define MAX_COUNTDOWN 60*60*24 // 1Day should be too long
    #define MAX_ANNOUNCE_TIME 15*1000
    #define REGMSG_DELAY (5000)
    //#define MYSQL // Use new Usersystem V2,built on MYSQL using gSQL library instead of DUDB
    #define COLOR_FIX // Fix the playercolors if they return 0 (/invisible)
    #define LOGIN_PROTECTION // Protection for 7login blablabla
    #define PINGKICK_ADMIN_IMMUNITY // Imunity for admins when checking the ping
    #define ANTI_SPAM // Script to prevent people from spaming the mainchat
    #define NO_JAIL_COUNT // Since 1.0 it's not needed anymore!
    //#define PMBIND_INCLUDE