Beiträge von Sharpadox

    Hey,


    wieso kommen hier Errors, obwohl hier nichts falsch ist?


    Spoiler anzeigen
    enum gebiet//Dies leitet eine genauere Beschreibung für einen Array ein.
    {
    gOwner,//Hier wird die Fraktionsid gespeichert, der das Gebiet im moment gehört
    Float:gMinX,//MinX - Koordinate für die Gangzone
    Float:gMinY,//MinY
    Float:gMaxX,//MaxX
    Float:gMaxY,//MaxY
    gOn,//Ob der Gangfight läuft
    gStand1,//Der Score für das Owner Team
    gStand2,//Score für die Angreifer
    gAngreifer//Hier wird die Fraktionsid gespeichert
    };
    #define MAX_AREAS 1
    new Gebiete[MAX_AREAS][gebiet] = {//Erstellt eine Variable mit der Anzahl der Gebiete in der ersten [] angegeben und in der zweiten wird das Enum von oben eingefügt. (Dient zur genaueren Beschreibnung)
    {0,1051.2252,-1727.4736,1124.3893,-1813.5372,0,0,0,0}//Hier werden dann die Zonen erstellt, eigentlich alles auf 0 lassen, außer die Koordinaten...
    };

    Spoiler anzeigen
    public OnPlayerSpawn(playerid)
    {
    for(new i=0; i<sizeof(Gebiet); i++)//Damit alle gebiete durchlaufen werden
    {
    new color;//Erstellt eine neue Variable
    if(Gebiete[i][gOwner] == 5){color=0x000000B2;}//Hier wird abgefragt welcher Fraktion das Gebiet gehört, damit dann die Farbe dafür gesetzt wird
    if(Gebiete[i][gOwner] == 6){color=0xFFFFFFB2;}
    GangZoneShowForPlayer(playerid, Gebiet[i], color); // Hier wird dann die Zone gezeigt. Als erstes die spielerid, und die ist bei OnPlayerSpawn nunmal mit playerid definiert, dann welches Gebiet also Gebiet^^ und als letztes die Farbe die wir oben definiert haben.
    }
    return 1;
    }

    Ein Versuch mit einem Objektstreamer wäre schon eine Möglichkeit. Du kannst aber auch wenn dein Callback nicht alzu groß ist und nichts beinhaltet was du eigentlich im Script nicht alzu oft brauchst, gehst du in dein Texteditor kopierst den ganzen Callback heraus, fügst ihn in die Textdatei ein und speicherst diese als namewasduwillst.inc, diese speicherst du in deinen Includesordner zu den anderen, dann includest du die Datei wie ein normalles Include. Natürlich unter deinen anderen Includes im Script. Du hast dadurch auch schon wieder ein Filterscript eingespart.


    Verstehe das nicht wirklich? :D
    Ich soll alles in ein Include packen
    und als Include in Script einfügen oO ?

    Hey Leute von heute, :D


    wie kann ich eine Map per Filterscript laden lassen?
    Denn ich habe ein DM und ein Race Server. Wenn
    ich je für beide immer die Maps laden muss, wird mein
    Gamemode unvorstellbar (besonder unnötig) groß.
    Ich lade die Objekte so, und das funktioniert nicht:


    Spoiler anzeigen

    public OnFilterScriptInit()
    {
    print("\n--------------------------------------");
    print(" [Race] Beispielmap ~v1~ Beispielname wurde geladen . . .");
    print("--------------------------------------\n");
    CreateObject(obj,x,y,z,rx,ry,rz);
    CreateObject(obj,x,y,z,rx,ry,rz);
    CreateObject(obj,x,y,z,rx,ry,rz);
    CreateObject(obj,x,y,z,rx,ry,rz);
    CreateObject(obj,x,y,z,rx,ry,rz);
    CreateObject(obj,x,y,z,rx,ry,rz);
    CreateObject(obj,x,y,z,rx,ry,rz);
    CreateObject(obj,x,y,z,rx,ry,rz);
    CreateObject(obj,x,y,z,rx,ry,rz);
    CreateObject(obj,x,y,z,rx,ry,rz);
    CreateObject(obj,x,y,z,rx,ry,rz);
    CreateObject(obj,x,y,z,rx,ry,rz);
    //......
    return 1;
    }

    ¼³kð?¸¦G

    Was ist das? oO


    sscanf

    Spoiler anzeigen
    ///////////////////////////////// SSCANF ///////////////////////////////////////
    stock sscanf(sstring[], format[], {Float,_}:...)
    {
    #if defined isnull
    if (isnull(sstring))
    #else
    if (sstring[0] == 0 || (sstring[0] == 1 && sstring[1] == 0))
    #endif
    {
    return format[0];
    }
    #pragma tabsize 4
    new
    formatPos = 0,
    sstringPos = 0,
    paramPos = 2,
    paramCount = numargs(),
    delim = ' ';
    while (sstring[sstringPos] && sstring[sstringPos] <= ' ')
    {
    sstringPos++;
    }
    while (paramPos < paramCount && sstring[sstringPos])
    {
    switch (format[formatPos++])
    {
    case '\0':
    {
    return 0;
    }
    case 'i', 'd':
    {
    new
    neg = 1,
    num = 0,
    ch = sstring[sstringPos];
    if (ch == '-')
    {
    neg = -1;
    ch = sstring[++sstringPos];
    }
    do
    {
    sstringPos++;
    if ('0' <= ch <= '9')
    {
    num = (num * 10) + (ch - '0');
    }
    else
    {
    return -1;
    }
    }
    while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num * neg);
    }
    case 'h', 'x':
    {
    new
    num = 0,
    ch = sstring[sstringPos];
    do
    {
    sstringPos++;
    switch (ch)
    {
    case 'x', 'X':
    {
    num = 0;
    continue;
    }
    case '0' .. '9':
    {
    num = (num << 4) | (ch - '0');
    }
    case 'a' .. 'f':
    {
    num = (num << 4) | (ch - ('a' - 10));
    }
    case 'A' .. 'F':
    {
    num = (num << 4) | (ch - ('A' - 10));
    }
    default:
    {
    return -1;
    }
    }
    }
    while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num);
    }
    case 'c':
    {
    setarg(paramPos, 0, sstring[sstringPos++]);
    }
    case 'f':
    {

    Spoiler anzeigen
    new changestr[16], changepos = 0, strpos = sstringPos;
    while(changepos < 16 && sstring[strpos] && sstring[strpos] != delim)
    {
    changestr[changepos++] = sstring[strpos++];
    }
    changestr[changepos] = '\0';
    setarg(paramPos,0,_:floatstr(changestr));
    }
    case 'p':
    {
    delim = format[formatPos++];
    continue;
    }
    case '\'':
    {
    new
    end = formatPos - 1,
    ch;
    while ((ch = format[++end]) && ch != '\'') {}
    if (!ch)
    {
    return -1;
    }
    format[end] = '\0';
    if ((ch = strfind(sstring, format[formatPos], false, sstringPos)) == -1)
    {
    if (format[end + 1])
    {
    return -1;
    }
    return 0;
    }
    format[end] = '\'';
    sstringPos = ch + (end - formatPos);
    formatPos = end + 1;
    }
    case 'u':
    {
    new
    end = sstringPos - 1,
    id = 0,
    bool:num = true,
    ch;
    while ((ch = sstring[++end]) && ch != delim)
    {
    if (num)
    {
    if ('0' <= ch <= '9')
    {
    id = (id * 10) + (ch - '0');
    }
    else
    {
    num = false;
    }
    }
    }
    if (num && IsPlayerConnected(id))
    {
    setarg(paramPos, 0, id);
    }
    else
    {
    #if !defined foreach
    #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
    #define __SSCANF_FOREACH__
    #endif
    sstring[end] = '\0';
    num = false;
    new
    name[MAX_PLAYER_NAME];
    id = end - sstringPos;
    foreach (Player, playerid)
    {
    GetPlayerName(playerid, name, sizeof (name));
    if (!strcmp(name, sstring[sstringPos], true, id))
    {
    setarg(paramPos, 0, playerid);
    num = true;
    break;
    }
    }
    if (!num)
    {
    setarg(paramPos, 0, INVALID_PLAYER_ID);
    }
    sstring[end] = ch;
    #if defined __SSCANF_FOREACH__
    #undef foreach
    #undef __SSCANF_FOREACH__
    #endif
    }
    sstringPos = end;
    }
    case 's', 'z':
    {
    new
    i = 0,
    ch;
    if (format[formatPos])
    {
    while ((ch = sstring[sstringPos++]) && ch != delim)
    {
    setarg(paramPos, i++, ch);
    }
    if (!i)
    {
    return -1;
    }
    }
    else
    {
    while ((ch = sstring[sstringPos++]))
    {
    setarg(paramPos, i++, ch);
    }
    }
    sstringPos--;
    setarg(paramPos, i, '\0');
    }
    default:
    {
    continue;
    }
    }
    while (sstring[sstringPos] && sstring[sstringPos] != delim && sstring[sstringPos] > ' ')
    {
    sstringPos++;
    }
    while (sstring[sstringPos] && (sstring[sstringPos] == delim || sstring[sstringPos] <= ' '))
    {
    sstringPos++;
    }
    paramPos++;
    }
    do
    {
    if ((delim = format[formatPos++]) > ' ')
    {
    if (delim == '\'')
    {
    while ((delim = format[formatPos++]) && delim != '\'') {}
    }
    else if (delim != 'z')
    {
    return delim;
    }
    }
    }
    while (delim > ' ');
    return 0;
    }

    Ich weis. Das ist die Zahl die in der DB eingetragen ist. Wie will es der Herr gerne??


    Gruss: Sonic


    Wie jetzt "Wie will es der Herr gerne" :D ??


    Ich will das Kills durch Tode geteilt werden und dann richtig ausgelesen werden 8|


    zB..


    [table='3']
    [*]Kills
    [*]Tode
    [*]K/D
    [*]13
    [*]6
    [*]2.17*
    [/table]


    * Gerundet von [2.166666666]

    Hey,


    ich habe ein DM-Server und lasse per Textdraw die Stats auslesen.
    Aber meine K/D wird gerunded. Wieso?
    Ich habe "Morde: 13" und "Tode: 5" aber meine K/D ist dann "K/D: 2.00"


    Codeschnipsel:

    Spoiler anzeigen
    //K/D
    new kdstr[128];
    new Float:kd = kills/tode;
    format(kdstr,sizeof(kdstr),"K/D-Rate: %.2f",kd);
    TextDrawSetString(StatKD[i],kdstr);

    Hey,


    ich habe mir für einen DM-Server ein TextDraw für die Stats erstellt.
    Aber er wird nicht angezeigt. Bei dem ersten Spieler der connected ist,
    da wurde es angezeigt, aber jetzt wird bei mir nichtsmehr angezeicht
    bis auf das "Stats" was über den Stats steht..


    Code:

    Spoiler anzeigen
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    StatGeld[i] = TextDrawCreate(506.000000, 180.000000, "");
    TextDrawBackgroundColor(StatGeld[i], 255);
    TextDrawFont(StatGeld[i], 2);
    TextDrawLetterSize(StatGeld[i], 0.270000, 1.000000);
    TextDrawColor(StatGeld[i], -10066177);
    TextDrawSetOutline(StatGeld[i], 0);
    TextDrawSetProportional(StatGeld[i], 1);
    TextDrawSetShadow(StatGeld[i], 1);
    TextDrawUseBox(StatGeld[i], 1);
    TextDrawBoxColor(StatGeld[i], 255);
    TextDrawTextSize(StatGeld[i], 607.000000, 0.000000);

    StatKills[i] = TextDrawCreate(506.000000, 190.000000, "");
    TextDrawBackgroundColor(StatKills[i], 255);
    TextDrawFont(StatKills[i], 2);
    TextDrawLetterSize(StatKills[i], 0.260000, 1.000000);
    TextDrawColor(StatKills[i], -10066177);
    TextDrawSetOutline(StatKills[i], 0);
    TextDrawSetProportional(StatKills[i], 1);
    TextDrawSetShadow(StatKills[i], 1);
    TextDrawUseBox(StatKills[i], 1);
    TextDrawBoxColor(StatKills[i], 255);
    TextDrawTextSize(StatKills[i], 607.000000, 0.000000);

    Spoiler anzeigen
    StatTode[i] = TextDrawCreate(506.000000, 200.000000, "");
    TextDrawBackgroundColor(StatTode[i], 255);
    TextDrawFont(StatTode[i], 2);
    TextDrawLetterSize(StatTode[i], 0.270000, 1.000000);
    TextDrawColor(StatTode[i], -10066177);
    TextDrawSetOutline(StatTode[i], 0);
    TextDrawSetProportional(StatTode[i], 1);
    TextDrawSetShadow(StatTode[i], 1);
    TextDrawUseBox(StatTode[i], 1);
    TextDrawBoxColor(StatTode[i], 255);
    TextDrawTextSize(StatTode[i], 607.000000, 0.000000);

    StatName[i] = TextDrawCreate(508.000000, 168.000000, "");
    TextDrawBackgroundColor(StatName[i], 255);
    TextDrawFont(StatName[i], 2);
    TextDrawLetterSize(StatName[i], 0.200000, 1.000000);
    TextDrawColor(StatName[i], -993737473);
    TextDrawSetOutline(StatName[i], 0);
    TextDrawSetProportional(StatName[i], 1);
    TextDrawSetShadow(StatName[i], 1);

    StatStats[i] = TextDrawCreate(502.000000, 158.000000, "[ ] Stats");
    TextDrawBackgroundColor(StatStats[i], 255);
    TextDrawFont(StatStats[i], 0);
    TextDrawLetterSize(StatStats[i], 0.500000, 1.000000);
    TextDrawColor(StatStats[i], -1);
    TextDrawSetOutline(StatStats[i], 0);
    TextDrawSetProportional(StatStats[i], 1);
    TextDrawSetShadow(StatStats[i], 1);

    StatKD[i] = TextDrawCreate(530.000000, 222.000000, "");
    TextDrawBackgroundColor(StatKD[i], 255);
    TextDrawFont(StatKD[i], 2);
    TextDrawLetterSize(StatKD[i], 0.160000, 0.799999);
    TextDrawColor(StatKD[i], -993737473);
    TextDrawSetOutline(StatKD[i], 0);
    TextDrawSetProportional(StatKD[i], 1);
    TextDrawSetShadow(StatKD[i], 1);

    StatScore[i] = TextDrawCreate(506.000000, 210.000000, "");
    TextDrawBackgroundColor(StatScore[i], 255);
    TextDrawFont(StatScore[i], 2);
    TextDrawLetterSize(StatScore[i], 0.230000, 1.100000);
    TextDrawColor(StatScore[i], -10066177);
    TextDrawSetOutline(StatScore[i], 0);
    TextDrawSetProportional(StatScore[i], 1);
    TextDrawSetShadow(StatScore[i], 1);
    TextDrawUseBox(StatScore[i], 1);
    TextDrawBoxColor(StatScore[i], 255);
    TextDrawTextSize(StatScore[i], 607.000000, 0.000000);
    }

    Spoiler anzeigen
    //OnPlayerSpawn
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    TextDrawShowForPlayer(i, StatStats[i]);
    TextDrawShowForPlayer(i, StatName[i]);
    TextDrawShowForPlayer(i, StatGeld[i]);
    TextDrawShowForPlayer(i, StatKills[i]);
    TextDrawShowForPlayer(i, StatTode[i]);
    TextDrawShowForPlayer(i, StatKD[i]);
    TextDrawShowForPlayer(i, StatScore[i]);
    }

    Hey,


    ich bin gerade dabei ein GangFight System zu erstellen.
    Aber wie kann ich abfrage, welcher Fraktion die Zone gehört in der man
    sich befindet?
    Hier sind meine Codes:


    Spoiler anzeigen
    #define MAX_ZONES 7
    enum GangZones
    {
    Zone,
    Besitzer
    }
    new GZInfo[MAX_ZONES][GangZones];

    Spoiler anzeigen
    //OnGameModeInit
    GZInfo[1][Zone] = GSArea = GangZoneCreate(2203.125, -1980.46875, 2531.25, -1734.375);
    GZInfo[2][Zone] = BallasArea = GangZoneCreate(1951.171875, -1939.453125, 2097.65625, -1751.953125);
    GZInfo[3][Zone] = YakuzaArea = GangZoneCreate(2291.015625, 2226.5625, 2419.921875, 2414.0625);
    GZInfo[4][Zone] = RifaArea = GangZoneCreate(-2197.265625, -287.109375, -2009.765625, -70.3125);
    GZInfo[5][Zone] = VagosArea = GangZoneCreate(2724.609375, -1494.140625, 2906.25, -1259.765625);
    GZInfo[6][Zone] = LCNArea = GangZoneCreate(-1869.140625, 1189.453125, -1611.328125, 1300.78125);

    Spoiler anzeigen
    //Hier werden die besitzer gesetzt
    GZInfo[1][Besitzer] = 8; //Grove Street
    GZInfo[2][Besitzer] = 9; //Ballas
    GZInfo[3][Besitzer] = 10; //Yakuza
    GZInfo[4][Besitzer] = 11; //S.F. Rifa
    GZInfo[5][Besitzer] = 12; //Vagos
    GZInfo[6][Besitzer] = 13; //LCN

    Spoiler anzeigen
    //Das wird zB benötigt für die Farbe der GangZone
    stock FrakFarbe(fraktionid)
    {
    new farbcode;
    switch(fraktionid)
    {
    case 8:{farbcode=0x00D90064;} // GROVE STREET
    case 9:{farbcode=0xA40AFF64;} // BALLAS
    case 10:{farbcode=0xFFFFFF64;} // YAKUZA
    case 11:{farbcode=0x00FFFF64;} // S.F. RIFA
    case 12:{farbcode=0xFFFF0064;} // VAGOS
    case 13:{farbcode=0x0000FF64;} // LCN
    }
    return farbcode;
    }


    - Ich weiß nicht ob ich Fehler oder sonstiges drinnen habe.
    Kann mir bitte jemand sagen, was falsch ist?
    - Und wir kann ich nun abfragen, welcher Fraktion die Zone
    gehört?