Beiträge von drugstar


    Herzlich willkommen zu meiner Werbung. Ich will euch Heute unsere Homepage des Doublecrafts-Servers Vorstellen.
    Momentan basiert die Homepage, besser gesagt das Forum auf einem WBB3 Board. Wir haben es frisch eröffnet, das betrifft auch
    den Server, dieser ist nun seit guten 3 Wochen online.


    Lé Forum:Doublecraft


    IP-Gameserver: mc.doublecraft.de


    IP-Teamspeak³: ts.doublecraft.de:9934




    Unser Konzept


    Wenn man auf Doublecraft connecten will kann man im Grunde schon sofort loslegen. Nach einem kurzen Anti-Griefer Test kann es nämlich schon losgehen.
    Man Spawnt in der sogenannten "Stadt"-Welt dort gibt es vordefinierte Grundstücke. Am Spawn befinden sich alle Portale, unter Anderem das "Mine"-Portal und
    das "Freebuild"-Portal. Die Stadt ist in die verschiedensten Bereiche aufgeteilt. Es gibt zB eine Altstadt, die ist auch gleichzeitig die Spawn-Region.
    Die Grundstücke sind Anfangs für jeden Spieler sehr teuer doch nach einer Zeit kann man sich auf Doublecraft alles leisten, was man haben möchte.


    Doch wenn man keine Lust auf die Beengung in der Stadt hat kann man sich auch in der "Freebuild"-Welt frei austoben. Dort ist alles erlaubt.
    Doch wer "grieft" muss mit einer Strafe rechnen. Am Anfang wird es auch empfohlen in der Freebuild sich etwas aufzubauen da man dort dann rausgehen
    kann. Somit bekommt man sofort das Geld was nötig ist um in der gesicherten Stadt zu bauen, denn in der "FB"(Freebuild)-Welt gibt es keine Sicherung gegen Griefer.


    Doch nicht genug, dies klingt ziemlich nach dem Standart System. Auf Doublecraft jedoch gibt es noch viele verschiedene Sachen die man austesten kann. Zum Beispiel wird bald ein
    selbst-entwickteltes Lotto Plugin folgen. Glück spielt auch in anderen Bereichen auf Doublecraft eine grosse Rolle und wird dir noch sehr zum Erfolg verhelfen. Schaut rein und testet die verschiedensten
    Sachen bei uns auf Doublecraft. Einen Normalen Langweiligen Server findet man hier nicht. Viel Spaß mit einer großen Community findet man außerdem auch nur bei uns.



    Unser Konzept



    Minecraft wurde in seiner Zeit zu einem Ressourcen-fressendes System das ohne einer vernünftigen Technik nicht mehr klar kommt.Wir setzen dabei auf die beste Technik.
    Einen standart-0815-Server findet man bei uns nicht. Wir setzen auf beste Hard -und Software somit ist ein Laggfreies Spiel möglich.
    Insgesammt verfügen wir über 16GB Arbeitsspeicher.Außerdem haben wir einen 4Kern Amd PhenomII X4 945 3.0 GHZ Prozessor. Wobei wir jeden Monat einen
    besseren einbauen lassen. Sonst besitzen wir einen großen Backup-Bereich mit 1000GB. Es wird von diesem Server täglich mehrere Backups gezogen und auf den Backup-Bereich geschoben.



    Screenshots


    Unser Spawn



    Unser Slum-Viertel



    Unsere Kirche



    Und unser Rathaus


    Ich hoffe es hat euch gefallen


    Mit freundlichen Grüßen,
    Drugstar

    xd weiß ich nur wenn er speed tracks hat ist ja kein stunt bonus so macht man einfach am ende einen CP ich zeigs dir
    if(strcmp(cmdtext,"/speed1",true) == 0)
    {
    new vID;
    new speed1cp;
    vID = GetPlayerVehicleID(playerid);
    WaitForMap(playerid);
    SetPlayerPos(playerid,1051.0704,-2603.1375,324.7096);
    //hier musste mit SetPlayerCheckpoint checkpoint setzen zb so speed1cp = SetPlayerCheckpoint:
    if(IsPlayerInAnyVehicle(playerid))
    {
    SetVehiclePos(vID,1051.0704,-2603.1375,324.7096);
    SendClientMessage(playerid,COLOR_YELLOW, "DM ist hier nicht erwünscht.");
    PutPlayerInVehicle(playerid,vID,0);
    }
    return 1;
    }


    onplayerentercheckpoint(playerid...)
    {
    if(cpid == speed1cp)
    {
    //geld geben nur du musst halt iwie die cp id rausfinden kp hab ausm kopf geschrieben
    }
    return 1;
    }

    so machen:hmm du könntest es so machen


    //zb bei einem cmd:machste eine if abfrage rein:
    if(name == admin1name || name == admin2name
    {
    }
    else
    {
    ban(pid//die id die bei diesem befehl zb /ban [playerid] übergeben wurde);
    }


    ISt jetzt nicht sehr schön geschrieben

    he irwie komm ich grad nicht mit
    for(new i = 0; i < sizeof(HouseInfo); i++)
    {
    if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
    new plname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, plname, sizeof(plname));


    if(strcmp(HouseInfo[i][hNameVonAnderem], plname, true))
    {
    // wenn es stimmt
    }
    if(!strcmp(HouseInfo[i][hNameVonAnderem], plname, true))
    {
    // wenn es nicht stimmt
    }
    }

    Hey Leutz


    Bestimmt kennen einige von euch das schöne spiel Minecraft
    Wer nicht werd ich hier mal ein paar Fakten geben:
    Es ist ein Spiel über Blöcken.Man baut mit Blöcken irgendetwas.
    Was man auf den Server alles machen kann?


    Da mir Langweilig ist und ich Zeit habe ,habe ich mir überlegt hey beschäftige dich und die Anderen.


    Was dies ist?
    Wir werden versuchen mit euch eine große Stadt bauen.Jeder darf bauen was ihm lieb ist. Zug,U-Bahn,Häuser,Straßen,Hochhäuser,Flugzeuge,Autos,Berge,Tunnel,Fabriken,Mc.Donalds Laden,Meer,Schiffe,Brücken.
    Am ende soll dies alles eine große Stadt bilden
    Am Ende des Monats August wollen wir alles Filmen und in Youtube rein stellen.


    Mehr Infos gebe ich um 18 uhr.
    MFG Dennis

    //----
    new Text:StatsTextdraw[MAX_PLAYERS];
    forward StatsTimer();
    //----


    public StatsTimer()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if (IsPlayerConnected(i))
    {
    new str2[128];
    if(Player[i][Kills] == 0 && Player[i][Deaths] == 0 || Player[i][Kills] >= 1 && Player[i][Deaths] == 0 || Player[i][Kills] == 0 && Player[i][Deaths] >= 0)
    {
    format(str2, sizeof(str2), "~b~Kills:~w~%d ~b~Deaths:~w~%d ~b~Ratio:~w~0 ~b~Score:~w~%d ~b~Rank:~w~Newbie",Player[i][Kills],Player[i][Deaths],GetPlayerScore(i));
    TextDrawSetString(StatsTextdraw[i],str2);
    TextDrawShowForPlayer(i,StatsTextdraw[i]);
    }
    else if(Player[i][Kills] >= 0 && Player[i][Kills] < 100)
    {
    format(str2, sizeof(str2), "~b~Kills:~w~%d ~b~Deaths:~w~%d ~b~Ratio:~w~%0.2f ~b~Score:~w~%d ~b~Rank:~w~Newbie",Player[i][Kills],Player[i][Deaths],Float:Player[i][Kills]/Float:Player[i][Deaths],GetPlayerScore(i));
    TextDrawSetString(StatsTextdraw[i],str2);
    TextDrawShowForPlayer(i,StatsTextdraw[i]);
    }
    else if(Player[i][Kills] >= 100 && Player[i][Kills] < 200)
    {
    format(str2, sizeof(str2), "~b~Kills:~w~%d ~b~Deaths:~w~%d ~b~Ratio:~w~%0.2f ~b~Score:~w~%d ~b~Rank:~b~Einsteiger",Player[i][Kills],Player[i][Deaths],Float:Player[i][Kills]/Float:Player[i][Deaths],GetPlayerScore(i));
    TextDrawSetString(StatsTextdraw[i],str2);
    TextDrawShowForPlayer(i,StatsTextdraw[i]);
    }............

    Ich habe seit Kurzem das Problem das ein Textdraw verschwindet.
    Nach ca 10 Minuten verschwindet spurrlos ein StatsTextdraw der jede 3 Sek Updatet.
    Dann hab ich noch einen Speedometer Textdraw der Ja Status/name/Kmh anzeigt
    Weiß keiner was dazu?
    Bitte um Hilfe LG Dennis

    relativ einfach abfrage if(isplayeradmin(playerid))
    guck ma in der Wiki
    beispiel

    if (strcmp(cmdtext, "/Boxing", true) == 0)
    {
    if(GetPlayerMoney(playerid) < 300) return SendClientMessage(playerid,rot,"Du brauchst mehr Geld!");
    {
    if(isPlayerAdmin(playerid))
    {
    SetPlayerFightingStyle (playerid, FIGHT_STYLE_BOXING);
    GivePlayerMoney(playerid, -300);
    }
    else
    {
    SendClientMessage(playerid,rot,"Du bist kein Admin!");
    }
    }
    return 1;

    hab jetz schnell geschrieben musst ma gucken ist ein einfacher Befehl um den Fight style zu ändern




    //edit misst da war jemand schneller
    //edit²:leider Falsch eingerückt wennde umbedingt willst frag
    //Edit By INk,habs mal eingerückt,hast ne klammer vergessen ;)

    new fname[MAX_PLAYER_NAME],string[48],namestring[120];
    GetPlayerName(playerid, fname, sizeof(fname));
    if(strcmp(cmdtext, "/addfirma", true) == 0)
    {
    new Float:gx,Float:gy,Float:gz;
    GetPlayerPos(playerid,gx,gy,gz);
    punkte[schon_erstellt][x] = (gx);
    punkte[schon_erstellt][y] = (gy);
    punkte[schon_erstellt][z] = (gz);
    punkte[schon_erstellt][ist_da] = (1);
    punkte[schon_erstellt][owner] = fname;
    format(namestring, sizeof(namestring), "%s",fname);
    format(string, sizeof(string), "Firma \n Besitzer:%s",fname);
    Create3DTextLabel(string,0x008080FF,gx,gy,gz+0.3,40.0,0);
    CreatePickup(1275, 23, gx, gy, gz, -1);
    schon_erstellt++;
    }
    if(strcmp(cmdtext, "/savefirmen", true) == 0)
    {
    new formatx[30];
    if(INI_Open("firmeen.cfg"))
    {
    for(new i = 0;i<max_points;i++)
    {
    if(punkte[i][ist_da]) // if(punkte[i][ist_da] == 1)
    {
    format(formatx,sizeof formatx,"p_x_%d",i);
    INI_WriteFloat(formatx,punkte[i][x]);
    format(formatx,sizeof formatx,"p_y_%d",i);
    INI_WriteFloat(formatx,punkte[i][y]);
    format(formatx,sizeof formatx,"p_z_%d",i);
    INI_WriteFloat(formatx,punkte[i][z]);
    format(formatx,sizeof formatx,"is_there_%d",i);
    INI_WriteInt(formatx,punkte[i][ist_da]);
    format(formatx,sizeof formatx,"Besitzer_von_%d",i);
    INI_WriteInt(formatx, namestring);
    }
    }
    INI_Save();
    INI_Close();
    }
    }


    das der code und ich möchte das bei /Savefirmen die sachen in eine datei gespeichert werden und den namen mit übergeben wie geht es richtig?


    LG Dennis

    du erstelltst in der enum eine neue variable zb alvl diese dient dazu um das adminlevel abzufragen
    beim registrieren erstellst du in der User datei diese Variable/speicherst/lädst kp
    beim einloggen das ganze Laden
    beim disconecten erst speichern und dann die werte auf null setzten
    zu make admin geb ich dir meinen:
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(makeadmin,9,cmdtext);
    return 1;
    }
    dcmd_makeadmin(playerid,params[])
    {
    new pID;
    new alevel;
    if(sscanf(params, "ud",pID,alevel)) {
    return SendClientMessage(playerid,COLOR_RED,"USAGE: /makeadmin [playerid] [adminlevel]");
    }
    if(!IsPlayerConnected(pID)) {
    return SendClientMessage(playerid,COLOR_RED,"Kein Spieler mit angegebener ID Online");
    }
    if(Spieler[playerid][alvl] >= 5)
    {
    Spieler[pID][alvl] = alevel;
    SendClientMessage(playerid,COLOR_RED,"Erfolgreich Spieler admin gegeben/entzogen!");
    }
    if(Spieler[playerid][alvl] < 5)
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin Level 5.");
    }
    if(playerid == pID)
    {
    SendClientMessage(playerid,COLOR_RED,"Sich selber Admin entziehen/geben geht nicht.");
    }
    return 1;
    }

    dann brauchste noch die sscanf methode zum commands mit parameter den einfach ganz unten
    stock sscanf(string[], format[], {Float,_}:...)
    {
    #if defined isnull
    if (isnull(string))
    #else
    if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
    #endif
    {
    return format[0];
    }
    #pragma tabsize 4
    new
    formatPos = 0,
    stringPos = 0,
    paramPos = 2,
    paramCount = numargs(),
    delim = ' ';
    while (string[stringPos] && string[stringPos] <= ' ')
    {
    stringPos++;
    }
    while (paramPos < paramCount && string[stringPos])
    {
    switch (format[formatPos++])
    {
    case '\0':
    {
    return 0;
    }
    case 'i', 'd':
    {
    new
    neg = 1,
    num = 0,
    ch = string[stringPos];
    if (ch == '-')
    {
    neg = -1;
    ch = string[++stringPos];
    }
    do
    {
    stringPos++;
    if ('0' <= ch <= '9')
    {
    num = (num * 10) + (ch - '0');
    }
    else
    {
    return -1;
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num * neg);
    }
    case 'h', 'x':
    {
    new
    num = 0,
    ch = string[stringPos];
    do
    {
    stringPos++;
    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 = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num);
    }
    case 'c':
    {
    setarg(paramPos, 0, string[stringPos++]);
    }
    case 'f':
    {


    new changestr[16], changepos = 0, strpos = stringPos;
    while(changepos < 16 && string[strpos] && string[strpos] != delim)
    {
    changestr[changepos++] = string[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(string, format[formatPos], false, stringPos)) == -1)
    {
    if (format[end + 1])
    {
    return -1;
    }
    return 0;
    }
    format[end] = '\'';
    stringPos = ch + (end - formatPos);
    formatPos = end + 1;
    }
    case 'u':
    {
    new
    end = stringPos - 1,
    id = 0,
    bool:num = true,
    ch;
    while ((ch = string[++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
    string[end] = '\0';
    num = false;
    new
    name[MAX_PLAYER_NAME];
    id = end - stringPos;
    foreach (Player, playerid)
    {
    GetPlayerName(playerid, name, sizeof (name));
    if (!strcmp(name, string[stringPos], true, id))
    {
    setarg(paramPos, 0, playerid);
    num = true;
    break;
    }
    }
    if (!num)
    {
    setarg(paramPos, 0, INVALID_PLAYER_ID);
    }
    string[end] = ch;
    #if defined __SSCANF_FOREACH__
    #undef foreach
    #undef __SSCANF_FOREACH__
    #endif
    }
    stringPos = end;
    }
    case 's', 'z':
    {
    new
    i = 0,
    ch;
    if (format[formatPos])
    {
    while ((ch = string[stringPos++]) && ch != delim)
    {
    setarg(paramPos, i++, ch);
    }
    if (!i)
    {
    return -1;
    }
    }
    else
    {
    while ((ch = string[stringPos++]))
    {
    setarg(paramPos, i++, ch);
    }
    }
    stringPos--;
    setarg(paramPos, i, '\0');
    }
    default:
    {
    continue;
    }
    }
    while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
    {
    stringPos++;
    }
    while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
    {
    stringPos++;
    }
    paramPos++;
    }
    do
    {
    if ((delim = format[formatPos++]) > ' ')
    {
    if (delim == '\'')
    {
    while ((delim = format[formatPos++]) && delim != '\'') {}
    }
    else if (delim != 'z')
    {
    return delim;
    }
    }
    }
    while (delim > ' ');
    return 0;
    }


    die enum:
    enum spieler_daten
    {
    wanted,
    skin,
    alvl,
    Float:lastx,Float:lasty,Float:lastz,
    eingeloggt
    }
    disconnect

    dini_IntSet(accFormat,"skin",Spieler[playerid][skin]);//das zu den anderen

    regdialog:
    bei OnPlayerDialogResponse(kp) findest du
    Spieler[playerid][skin] = dini_Int(accFormat,"skin");
    darunter:
    Spieler[playerid][alvl] = dini_Int(accFormat,"alvl");

    Ich hab folgenden Befehl erstellt(dcmd)
    dcmd_setfirma(playerid,params[])
    {
    new pID;
    new firmenid;
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    if(sscanf(params, "d",pID,firmenid)) {
    return SendClientMessage(playerid,rot,"USAGE: /setfirma [playerid] [Firmenid]");
    }
    if(!IsPlayerConnected(pID)) {
    return SendClientMessage(playerid,rot,"Kein Spieler mit angegebener ID Online");
    }
    if(Spieler[playerid][alvl] >= 5) {
    Spieler[pID][firma] = firmenid;
    new string_[256];
    format(string_, sizeof(string_), "Erfolgreich Spieler %d in die Firma %d eingetragen.",pID ,firmenid);
    SendClientMessage(playerid,rot,string_);
    SpielerUpdate(playerid);
    return 1;
    }
    if(Spieler[playerid][alvl] < 5)
    {
    SendClientMessage(playerid,rot,"Du bist kein Admin Level 5.");
    }
    return 1;
    }
    wenn ich den Befehl benutze :kommt immer:Erfolgreich Spieler 0 in die Firma 0 eingetragen das hab ich eingegeben:/setfirma 0 4


    Weiß einer warum? oder erkennt der den zweiten parameter nicht ?
    Mfg Dennis