Beiträge von KeksOfDeath

    //OnPlayerCommandText:
    if(strcmp(cmdtext,"/timer",true)==0) {
    stimer=SetTimerEx("sweniger",60000,1,"ddd",5,0,0);//die "5,0,0" heißt: 5 Tage, 0 Stunden, 0 Minuten, kannst du beliebig umstellen
    return 1;
    }
    //ganz nach unten:
    public sweniger(t,s,m) {
    if(t==0 && s==0 && m==0) {
    KillTimer(stimer);
    SendClientMessageToAll(FARBE,"Das Rennen beginnt");
    return 1; }
    if(m==0) {
    if(s==0) {
    t--;
    s=24;
    m=59; }
    else {
    s--;
    m=59; }}
    else {
    m--;
    new s[60];
    format(s,sizeof(s),"Es sind noch %d Tage, %d Stunden und %d Minuten",t,s,m);
    SendClientMessageToAll(FARBE,s); }
    return 1;
    }
    //OnGameModeInit:
    forward sweniger(t,s,m);
    new stimer;

    Für dini:
    ONPlayerDisconnect:
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    dini_IntSet("score.ini",name,GetPlayerScore(playerid));
    //OnPlayerConnect:
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    SetPlayerScore(playerid,dini_Int("score.ini",name));
    //OnGameModeInit:
    if(!dini_Exists("score.ini")) { dini_Create("score.ini"); }


    Ich will das ganze haben wie geht das! Ich habe das hier noich nie gemacht!


    Und weißt du, wie sich das anhöhrt? Wie i-son kleines Kind im Supermarkt, das ein Lolli haben will, aber die Mutter "nein" sagt

    Nein?
    if (strcmp("/kill", cmdtext, true, 5) == 0)
    Mit der "5" hinter dem "true" sagst du aus, dass der cmdtext 5 Zeichen lang ist. Das heißt, dass das Script die ersten 5 Zeichen ( / k i l l ) als cmd ansieht und die restlichen als Parameter, die hier aber nicht gefragt werden ----> du köntest "/killfahfklaha" eingeben und es würde immernoch funktionieren, nimmst du jetzt aber die ",5" weg, dann sieht er das ganze als cmdtext ---> Unknown Command

    Deine Methode ist aber ein wenig kurz gedacht...
    Stell dir mal vor, er hat 10 Score, dann bekommt er jede Sekunde 1000$
    Dann geht er ma eben 5 Stunden afk...
    Da würd ich dann eher ne neue Variable einführen ("new lscore[MAX_PLAYERS];")
    Dann:
    if(GetPlayerScore(i) == 10 && lscore[i]<10)
    {
    SendClientMessage(i, COLOR_YELLOW, "Dein Score ist nun auf 10 gestiegen, dafür bekommst du 1000$");
    GivePlayerMoney(i,1000);
    lscore[i]=10;//die setzt du immer wieder auf den letzen scorewert
    return 1;
    }

    Du erstellst ne neue Varaible ("new eingeloggt[MAX_PLAYERS];")
    Beim Login setzt du sie auf 1 ("eingeloggt[playerid]=1;"), wenn er spawnen will fragst du sie ab, das machst du in OnPlayerRequstSpawn ("if(eingeloggt[playerid]==0) { return 0; }")

    Weed:
    //OnGameModeInit:
    if(!dini_Exists("sstats.ini")) { dini_Create("sstats.ini"); }
    sstats[0]=dini_Int("sstats.ini","tode");
    sstats[1]=dini_Int("sstats.ini","kills");
    //OnGameModeExit:
    dini_IntSet("sstats.ini","tode",sstats[0]);
    dini_IntSet("sstats.ini","kills",sstats[1]);
    Dafür brauchst du die Include dini


    @Luka:
    if(strcmp(cmdtext,"/dm",true)==0)
    {
    if(IsSpielerInDM[playerid] == 0)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s has entered DM (/dm)", name);
    SendClientMessageToAll(0xAA3333AA, string);
    SetPlayerPos(playerid,2208.0815,2189.2583,103.8786);
    ResetPlayerWeapons(playerid);
    GameTextForPlayer(playerid,"Welcome to /DM",4000,6);
    GivePlayerWeapon(playerid, 26, 8000);
    GivePlayerWeapon(playerid, 32, 8000);
    SetPlayerHealth(playerid, 100.0);
    SetPlayerArmour(playerid, 100.0);
    IsSpielerInD[playerid] = 1;
    }
    else {
    IsSpielerInDM[playerid] = 0;
    ResetPlayerWeapons(playerid);
    SetPlayerHealth(playerid, 0);
    SetPlayerPos(playerid,2000.5702,1538.4266,13.5859);
    }
    return 1;
    }

    Du verwendest gTeam oder?
    if(strcmp(cmdtext,"/tc",true,3)==0) {
    if(!strlen[cmdtext[4])) return SendClientMessage(playerid,FARBE,"/tc Text");
    new name[MAX_PLAYER_NAME], s[100];
    GetPlayerName(playerid,name,sizeof(name));
    format(s,sizeof(s),"%s: %s",name,cmdtext[4]);
    for(new i=0; i<MAX_PLAYERS; i++) {
    if(IsPlayerConnected(i)) {
    if(gTeam[i]==gTeam[playerid]) {
    SendClientMessage(i,FARBE,s); }}}
    return 1;
    }s

    Ach sorry, hab ich vergessen^^
    mach bei /leavedm noch das mit rein:
    new s[100];
    format(s,sizeof(s),"Tode: %d, Kills: %d, Im DM: %d",sstats[0], sstats[1], sstats[2]);
    TextDrawSetString(stats,s);

    //ganz nach oben:
    new sstats[3], Text:stats;
    ///dm:
    sstats[2]++;
    new s[100];
    format(s,sizeof(s),"Tode: %d, Kills: %d, Im DM: %d",sstats[0], sstats[1], sstats[2]);
    TextDrawSetString(stats,s);
    ///leavedm:
    sstats[2]--;
    //OnPlayerDisconnect:
    if(IsSpielerInDM[playerid]) {
    sstats[2]--;
    new s[100];
    format(s,sizeof(s),"Tode: %d, Kills: %d, Im DM: %d",sstats[0], sstats[1], sstats[2]);
    TextDrawSetString(stats,s); }
    //OnPlayerDeath:
    sstats[0]++;
    if(killerid!=INVALID_PLAYER_ID) {
    sstats[1]++;
    new s[100];
    format(s,sizeof(s),"Tode: %d, Kills: %d, Im DM: %d",sstats[0], sstats[1], sstats[2]);
    TextDrawSetString(stats,s); }
    //OnPlayerConnect:
    TextDrawShowForPlayer(playerid,stats);
    //OnGameModeInit:
    stats=TextDrawCreate(x,y,"Tode: 0, Kills: 0, im DM: 0");

    Damit ist das aber für alle weg...
    machs bei /dm so:
    for(new i=0; i<MAX_PLAYERS; i++) {
    ShowPlayerNameTagForPlayer(i,playerid,0);
    SetPlayerMarkerForPlayer(i,playerid,ne farbe mit ner transparenz von 0); }
    //EDIT: War zu langsam, aber dieses "if(IsPlayerConnected..." würdei ch nicht ausführen, sonst connected jemand neu, geht wieder nach /dm und schwupp sieht er dich

    Guck dur mal an, was du da geschrieben hast:
    if(UC[playerid] == 1)
    {
    new pname[MAX_PLAYER_NAME],sendstr[128]; GetPlayerName(playerid,pname,sizeof pname);
    format(sendstr,sizeof sendstr,"[UC] %s: %s",pname,text);
    for(new i=0;i<MAX_PLAYERS;i++)//du lässt das script bis 200 zählen
    {
    if(GetDistanceBetweenPlayers(playerid,i) < 10)//du überprüfst, on id 0 (weil er von 0 b is 200 zählt) in deiner nähe ist
    {
    SendClientMessage(i,COLOR_YELLOW,sendstr);//du sendest den string (noch ist er bei ID 0, erst wen er einmal durch ist, fängt er mit der 1 an)
    return 0;//baam du returnst und brichst das somit ab (schon bei ID 0)
    }
    }
    }
    Machs so:
    if(UC[playerid] == 1)
    {
    new pname[MAX_PLAYER_NAME],sendstr[128]; GetPlayerName(playerid,pname,sizeof pname);
    format(sendstr,sizeof sendstr,"[UC] %s: %s",pname,text);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(GetDistanceBetweenPlayers(playerid,i) < 10)
    {
    SendClientMessage(i,COLOR_YELLOW,sendstr);
    }
    }
    return 0;
    }