Üdv, ismét hozzátok fordulok mert sehogy sem tudom megcsinálni ezt:
if (strcmp(cmdtext, \"/map1\", true) == 0)
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, \"admin cmd!\");
SpawnPlayer(TEAM_1);
SpawnPlayer(TEAM_2);
SpawnPlayer(TEAM_3);
SetPlayerPos(TEAM_1,-1331.5000,-40.4000,14.1484);
SetPlayerPos(TEAM_2,-1190.0000,-181.9000,14.1484);
SetPlayerPos(TEAM_3,-1228.7000,-78.4000,27.3713);
return 1;
}
if (strcmp(cmdtext, \"/map2\", true) == 0)
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, \"admin cmd!\");
SpawnPlayer(TEAM_1);
SpawnPlayer(TEAM_2);
SpawnPlayer(TEAM_3);
SetPlayerPos(TEAM_1,2794.0728,-2417.4148,13.6321);
SetPlayerPos(TEAM_2,2647.9607,-2505.0376,13.4922);
SetPlayerPos(TEAM_3,2730.9927,-2450.9575,17.5937);
return 1;
}
Itt minden jó mûködik átteszi a csapatokat a megadott helyre, de viszont, ha valaki meghal, akkor átteszi arra a pozícióra ami az AddPlayerClassban van.
Nekem annyi kellene, pl ha MAP1-en vagyunk, akkor a megadott pozíción spawnoljanak halál után a csapatok, ha viszont átrakom MAP2-re onnantól MAP2-õn spawnoljanak a csapatok.
Olyat lehet csinálni, hogy ha a /map1 parancsot végrehajtottam, akkor a felcsatlakozó játékos csapatválasztás után oda kerül a csapat megadott pozíciójára és nem az AddPlayerClassban megadottra? (Ugyan így a másiknál is, ha map2 parancsot végrehajtom akkor csatlakozás után a map2 pozícióin spawnolnak a csapatok.
Nem jó az egész.
Mondok egy példát.
TEAM_1 = 1, TEAM_2 = 2, TEAM_3 = 3;
Ha az admin használja ezt a parancsot, akkor csak az 1 id Játékost, a 2 és a 3 id Játékost teleportálja oda.
Nem értem hogy pontosabban mit akarsz csinálni evel a paranccsal.
De valahogy így csináld:
new gTeam[MAX_PLAYERS];
new map;
#define TEAM_1 1
#define TEAM_2 2
#define TEAM_3 3
meg csináljuk a csapatválasztást. ha az 1 es skint választja, gTeam[playerid] = TEAM_1 és így tovább.
if (strcmp(cmdtext, \"/map1\", true) == 0)
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, \"admin cmd!\");
map = 1;
for(new i; i <= MAX_PLAYERS; i++) {
if(gTeam == TEAM_1) return SetPlayerPos(i,-1331.5000,-40.4000,14.1484);
if(gTeam == TEAM_2) return SetPlayerPos(i,-1190.0000,-181.9000,14.1484);
if(gTeam == TEAM_3) return SetPlayerPos(i,-1228.7000,-78.4000,27.3713);
}
return 1;
}
if (strcmp(cmdtext, \"/map2\", true) == 0)
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, \"admin cmd!\");
map = 2;
for(new i; i <= MAX_PLAYERS; i++) {
if(gTeam == TEAM_1) return SetPlayerPos(i,2794.0728,-2417.4148,13.6321);
if(gTeam == TEAM_2) return SetPlayerPos(i,2647.9607,-2505.0376,13.4922);
if(gTeam == TEAM_3) return SetPlayerPos(i,2730.9927,-2450.9575,17.5937);
}
return 1;
}
A további részét nem értem, mit akarsz csinálni vele, viszont ha azt akarod hogy meghalÁs után ismét újra oda teleportáljon vissza.
public OnPlayerSpawn(playerid) {
if(map == 1 && gTeam[playerid] == TEAM_1) return SetPlayerPos(playerid,-1331.5000,-40.4000,14.1484);
if(map == 1 && gTeam[playerid] == TEAM_2) return SetPlayerPos(playerid,-1190.0000,-181.9000,14.1484);
if(map == 1 && gTeam[playerid] == TEAM_3) return SetPlayerPos(playerid,-1228.7000,-78.4000,27.3713);
if(map == 2 && gTeam[playerid] == TEAM_1) return SetPlayerPos(playerid,2794.0728,-2417.4148,13.6321);
if(map == 2 && gTeam[playerid] == TEAM_2) return SetPlayerPos(playerid,2647.9607,-2505.0376,13.4922);
if(map == 2 && gTeam[playerid] == TEAM_3) return SetPlayerPos(playerid,2730.9927,-2450.9575,17.5937);
return 1;
}