abfrage on jemand letzter ist

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • also mein problem ist:


    jede stund wird man zu ner dm arena gespawnt (alle spieler)
    und die bekriegen sich ja, so die spieler können sich im team nciht killen (aber nur nach nem GMX ist n bug o.O)
    und der spieler/die spieler aus einem team die als letztes drinn sind bekommen n bissle geld und werden woanders hingeportet.
    und als abschiedssatz: "Das Team %d hat das Deathmatch gewonnen." oder wenn es ein einzelner spieler ist "Der spieler %s hat das Deathmatch gewonnen."


    also wer mein problem jetzt nicht versteht nochmal nachfragen

  • Zitat

    for schleife, getplayerhealth, PlayerToPoint, fertig


    Eventuell halt noch die Teamvariable mitprüfen. (von der Abfolge her nach PlayerToPoint)
    Wenn du deinen Kopf benutzt, schaffst du das locker anhand der oben genannten Werte.
    Wenn dus nie selber machst, wirst dus auch nie können !

  • da ich mich mit playertopoint und for scheifen nochnie richtig beschäftigt habe, werde ich es ohne hilfe NIE schaffen.


    //EDIT//


    if(deutsch[playerid] == 1)
    {
    for(new player = 0; player < MAX_PLAYERS; player++)
    {
    if(IsPlayerConnected(player))
    {
    if(gTeam[player]== TEAM_Grove)
    {
    SetPlayerPos(player, 4122.0176,-1721.6714,10.5246);
    SetPlayerHealth(player, 250);

    for(new gewinner = 0; gewinner < TEAM_Grove; gewinner++)
    {
    if(gTeam[player]== TEAM_Grove)
    {
    SetPlayerPos(gewinner, 4122.0176,-1721.6714,10.5246);
    GivePlayerMoney(gewinner, 500);
    }
    }
    }
    }
    }


    habe es mal so probiert passiert aber nichts :(

  • //ganz nach oben:
    new imdm, indasdm[MAX_PLAYERS];
    //OnPlayerDisconnect und wenn er das DM anders verlässt (z.B. /dmexit oder so):
    if(indasdm[playerid]==1) {
    imdm--;
    indasdm[playerid]--;
    if(imdm==1) {
    for(new i=0; i<MAX_PLAYERS; i++) {
    if(IsPlayerConnected(i)) {
    if(indasdm[i]==1) {
    SendClientMessage(i,FARBE,"Du hast gewonnen bla bla");
    GivePlayerMoney(i,SUMME); }}}}}


    wenn ich diese variante nehme, dann passiert nichts wenn ich sterbe

  • Um das richtig zu verstehen, treten mehrere Team gegeneinander an und wenn alle Teams weg sind (keiner ausm Team mehr am leben), dann soll das letzte, übrig gebliebene Team gewinnen?
    Sonst bau ich dir jetzt gleich das falsche^^

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Sorry, die Teams brauchte ich doch nciht, war ein Denkfehler, egal
    //ganz nach oben:
    #define alleteams 14
    forward gewinncheck();
    new gewt, imdm[alleteams];
    //Wenn alle da rein geportet werden:
    gewt=SetTimer("gewinncheck",2000,1);
    und du musst natürlich die Variable (imdm) für jeden Spieler, der im Team ist um 1 erhöhen, Beispiel:
    gewt=SetTimer("gewinncheck",2000,1);
    for(new i; i<MAX_PLAYERS; i++) {
    imdm[gTeam[i]]++; }//falls du gTeam verwendest
    //ganz nachn unten:
    public gewinncheck() {
    new x, i;
    for(; i<alleteams; i++) {
    if(imdm[i]>=1) {
    x++; }}
    if(x) {
    for(i=0; i<alleteams; i++) {
    if(imdm[i]>=1) {
    new s[100];
    format(s,sizeof(s),"Das Team %d hat gewonnen",i);
    SendClientMessageToAll(FARBE,s);
    imdm[i]=0;
    x=i;
    i=alleteams; }}
    for(i=0; i<MAX_PLAYERS; i++) {
    if(IsPlayerConnected(i)) {
    if(gTeam[i]==x) {//sofern du gTeam verwendest^^
    GivePlayerMoney(i,SUMME); }}}
    KillTimer(gewt); }
    PS: Funktioniert nur, wenn du deine 14 Teams von 0 bis 13 durchnummeriert hast, sollte es von 1 bis 14 sein, musst du "alleteams" als 15 deklarieren und dort, wo du die "imdm" Varaible hochrechnest überprüfewn, dass sie nciht das Team 0 haben
    Sollte es anders nummeriert sein (1,5,8,59,...) dann funzt es nicht

  • OKay geht jetzt soweit, aber da steht imemrnoch "Das Team 0 hat gewonnen." da sollte aber der Team name z.B. "Das Team Grove hat gewonnen." stehen.
    und wenn man gewonnen hat, wird man dauernd nach da geportet und bekommt alle 2 sekunden geld..
    //EDIT//
    okay, das ist jetzt gut..
    aber, wenn ich jetzt aufn server komme, und ein anderer kommt drauf, geht in ein anderes team, dann sagt das script das ich gewonnen hätte obwohl wir nichtmal angefangen haben zu kämpfen.. :(, wo liegt der fehler