Alles anzeigenHey Leute,
Welchen Befehl brauch ich um ein einfachen /do zu machen?
Also das Wenn man den Motor startet, Automatisch für alle spieler im Fahrzeug oder in direkter nähe eine Nachricht bekommen z.B. PLAYER X dreht am Zündschloss und startet den Motor.
SendClientMessageToAll ? Mit Radius?
Würde der Befehl so stimmen Bis jetzt?
ocmd:motor(playerid,params[]){SetTimerEx("Motorstarten",1000,false,"i",playerid);}public Motorstarten(playerid){if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return 1;new vID=GetPlayerVehicleID(playerid),tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective;if(!HatVehEinMotor(GetVehicleModel(vID)))return 1;GetVehicleParamsEx(vID,tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective);if(tmp_motor==1){tmp_motor =0;format(string,sizeof(string), "((%s: stoppt den Motor und zieht die Handbremse an.))", getPlayerName(playerid;for(new i=0; i<MAX_PLAYERS; i++){SendClientMessage(i, FARBE_FUNK, string);}}else{tmp_motor=1;format(string,sizeof(string), "((%s: dreht den Zündschlüssel um und startet den Motor.))", getPlayerName(playerid;for(new i=0; i<MAX_PLAYERS; i++){SendClientMessage(i, FARBE_FUNK, string);}}SetVehicleParamsEx(vID,tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective);return 1;}
Es macht mehr Sinn eine Funktion dafür zu erstellen, zumal dadurch auch viele unnötige Zeilen gespart werden.
Außerdem hatte dein Code eins zwei Fehler, die ich zusätzlich behoben habe.
ocmd:motor(playerid,params[])
{
SetTimerEx("Motorstarten",1000,false,"i",playerid);
return 1;
}
public Motorstarten(playerid)
{
if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return 1;
new vID=GetPlayerVehicleID(playerid);
if(!HatVehEinMotor(GetVehicleModel(vID)))return 1;
new tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective;
GetVehicleParamsEx(vID,tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective);
if(tmp_motor==1)
{
tmp_motor =0;
format(string,sizeof(string), "((%s: stoppt den Motor und zieht die Handbremse an.))", getPlayerName(playerid));
SendClientMessageInRangeOfPoint(playerid, FARBE_FUNK, string, 15.0);
}
else
{
tmp_motor=1;
format(string,sizeof(string), "((%s: dreht den Zündschlüssel um und startet den Motor.))", getPlayerName(playerid));
SendClientMessageInRangeOfPoint(playerid, FARBE_FUNK, string, 15.0);
}
SetVehicleParamsEx(vID,tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective);
return 1;
}
stock SendClientMessageInRangeOfPoint(playerid, color, msg[], Float:range)
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++) {
if(!IsPlayerConnected(i)) continue;
if(!IsPlayerInRangeOfPoint(i, range, X, Y, Z)) continue;
SendClientMessage(i, color, msg);
}
return 1;
}