Wir/Ich habe(n) keine Glaskugel.....
Beschreib dein Problem mal etwas genauer....
P.S.: Obwohl das ja viel zu einfach wäre...
for schleife, getplayerhealth, PlayerToPoint, fertig
Wir/Ich habe(n) keine Glaskugel.....
Beschreib dein Problem mal etwas genauer....
P.S.: Obwohl das ja viel zu einfach wäre...
for schleife, getplayerhealth, PlayerToPoint, fertig
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
Zitatfor 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
Jetz gibste immer, wenn ein Grove in die Arena kommt, jedem Grove 500$.....
Was sollen die ganzen Schleifen ineinander ?
Du amchst es dir zu kompleziert...
Versuch doch mal, meine Variante einzubauen !
//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^^
Genau, und das Team soll geld bekommen und wegeportet werden.
wenn es ging könntest du noch einbauen das dann bei allen steht "Das Team (team name) hat gewonnen" ?
Sorry, noch eine Frage^^
Wie viele Team hast du?
Müsste ich dafür wissen
Ich habe 14 Teams^^
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
wie meinst du das von 0 bis 14 ?
//EDIT//
Da steht jetzt "Das Team 0 hat gewonnen" und das immer wieder
Achso, ja, in Zeile 22 musst du auch noch das einfügen:
imdm[i]=0;
PS: Habs oben geändert, war nochn kleiner Fehler drinne
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