Beiträge von KeksOfDeath

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums

    //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;
    }