Da mein Post im Sammelthread bisher unbeantwortet geblieben ist hier noch einmal ein Versuch, hilfsbereite User zu erreichen:
Ich bin dabei mir ein Team-System zu scripten und hab jetzt aber folgendes Problem, dass bei der Teamabfrage mit "/me" bei allen Polizisten angezeigt wird, sie seien Zivilisten. Bei CJ jedoch wird richtig angezeigt, dass er GrooveStreet Member ist.
Findet jemand den Fehler?
Hier die Defines:
static gTeam[MAX_PLAYERS];
#define TEAM_GROOVE 0
#define TEAM_POLICE 1
#define TEAM_ZIVIS 2
Die Spielerklassen:
AddPlayerClass(0,2185.6685,-1812.9491,13.5569,191.9988,0,0,0,0,0,0);//CJ
AddPlayerClass(280,1541.0613,-1675.5898,13.5518,87.7057,0,0,0,0,0,0); //Polizei
AddPlayerClass(288,1541.2834,-1675.6553,13.5522,91.1210,0,0,0,0,0,0); //Polizei
AddPlayerClass(285,1541.1193,-1675.6711,13.5519,90.8624,0,0,0,0,0,0); //Polizei
AddPlayerClass(283,1541.5750,-1675.6710,13.5528,92.0829,0,0,0,0,0,0); //Polizei
AddPlayerClass(282,1541.5105,-1675.5355,13.5527,91.1430,0,0,0,0,0,0); //Polizei
AddPlayerClass(281,1542.0580,-1675.6300,13.5538,90.5162,0,0,0,0,0,0); //Polizei
AddPlayerClass(10,2185.6685,-1812.9491,13.5569,191.9988,0,0,0,0,0,0);//Dicke Oma
Hier die Teamwahl:
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid,2148.1243,-1485.0050,26.6239);
SetPlayerCameraPos(playerid,2141.0146,-1485.2502,25.5391);
SetPlayerCameraLookAt(playerid,2148.1243,-1485.0050,26.6239);
SetPlayerFacingAngle(playerid,90.0);
switch(classid)
{
case 0: gTeam[playerid] = TEAM_GROOVE;// Skin 0 ist GrooveStreetMember
case 280..283,285,288: gTeam[playerid] = TEAM_POLICE; // Skin 280-283,285,288 sind Cops
default: gTeam[playerid] = TEAM_ZIVIS;// alle anderen Skins(10) sind Zivilisten
}
return 1;
}
Und der "/me"-Befehl:
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/me", cmdtext, true) == 0) //TEAMTEST
{
if(gTeam[playerid] == TEAM_POLICE)
{
GameTextForPlayer(playerid,"Du bist Polizist.",3000,3);
}
else if(gTeam[playerid] == TEAM_GROOVE)
{
GameTextForPlayer(playerid,"Du bist GrooveStreet Member.",3000,3);
}
else if(gTeam[playerid] == TEAM_ZIVIS)
{
GameTextForPlayer(playerid,"Du bist Zivilist.",3000,3);
}
return 1;
}
return 1;
}
Hier auch das zweite benannte Problem mit den Fraktionsautos, die JEDES andere Team auch benutzen kann, wobei die gescripteten Aktionen wie Spielerrauswurf aus dem Auto und die Nachricht auf dem Spielerbildschirm, nicht eintreten.
Hier alles Wichtige:
new copcar;
copcar = AddStaticVehicle(596,1601.1548,-1700.2468,5.6123,90.4101,0,1); // Policecar 1
copcar = AddStaticVehicle(596,1601.2417,-1696.1384,5.6109,90.2837,0,1); // Policecar 2
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(vehicleid == copcar) //COPCAR-FUNKTION
if (gTeam[playerid] == TEAM_POLICE)
{
GameTextForPlayer(playerid, "Du befindest dich nun in deinem Einsatzfahrzeug.", 3000,3);
}
else
{
RemovePlayerFromVehicle(playerid);
GameTextForPlayer(playerid, "Du bist kein Polizist!", 3000,3);
}
return 1;
}
Über jegliche Form von Hilfe, wäre ich sehr dankbar.
Einen schönen Abend wünsch ich euch noch.