Beiträge von DMA

    Du kannst es einfach hinschreiben.
    Allerdings ist das Problem bei Immaginärengut das manch so ein Ding schnell abgeändert werden kann, und das Copyright dem entsprechned wieder zerfällt :>
    Schreibs einfach hin, schadet ja nichts :p

    if(!strcmp(key, "Level"))
    {
    PlayerInfo[playerid][pLevel] = floatstr(ini_GetValue(Data));
    }
    oder mit meiner Funktion:
    PlayerInfo[playerid][pLevel] = ini_FloatValue(Data);
    Auch wenns unsinng ist x_X
    Achja noch eine Version:
    Float:ini_FloatValue(const line[], key[], &bool:xvalue=false)
    {
    new Float:ret = 0.0;
    if(!strcmp(strget(line, 0, '='), key))
    {
    ret = floatstr(strget(line, 1, '='));
    xvalue = true;
    }
    return ret;
    }

    if(!strcmp(strget(cmdtext, 0), "/setpd"))
    {
    new pid = strval(strget(cmdtext, 1));
    #if !defined msg
    new msg[256];
    #endif
    if(gTeam[playerid] == TEAM_PD_LEADER)
    {
    if(IsPlayerConnected(pid))
    {
    gTeam[pid] = TEAM_PD;
    SendClientMessage(pid, 0xFF6900AA, "Du bist nun Polizeianwärter.");
    GetPlayerName(pid, msg, 16);
    format(msg, sizeof msg, "Du hast %s zu einem Polizeianwärter befördert!", msg);
    SendClientMessage(playerid, 0xFF6900AA, msg);
    }
    else
    SendClientMessage(playerid, 0xFF0000AA, "Dieser Spieler ist nicht mit dem Server verbunden!");
    }
    else
    SendClientMessage(playerid, 0xFF0000AA, "Du musst der Minist für Inneresicherheit sein. :>");
    return 1;
    }
    Ist nicht getestet :>
    Soltle aber funktionieren.

    public OnGameModeExit()
    {
    SendRconCommand("unloadfs DERNAME");
    return 1;
    };
    public OnGameModeInit()
    {
    SendRconCommand("loadfs DERNAME");
    return 1;
    };
    Ist ungetestet :>
    Soltle aber klappen :x

    Hachja was ihr für ein Mist labert.
    Ein Vserver ist leistungsstark, sagen wir um den Faktor 70 als ein guter Freehoster.
    Es stellt kein Problem da, eine gut besuchte Website, TeamSpeak und SA:MP Server laufen zulassen.
    Nur ist das mit der Anbindung eine Sache.
    Die Vserver bekommen immer wenig Bandbreite, also könnte es hier zu Eng pässen kommen.
    Und MySQL ist nur schneller, wo es um Sortiertes Datenverwalten mit Zwischenspeicherung geht.

    Du hast seine ganze IP?
    Z.b. : 96.23.172.22
    Dann ist seine Stammip (das was sich nicht ändert) die ersten zwei blöcke.
    96.23.172.22
    So dann bannst du einfach so:
    96.23.*.*
    Schwupps ist er zu 90% aller Fälle ausgeschlossen :> (Aber andere User auch >:))

    Also du kannst ihn drüber installieren.
    SAMP 0.2X Client ist inkompatibel zu 0.2.2
    Was mir auffällt ist das Client Update unregelmäßig auch mal falsche playerid sendet. (Oder schonmal -1 gesehen? :>)
    Außerdem , wie im Officiëlen Forum geschrieben wäre ein Packetstate ganz nett :/

    #include <a_samp>
    @voteTimer();
    stock strget(strx[], pos, search = ' ');
    stock static const gamemodes[][] = {
    { "area51" }, /* hier einfügen welche gamemodes laufen sollen */
    { "bomb" }
    };
    stock static pVote[MAX_PLAYERS] = { -1, ... }, r = 0; /* die ... nicht entfernen! */
    @voteTimer()
    {
    static voteFor[sizeof gamemodes], notdie[sizeof gamemodes], cntdie, msg[256];
    GameTextForAll("~r~Gamemode wechsel!", 4000, 3);
    for(new i = 0; i < GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(pVote[i] != -1)
    voteFor[pVote[i]]++;
    }
    }
    while(r == 0)
    {
    for(new j = 0; j < sizeof voteFor; j++)
    {
    voteFor[j]--;
    notdie[j] = 0;
    if(voteFor[j] > 0)
    {
    notdie[j] = 1;
    cntdie++;
    }
    }
    if(cntdie == 1)
    {
    new i = 0;
    for(i = 0; i < sizeof voteFor; i++)
    {
    if(notdie[i] == 1)
    break;
    }
    format(msg, sizeof msg, "changemode %s", gamemodes[i]);
    SendRconCommand(msg);
    break;
    }
    if(cntdie == 0)
    {
    GameTextForAll("~r~Stimmungs gleichheit, vote abgebrochen!", 1000, 3);
    break;
    }
    }
    }
    public OnFilterScriptInit()
    {
    print("\n--------------------------------------");
    print(" Vote FS by DMA");
    print("--------------------------------------\n");
    SetTimer("voteTimer", 1000*60*10, 1);
    for(new i = 0; i < MAX_PLAYERS; i++)
    pVote[i] = -1;
    return 1;
    }


    public OnFilterScriptExit()
    {
    print("\n--------------------------------------");
    print(" Vote FS by DMA EXIT!");
    print("--------------------------------------\n");
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    pVote[playerid] = -1;
    SendClientMessage(playerid, 0xFF0000AA, "/votehelp, /vote um für einen Gamemode wechsel zu voten!");
    SendClientMessage(playerid, 0xFF6900AA, "Gamemode Wechsel alle 10min!");
    SendClientMessage(playerid, 0xFF0000AA, "-----------------------------------");
    SendClientMessage(playerid, 0xFF6900AA, "Votescript by DMA 2008");
    SendClientMessage(playerid, 0xFF0000AA, "http://samp.breadfish.de/forum/");
    SendClientMessage(playerid, 0xFF6900AA, "-----------------------------------");
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new msg[256];
    if(!strcmp(strget(cmdtext, 0), "/votehelp"))
    {
    SendClientMessage(playerid, 0xFF0000AA, "/vote [ID] , ID Liste:");
    for(new i = 0; i < sizeof gamemodes; i++)
    {
    format(msg, sizeof msg, "ID:%d Name:%s", i, gamemodes[i]);
    SendClientMessage(playerid, 0xFF6900AA, msg);
    }
    return 1;
    }
    if(!strcmp(strget(cmdtext, 0), "/vote"))
    {
    if(strval(strget(cmdtext, 1)) > 0 && strval(strget(cmdtext, 1)) < sizeof gamemodes)
    {
    if(pVote[playerid] == -1)
    {
    SendClientMessage(playerid, 0xFF6900AA, "Vote gewertet!");
    pVote[playerid] = strval(strget(cmdtext, 1));
    }
    else
    SendClientMessage(playerid, 0xFF0000AA, "Du hast bereits gevoted!");
    }
    else
    SendClientMessage(playerid, 0xFF0000AA, "/vote [ID] , Beispiel: /vote 0");
    }
    return 0;
    }


    stock strget(strx[], pos, search = ' ') {
    new arg, ret[128], idxx;
    for (new i = 0; i < strlen(strx); i++) {
    if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10) {
    arg++;
    if (arg == pos + 1){
    ret[i-idxx] = EOS;
    return ret;
    } else if (arg == pos)
    idxx= i+1;
    }
    else if (arg == pos)
    ret[i - idxx] = strx[i];
    }
    return ret;
    }
    Das sollte klappen, habs gerade ausm kopf heraus geschrieben ;x