Ja, dann machst du bei /schrankeauf (und auch bei den anderen) da eine Abfrage rein...
if(gTeam[playerid]==TEAM_COP) {
... }
if(strcmp(cmdtext, "/schrankeauf", true) == 0) {
if(gTeam[playerid]==TEAM_COP) {
Beiträge von KeksOfDeath
-
-
Nein, ich habe es einfach mal mit gTeam gemacht, was du, wie es aussieht auch verwnedest... also kannst du es so lassen
-
if(classid == medicclass1 || classid == medicclass2 || classid == medicclass3)
{
SetPlayerColor(playerid,TEAM_Medic_COLOR); gTeam[playerid] = TEAM_Medic;
}else if(classid == policeclass1 || classid == policeclass2 || classid == policeclass3 || classid == policeclass4 || classid == policeclass5 || classid == policeclass6 || classid == policeclass7 || classid == policeclass8)
{
SetPlayerColor(playerid,TEAM_Cops_COLOR); gTeam[playerid] = TEAM_Cops;
}else{
SetPlayerColor(playerid, 0xF6F6F600);
} -
SetPlayerVirtualWorld(playerid,worldid);
worldid kann von 0 bis 255 oder 256 varieren (weiß ich jetzt nicht so genau :/), wobei 0 die "normale" ist... Man kann nur Personen (und Fahrzeuge) in der eigenen Virtual World sehen -
Hast du schon irgendwie Team definert? Wie z.B. gTeam? if(gTeam[playerid]==cop) {
-
Egal, solange du keinen public unterbrichst... Wenn mans ans Ende packt, dann kann nichts schief gehen^^
-
if(!strcmp(strget(cmdtext,0),"/makeleader")) {
if(IsPlayerAdmin(playerid)) {
if(strlen(strget(cmdtext,1))) {
new typ=strval(strget(cmdtext,1));
if(IsPlayerConnected(typ)) {
if(strlen(strget(cmdtext,2))) {
new team=strval(strget(cmdtext,2));
//ich weiß jetzt nciht, wie du es mit den Team gemacht hast...
gTeam[typ]=team;
//für nachrichten sendne hab ich jetzt keine zeit mehr, kannst sicher selbst
}}}}
//für errornachrichten auch keine mehr^^ sollte aber so funzen
return 1;
}
Vorraussetzung ist, dass du strget definiert hast -
MAX_PLAYERS mit MAX_VEHICLES austauschen
-
Dann tauscht du halt das gTeam mit dem anderen aus, was bei dir die Jobs bestimmt und setzt es dann auf 1 oder 0
-
Rufst du den public überhaupt auf?
if(classid == 276 || classid == 278 || classid == 274)
{
gTeam[playerid] = TEAM_Medic;
SetPlayerToTeamColor(playerid);
}
PS: Heißt so nicht auch eine pawno FUnktion? Die Namen sollten sich nicht überschneiden
PS2: Du kannst den public auch ganz am Ende von OnPlayerRequstClass aufrufen -
SuFu kann helfen... menü cmd ...
-
Du könntest eine globale Varibale erstellen und dann halt...
bizid=variable;
variable++;
Dann später:
if(bizid==8) { ... -
Mit SendClientMessage ist nur eine Farbe pro Text möglich
-
Bei OnVehicleDeath:
DestroyVehicle(vehicleid); -
Ist nur im GameText/TextDraw möglich (~r~, ~w~, ...)
-
Aber nun muss man mal denken, dass man nich t allein aufm Server ist... Wenn dafür ein anderer in LV rumläuft, kann man auch Autos heranspawnen, die in 150 metern Umkreis von der anderen Person sind... Und dann joined eine dritte Person den Server... xD
Man müsste 700 x,y und z Floats bereit stellen, somit hat jedes Fahrzeug seine eigene gespeihcerte Position, dann nen Timer, der jede Sekunde checkt, ob noch alle Fahrzeuge an ihrem zuletzt gespeichertem Punkt stehen, außer die Fahrzeuge, in denen einer drinne sitzt
Also pro Sekunde noch eine for-player-schleife und eine for-vehicle-schleife einbauen (wobei die ja aufeinander folgen müssten, d.h. pro Sekunde wird bis 700*~200 gezählt, das wären ~14000... ich glaub da wirds ganz schön doll laggen... -
Bei OnPlayerText steht am Ende ein "return 1;" aus der 1 mach ne 0
-
Oder man nimmts nicht ausm GF...
public OnPlayerText(...) {
new s[150], name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(s,sizeof(s),"%s (ID %d): %s",name,playerid,text[0]);
SendClientMessageToAll(farbe,s);
return 0;
} -
Ganz nach oben:
new Float:ppx[MAX_PLAYERS], Float:ppy[MAX_PLAYERS], Float:ppz[MAX_PLAYERS];//vllt auch noch "int[MAX_PLAYERS]"
Dann bei /afk
GetPlayerPos(playerid,ppx[playerid],ppy[playerid],ppz[playerid]);
//möglicherweise auch GetPlayerInterior(playerid,int[playerid]);
Und bei /back
SetPlayerPos(playerid,ppx[playerid],ppy[playerid],ppz[playerid]);
//möglicherweise auch SetPlayerInterior(playerid,int[playerid]); -
Beim ausloggen (OnPlayerDisconnect) musst die das eingeloggte wieder zurücksetzen (ich weiß jetzt ja nciht, wie es bei dir deklariert ist)
Und zu den Autos... (dies ist jetzt eine gaaaaaaanz einfache Version davon)
OnPlayerStateChange:
if(newstate==PLAYER_STATE_DRIVER) {
TogglePlayerControlleable(playerid,0); }//Error: undefineted symbol, musst ma nachgucken, wie das richitg heißt^^ (das Ding konnt ich mir noch nie merken^^)
Und bei nem anderen Cmd (wie /an) dann das TogglePlayerControlleable wieder auf 1 setzen