HI, ich wollte, dass wenn ein Player in einen Checkpoint läuft, für ihn eine Playermessage, und für die anderen Spieler halt eine andere Message senden. Leider hab ich's nicht ganz hinbekommen. Kann mir da jemand helfen?
Hier ein Teil aus'm Script:
public OnPlayerEnterCheckpoint(playerid)
{
switch(gClass[playerid])
{
case 0,1,2,3:
{
if(IsPlayerInAnyVehicle(playerid))
{
//nichts
}
else
{
GameTextForPlayer(playerid, "Passe auf, dass die Paparazzi keine Aufmahmen machen!", 6000, 5);
}
}
case 4,5,6,7:
{
if(IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid,ROT,"Du musst erst aussteigen!");
}
else
{
GameTextForPlayer(playerid, "Gut, du hast die Aufnahmen!", 6000, 5);
GameTextForAll("~r~Ein Paparazzo hat Aufnahmen von der Villa gemacht!",6000,5);
DisablePlayerCheckpoint(playerid);
}
}
}
return 1;
}
Checkpointfragen
- DuffMan
- Geschlossen
- Erledigt
-
-
Du meinst wohl andere Font´s/Schriften
GameTextForPlayer(playerid, "Gut, du hast die Aufnahmen!", 6000, 5);//GameTextForPlayer(playerid, Text, Intervall, Style 1-5);
Wenn du die Style Id zb. durch 1 ersetzt wird der Text durch eine andere Schriftart ersetzt
-
Nein, ich meine, dass der Player im Checkpoint Die GameMessage "Gut, du hast die Aufnahmen!" und alle anderen player die GameMessage "~r~Ein Paparazzo hat Aufnahmen von der Villa gemacht!" bekommen.mit den Fonts is' alles ok.
-
Header:
new istatvilla[MAX_PLAYERS];OnPlayerEnterCheckpoint:
public OnPlayerEnterCheckpoint(playerid)
{
switch(gClass[playerid])
{
case 0,1,2,3:
{
if(IsPlayerInAnyVehicle(playerid))
{
//nichts
}
else
{
GameTextForPlayer(playerid, "Passe auf, dass die Paparazzi keine Aufmahmen machen!", 6000, 5);
}
}
case 4,5,6,7:
{
if(IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid,ROT,"Du musst erst aussteigen!");
}
else
{
istavilla[playerid] = 1;
if(istavilla[playerid] == 1)
{
GameTextForPlayer(playerid, "Gut, du hast die Aufnahmen!", 6000, 5);
GameTextForAll("~r~Ein Paparazzo hat Aufnahmen von der Villa gemacht!",6000,5);
DisablePlayerCheckpoint(playerid);
}
}
}
}
return 1;
}Könnte gehen .. muss aber nicht :>
//Edit:
Gr...Sorry aber Ne mein Code ist iwie Unlogisch..
Dein Normaler Code sollte schon gehen..Mit Freundlichen Grüßen
mR_FatJoe -
hab ich auch gemerkt. Nur bei meinem normalen Code bekommt der Player im Checkpoint die Message, die für die anderen bestimmt war, also GameTextForAll("~r~Ein Paparazzo hat Aufnahmen von der Villa gemacht!",6000,5);
. -
Tausche das mal
das es so aussieht ;D
Weil dann spielt er erst an alle die Funktion "GameTextTOall" und sofort danach bekommt nur er die Nahricht Gut du hast die AUfnahmen
GameTextForAll("~r~Ein Paparazzo hat Aufnahmen von der Villa gemacht!",6000,5);
GameTextForPlayer(playerid, "Gut, du hast die Aufnahmen!", 6000, 5);
DisablePlayerCheckpoint(playerid); -
Hat funktioniert! Ganz einfach.
Danke.//EDIT:
Weiß einer vielleich, wie man das jetzt macht, dass man erst nach 3 sec. "die Aufnahmen hat", also dass erst dann Der GameText gesendet wird? -
mit'n timer..
Header:
forward bekommen(playerid)Dann da wo der GameText kommen solll abwann die 5sek gälten also^^
SetTimer("bekommen",3000,1); // 1000 = 1sek für 3 sek also 3000und der Public
Ganz unten im Script!public bekommen(playerid)
{
// Was Passieren soll!
} -
Wenn dann mit SetTimerEx
// Forward Declaration
forward Bekommen(playerid);// Da wo vorher der GameText gekommen ist:
SetTimerEx("Bekommen",5000,0,"i",playerid);// Eigenes Callback:
public Bekommen(playerid)
{
GameTextForPlayer(playerid, "Du hast die Aufnahmen", 3000, 1);
return 1;
} -
Funktioniert beides gleich gut. Wo soll da denn der Unterschied sein?
Wie kann man denn noch einstellen, dass man im Checkpoint drinnenbleiben muss und erst dann nach 5 sec die Message gesendet wird? -
-
Freeze ihn einfach wenn er im Checkpoint ist..
oder mach noch einen Timer der jede sekunde überprüft ob er im Checkpoint ist^^Was ist anders?
SetTimerExt ist nur für die Person mit der SpielerID
SetTimer ist für alle spieler im ganzen server^^also nehm lieber SetTimerEx!
-
Zitat
SetTimerExt ist nur für die Person mit der SpielerID
SetTimer ist für alle spieler im ganzen server
Achso, danke.Ich hab das Problem etwas anders gelöst und es funktioniert. Ich wollte trotzdem nochmal meine Lösung hier reinsetzen. Ist das so in Ordnung?:
new FotoTime;
public OnPlayerEnterCheckpoint(playerid)
{
switch(gClass[playerid])
{
case 0,1,2,3:
{
GameTextForPlayer(playerid, "Passe auf, dass die Paparazzi keine Aufmahmen machen!", 6000, 5);
}
case 4,5,6,7:
{
if(IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid,ROT,"Du musst erst aussteigen!");
}
else
{
FotoTime = SetTimerEx("Foto",10000,0,"i",playerid);
GameTextForPlayer(playerid, "Mach das Foto!", 6000, 5);
}
}
}
return 1;
}public Foto(playerid)
{
GameTextForAll("~r~Ein Paparazzo hat Aufnahmen von der Villa gemacht!",6000,5);
GameTextForPlayer(playerid, "Gut, du hast die Aufnahmen!", 6000, 5);
DisablePlayerCheckpoint(playerid);
}public OnPlayerLeaveCheckpoint(playerid)
{
KillTimer(FotoTime);
return 1;
}Ansonsten wäre das Thema erledigt. Thx all.