Moin,
ich weiß jetzt irgentwie nicht wie ich das machen soll wen man z.B /dm eingibt das man z.B bei einem von 4 Spawn Plätzen spawnt und wen man stirbt wieder bei einen der 4 Spawn Plätze spawnt und man mit /back wieder am normale Spawn Platz spawnt.
Hoffe mir kann jemand helfen.
Danke im vorraus. .
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
-
-
Habe ich nu mal auf schnelle geschrieben
new Float:DmRandomSpawn[2][3] = {
{koords},
{koords}
};
Das kannste iwo hin mache
Dann der Befehl
if (strcmp("/dm", cmdtext, true, 10) == 0)
{
rand = random(sizeof(DmRandomSpawn));
SetPlayerPos(playerid,DmRandomSpawn[rand][0],DmRandomSpawn[rand][1],DmRandomSpawn[rand][2]);
return 1;
}Wenn irgendwas falsch ist, bitte Korigieren
-
Das passt ja i.wie net zusammen.
-
Grund?
Habe es genau so bei mir drin stehen,
und es funktioniert perfekt.EDIT:// Ups, da is mir wohl was passiert,
Wurde verbessert -
Danke
Und wie mache ich das wen man stirbt auch an einer random position spawnt und mit /back wieder an der ganz normalen (dort wo man spawnt wen man connectet) spawn?. -
Dazu müsstest du noch eine Variable einbauen
z.b.
Ganz Oben hin
new dm[MAX_PLAYERS];
dann der Befehl
if (strcmp("/dm", cmdtext, true, 10) == 0)
{
rand = random(sizeof(DmRandomSpawn));
SetPlayerPos(playerid,DmRandomSpawn[rand][0],DmRandomSpawn[rand][1],DmRandomSpawn[rand][2]);
dm[playerid] = 1;
return 1;
}Und nun bei OnPlayerDeath(playerid)
if(dm[playerid] >= 0 )
{
rand = random(sizeof(DmRandomSpawn));
SetPlayerPos(playerid,DmRandomSpawn[rand][0],DmRandomSpawn[rand][1],DmRandomSpawn[rand][2]);
}//Nicht Getestet.
Bei Fehler einfach den Fehler Posten. -
Danke
Aber wie mache ich noch das wen man /back macht das man wieder am Normalen Spawn spawnt?
Also an dem Spawn wo man spawnt wen man einen skin ausgewählt hat? -
Kannst ja die Coords speichern etwa so:
new Float: LastX, Float: LastY, Float: LastZ;
GetPlayerPos(LastX, LastY, LastZ);
//Command//back
SetPlayerPos(LastX,LastY,LastZ); -
Wo muss ich das GetPlayerPos hinmachen??
Und wie speicher ich das? -
Das GetPlayerPos solltest du bei deinem Befehel bevor der Random Spawn eintritt machen. Das SetPlayerPos dann bei /back. Er speichert es halt nur kurz. Sonst speicherst es in einer Datei.
-
-
Danke..bekomme aber 6 Warnings:
C:\DOKUME~1\Besitzer\EIGENE~1\79fgz6o9\dm\GAMEMO~1\dm.pwn(347) : warning 213: tag mismatch
C:\DOKUME~1\Besitzer\EIGENE~1\79fgz6o9\dm\GAMEMO~1\dm.pwn(347) : warning 202: number of arguments does not match definition
C:\DOKUME~1\Besitzer\EIGENE~1\79fgz6o9\dm\GAMEMO~1\dm.pwn(360) : warning 213: tag mismatch
C:\DOKUME~1\Besitzer\EIGENE~1\79fgz6o9\dm\GAMEMO~1\dm.pwn(360) : warning 202: number of arguments does not match definition
C:\DOKUME~1\Besitzer\EIGENE~1\79fgz6o9\dm\GAMEMO~1\dm.pwn(466) : warning 213: tag mismatch
C:\DOKUME~1\Besitzer\EIGENE~1\79fgz6o9\dm\GAMEMO~1\dm.pwn(466) : warning 202: number of arguments does not match definition -
^^Ich brauch den Code.
-
Das ist jetzt der Port Command:
//FunnyDM>
if(strcmp(strget(cmdtext,0), "/fdm", true) == 0 || strcmp(strget(cmdtext,0), "/funnydm", true) == 0 || strcmp(strget(cmdtext,0), "/funnydeathmatch", true) == 0)
{
new pname[MAX_PLAYER_NAME];
new string[100];
GetPlayerName(playerid, pname, sizeof(pname));
format(string, sizeof(string), "%s ist nun in der Funny DM Arena!", pname);
SendClientMessageToAll(COLOR_LIGHTBLUE, string);
rand = random(sizeof(FDmRandomSpawn));
SetPlayerPos(playerid,FDmRandomSpawn[rand][0],FDmRandomSpawn[rand][1],FDmRandomSpawn[rand][2]);
SendClientMessage(playerid, COLOR_GREY, "Mit /spos spawnst du wieder an deiner letzen Position.");
GetPlayerPos(LastX, LastY, LastZ);
return 1;
}das ist jetzt der back command:
//----------------/spos------------------
if(strcmp(cmdtext, "/spos", true, 2) == 0 || strcmp(cmdtext, "/sb", true, 2) == 0)
{
SetPlayerPos(LastX,LastY,LastZ);
return 1;
} -
Das GetPlayerPos muss VOR dem SetPlayerPos sein (im 1. Cmd), ansonsten savet Pawn die Coords nach dem Porten.
-
Achso ok hab ich gemacht aber die Warnings bleiben immernoch
-
Code mit Zeilenangabe der Errors !!
-
sind nur noch 4 warings:
if(strcmp(strget(cmdtext,0), "/fdm", true) == 0 || strcmp(strget(cmdtext,0), "/funnydm", true) == 0 || strcmp(strget(cmdtext,0), "/funnydeathmatch", true) == 0)
{
new pname[MAX_PLAYER_NAME];
new string[100];
GetPlayerName(playerid, pname, sizeof(pname));
format(string, sizeof(string), "%s ist nun in der Funny DM Arena!", pname);
SendClientMessageToAll(COLOR_LIGHTBLUE, string);
rand = random(sizeof(FDmRandomSpawn));
GetPlayerPos(LastX, LastY, LastZ); // Hier sind zwei Warnings
SetPlayerPos(playerid,FDmRandomSpawn[rand][0],FDmRandomSpawn[rand][1],FDmRandomSpawn[rand][2]);
SendClientMessage(playerid, COLOR_GREY, "Mit /spos spawnst du wieder an deiner letzen Position.");
return 1;
}//----------------/spos------------------
if(strcmp(cmdtext, "/spos", true, 2) == 0 || strcmp(cmdtext, "/sb", true, 2) == 0)
{
SetPlayerPos(LastX,LastY,LastZ); // Hier sind zwei Warnings
return 1;
} -
Bin ich blind xD
Sorry, so muss es sein:
if(strcmp(strget(cmdtext,0), "/fdm", true) == 0 || strcmp(strget(cmdtext,0), "/funnydm", true) == 0 || strcmp(strget(cmdtext,0), "/funnydeathmatch", true) == 0)
{
new pname[MAX_PLAYER_NAME];
new string[100];
GetPlayerName(playerid, pname, sizeof(pname));
format(string, sizeof(string), "%s ist nun in der Funny DM Arena!", pname);
SendClientMessageToAll(COLOR_LIGHTBLUE, string);
rand = random(sizeof(FDmRandomSpawn));
GetPlayerPos(playerid, LastX, LastY, LastZ); // Hier sind zwei Warnings
SetPlayerPos(playerid,FDmRandomSpawn[rand][0],FDmRandomSpawn[rand][1],FDmRandomSpawn[rand][2]);
SendClientMessage(playerid, COLOR_GREY, "Mit /spos spawnst du wieder an deiner letzen Position.");
return 1;
}//----------------/spos------------------
if(strcmp(cmdtext, "/spos", true, 2) == 0 || strcmp(cmdtext, "/sb", true, 2) == 0)
{
SetPlayerPos(playerid,LastX,LastY,LastZ); // Hier sind zwei Warnings
return 1;
} -
Danke jetzt gehts
-
breadfish.de
Hat das Thema geschlossen.