Hey, alsoo, ich hätte gerne von EUCH für MEINEN Gamemode, etwas,
wo man ins DM geportet wird, und wenn man stirbt, das man wieder am
DM Feld spawnt...
Es sollte desweiteren auch keine befehle nutzbar sein ausser /exitmini
Hey, alsoo, ich hätte gerne von EUCH für MEINEN Gamemode, etwas,
wo man ins DM geportet wird, und wenn man stirbt, das man wieder am
DM Feld spawnt...
Es sollte desweiteren auch keine befehle nutzbar sein ausser /exitmini
Einfach ne Variable nehmen
indm[MAX_PLAYERS];
bei dem befehl /dm wird die var auf eins gesetzt.
Dann bei OnPlayerSpawn :
if(indm[polayerid] == 1)
{
// DMspawnpunkt
}
else
{
// normaler spawn wenn nicht indm
}
Dann bei den Befehlen genau die gleiche Abfrage
also irgendwie... versteh... ich das nit ganz :<
Wenn er in der DM-Zone Spawnen soll, solltest du iwas definiert haben..
if(indm[playerid] == 1)//Abfragt ob er In der DM Zone ist (Ist Beispiel)
{
//Hier kannst du die Koordinaten rein haun am besten per Float
}
else //Oder ist er nicht in der DM Zone? Hier den normalen spawn
{
// normaler spawn wenn nicht indm
}
new indm[MAX_PLAYERS]; //... Definieren davor^^
Also du erstellst eine Variable die für alle Spieler gültig ist. Diese gibt an ob ein Spieler in dem DM ist oder nicht
new indm[MAX_PLAYERS];
Bei OnPlayerConnect wird die Var auf 0 gesetzt, weil er zu dem Zeitpunkt ja nicht im DM ist
--> OnPLayerConnect
indm[playerid] = 0;
Dann hast du ja bestimmt einen Befehl wie man zu dem DM kommt.
Bei diesem Befehl musst du die Var auf eins setzten
indm[playerid] = 1;
Damit der Spieler wenn er im DM ist auch immer da Spawnt musst du beim OnPLayerSpawn public eine Abfrage einbauen
Dies geschieht wie folgt :
if(indm[playerid] == 1)
{
SetPlayerPos(playerid, X, Y, Z);
// DMspawnpunktkoordinaten für X Y Z einfügen
}
else
{
SetPlayerPos(playerid, X, Y, Z);
// hier die koordinaten eintragen, wo er spawnen soll wenn er nicht im DM ist
}
Dann musst du bei deinen ganzen Befehlen eine Abfrage einfügen
if(indm[playerid] == 1)
{
SendClientMessage(playerid, COLOR_WHITE, "Du kannst diesen Befehl nicht nutzen, da du im DM bist");
return 1;
}
else
{
// Hier einfach die Sachen einfügen, die bei dem Befehl geschehen sollen
return 1;
}
Dann musst du noch nen /enddm befehl machen, bei dem die Var wieder auf 0 gesetzt wird
Hoffe jetzt ist es verständlich
Ich baruche jetzt nurnoch, dass man keine Commands nutzen kann xD
In welchem Sinn?
Verstehe ich nicht sry (wie du es meinst xD)
Jetzt kann man wenn man im DM ist ja immernoch alle befehle nutzen, aber ich weis nit wie ich das mache, dass man keine befehle nutzen kann... vllt wie oben? das ist aber n bissl komisch, weil das is ja so dass man da auch wieder spawnt aber das ist ja nit soo owichtig^^
Dann machst du das bei jedem Command rein:
if(indm[playerid] == 1)
{
//Es soll nichts Passieren.
}
Sprich bei diesem Text-Command:
if(strcmp("/lol", cmdtext, true, 10) == 0)
{
if(IsPlayerConnected(playerid))
{
SendClientMessage(playerid, COLOR_BLUBB,"lol^^");
}
return 1;
}
wo baue ich dann:
if(indm[playerid] == 1)
{
//Es soll nichts Passieren.
}
ein?
so einfach
if(strcmp("/lol", cmdtext, true, 10) == 0)
{
if(indm[playerid] == 1)
{
//Es soll nichts Passieren.
}
if(IsPlayerConnected(playerid))
{
SendClientMessage(playerid, COLOR_BLUBB,"lol^^");
}
return 1;
}
machst einfach so:
public OnPlayerCommandText(playerid, cmdtext[])
{
if(indm[playerid] == 1)
{
SendClientMessage(playerid, COLOR, "Du bist im DM.Du kannst jezz keine Commands ausführen");
return 0;//oder return1;? weiss ich jezze gar net....
}
//hier deine ganzen commands
return 0;
}
Ja dann kann man nichtmal das DM verlassen wenn man kein Command benutzen kann
ja dann halt:
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/leavedm", cmdtext, true, 10) == 0)
{
indm[playerid] = 0;
return 1;
}
if(indm[playerid] == 1)
{
SendClientMessage(playerid, COLOR, "Du bist im DM.Du kannst jezz keine Commands ausführen");
return 0;//oder return1;? weiss ich jezze gar net....
}
//hier deine ganzen commands
return 0;
}
So besser? xD^^
Nein das ist eigentlich das selbe,
Zum DM Exit cmd, solltest du für den spieler ne abfrage machen ob er bereits im DM ist...
if(indm[playerid] == 1)
{
SendClientMessage(playerid,hellrot,"-Fehler- Du bist schin im Deathmatch.");
}