Hey ich will einem Spieler an einer bestimmten Position eine Nachricht senden wie mache ich das?
An einer Person einem Spieler etwas senden
- Killerpunchy
- Geschlossen
- Erledigt
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
-
-
Hallo
Also wenn der Spieler an der Position P(X|Y|Z) ist ? Entweder machst Du das mit einem Timer (der immer abfragt, ob er sich in der Nähe des Punktes P befindet) oder Du missbrauchst ein Callback. Folgende Funktionen solltest Du dir mal anschauen:
http://wiki.sa-mp.com/wiki/SetTimer
http://wiki.sa-mp.com/wiki/SetTimerEx
http://wiki.sa-mp.com/wiki/IsPlayerInRangeOfPoint
http://wiki.sa-mp.com/wiki/SendClientMessageWenn Du dein Plan etwas genauer (vorallem konkreter) beschreiben könntest, würde es die Sache recht vereinfachen
Gruss Simon -
public OnPlayerText(playerid, text[]){
new Float:pos[3], string[128], plName[24];
GetPlayerName(playerid, plName, sizeof(plName));
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
new i;
for(;i<GetMaxPlayers();i++){
if(IsPlayerConnected(i)){
if(IsPlayerInRangeOfPoint(i, 15.0, pos[0], pos[1], pos[2])){
format(string, sizeof(string), "%s sagt: %s", plName, text);
SendClientMessage(i, -1, string);
}
}
}
return 0;
}...
-
Ich glaub er meint wenn er in einem Pickup steht soll ein Bestimmter Text angezeigt werden
-
new bool:IsAtPos[MAX_PLAYERS];public OnGameModeInit(){
SetTimer("OnPlayerPosition", 1000, 1);
return 1;
}forward OnPlayerPosition();
public OnPlayerPosition(){
new i;
for(;i<GetMaxPlayers();i++){
if(IsPlayerInRangeOfPoint(i, 2.0, 0.0, 0.0, 0.0)){
if(IsAtPos[i] == false){
SendClientMessage(playerid, -1, "Deine Nachricht");
IsAtPos[i] = true;
return 1;
}
}else{
IsAtPos[i] = false;
return 1;
}
}
}
... -
breadfish.de
Hat das Thema geschlossen.