Welche hast du denn eingefügt und noch nicht im Plugins Ordner?
Beiträge von [GSR]PreJay
-
-
Bei SetVehicleParams muss statt (vehicleid, ...) (vehicle, ...) hin.
-
Also ich verstehe deine Frage leider nicht, tut mir Leid...
-
Nutze die Funktion "SpawnPlayer(playerid)", wenn das Passwort korrekt eingegebn wurde. Damit wird das OnPlayerRequestClass umgangen und er spawnt direkt. Setzte aber vorher die Spawn Infos!
-
Gibt unheimliche viele witzige Facebook Seiten!
Mir fällt spontan auch 9GAG noch ein, sind aber eher für Fotos.. -
Er wollte das nur als Text im Chat, oder nicht? :O
-
Alles klar, freut mich ja
-
Da es wohl nun keiner wusste, hab' ich es selbst gelöst bekommen.
if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
{
vehicleid = GetPlayerVehicleID(i);
GetVehicleHealth(vehicleid, health);
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
//string = "~b~~h~B: ~w~";
//strcat(string, VehicleNames[GetVehicleModel(vehicleid)-400], sizeof(string));
string = "~n~~B~~h~Standort: ~w~";
strcat(string, GetPlayer3DZone(i), sizeof(string));strcat(string, "~n~~B~~h~Zustand: ~g~", sizeof(string));
fstring = "iiiiiiiiii";
if(health > 1000.0) strins(fstring, "~r~", 10, sizeof(fstring));
else if(health < 0.0) strins(fstring, "~r~", 0, sizeof(fstring));
else strins(fstring, "~r~", floatround(health/100.0), sizeof(fstring));
strcat(string, fstring, sizeof(string));Die Zeile strcat(string, "~n~~B~~h~Standort: ~w~", sizeof(string)); musste string = "~n~~B~~h~Standort: ~w~"; werden. Denn ohne diese Angabe wurde der String immer erweitert, wenn ein neuer User in ein Auto stieg. Wie wir alle wissen, crasht jedoch der SA:MP Client bei mehr als 800 Zeichen in einem String, da er die nicht anzeigen kann. Simples Problem, große Folge.
Jetzt wisst ihr es für's nächste Mal - und ich auch.
Liebste Grüße,
PreJay. -
Ich bin auch Scripting Anfänger aber ich hätte jetzt so probiert?
dcmd_status1(playerid, params[]) {
if(if(IstSpielerInFraktion == 1) {
if(GetPlayerVehicleID(playerid) == BFLS[0]) {
SendClientMessage(playerid, COLOR_RED, "ELW meldet Status 1: Frei auf Funk.");
}
else if(GetPlayerVehicleID(playerid) == BFLS[1]) {
SendClientMessage(playerid, COLOR_RED, "HLF 1 meldet Status 1: Frei auf Funk.");
}
}
} -
Möchtest du deine Statusmeldung nur als Schrift im Chat haben oder auch irgendwas damit anfangen können?
-
Mit SpawnPlayer wird OnPlayerSpawn aufgerufen, soweit ich weiß...
-
Es ist möglich, das habe ich schon gesehen. Nur wie, kann ich dir auf Anhieb nicht sagen.
-
Nach ausführlichen Tests kam ich zum Entschluss, dass es an dieser Codezeile scheitert.
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
if(IsPlayerInAnyVehicle(playerid) && !IsBicycle(GetPlayerVehicleID(playerid)))
{
TextDrawShowForPlayer(playerid, SpeedoText[playerid]); //HIER CRASHT SAMP!!
new vehicleid = GetPlayerVehicleID(playerid);
if(VehicleSecurity[vehicleid] == 1)
{
ToggleAlarm(vehicleid, VEHICLE_PARAMS_ON);
SetTimerEx("StopAlarm", ALARM_TIME, false, "d", vehicleid);
}
}
else
{
TextDrawHideForPlayer(playerid, SpeedoText[playerid]);
}
new vehicleid = GetPlayerVehicleID(playerid);
new id = GetVehicleID(vehicleid);
if(IsValidVehicle(id))
{
if(VehicleCreated[id] == VEHICLE_DEALERSHIP)
{
SetPVarInt(playerid, "DialogValue1", id);
ShowDialog(playerid, DIALOG_VEHICLE_BUY);
return 1;
}
}
if(IsBicycle(vehicleid))
{
ToggleEngine(vehicleid, VEHICLE_PARAMS_ON);
}
if(Fuel[vehicleid] <= 0)
{
ToggleEngine(vehicleid, VEHICLE_PARAMS_OFF);
}
TankLeerCheck = SetTimerEx("TankLeer", 5000, true, "i", vehicleid);
}
return 1;
}Dazu interessiert bestimmt noch das:
public Speedometer()
{
new vehicleid, Float:health;
new engine, lights, alarm, doors, bonnet, boot, objective;
new fstring[32], string[512];for(new i=0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
{
vehicleid = GetPlayerVehicleID(i);
GetVehicleHealth(vehicleid, health);
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
//string = "~b~~h~B: ~w~";
//strcat(string, VehicleNames[GetVehicleModel(vehicleid)-400], sizeof(string));
strcat(string, "~n~~B~~h~Standort: ~w~", sizeof(string));
strcat(string, GetPlayer3DZone(i), sizeof(string));strcat(string, "~n~~B~~h~Zustand: ~g~", sizeof(string));
fstring = "iiiiiiiiii";
if(health > 1000.0) strins(fstring, "~r~", 10, sizeof(fstring));
else if(health < 0.0) strins(fstring, "~r~", 0, sizeof(fstring));
else strins(fstring, "~r~", floatround(health/100.0), sizeof(fstring));
strcat(string, fstring, sizeof(string));
strcat(string, " ~B~~h~Treibstoff: ~g~", sizeof(string));
fstring = "iiiiiiiiii";
if(Fuel[vehicleid] > 100.0) strins(fstring, "~r~", 10, sizeof(fstring));
else if(Fuel[vehicleid] < 0.0) strins(fstring, "~r~", 0, sizeof(fstring));
else strins(fstring, "~r~", floatround(Fuel[vehicleid]/10.0), sizeof(fstring));
strcat(string, fstring, sizeof(string));
strcat(string, " ~B~~h~", sizeof(string));
if(GetPVarInt(i, "Speedo")) format(fstring,sizeof(fstring),"Km/h: ~w~%d", GetPlayerSpeed(i, false));
else format(fstring,sizeof(fstring),"Km/h: ~w~%d", GetPlayerSpeed(i, true));
strcat(string, fstring, sizeof(string));
strcat(string, "~n~~B~~h~Motor: ", sizeof(string));
if(engine == 1) strcat(string, "~g~An", sizeof(string));
else strcat(string, "~r~Aus", sizeof(string));
strcat(string, " ~B~~h~Alarm: ", sizeof(string));
if(VehicleSecurity[vehicleid] == 1) strcat(string, "~g~Ein", sizeof(string));
else strcat(string, "~r~Aus", sizeof(string));
strcat(string, " ~B~~h~Verriegelung: ", sizeof(string));
if(doors == 1) strcat(string, "~r~aktiviert", sizeof(string));
else strcat(string, "~g~deaktiviert", sizeof(string));
TextDrawSetString(SpeedoText[i], string);
}
}
}
public OnPlayerConnect(playerid)
{
RefuelTime[playerid] = 0;
TrackCar[playerid] = 0;
SpeedoText[playerid] = TextDrawCreate(180.000, 362.000," ");
TextDrawAlignment(SpeedoText[playerid], 1);
TextDrawFont(SpeedoText[playerid],2);
TextDrawLetterSize(SpeedoText[playerid], 0.310, 1.400);
TextDrawSetShadow(SpeedoText[playerid],0);
//TextDrawUseBox(SpeedoText[playerid], 1);
TextDrawBoxColor(SpeedoText[playerid], 0x99);
TextDrawTextSize(SpeedoText[playerid], 520.000, 0.000);
return 1;
}Ich hoffe, euch verschafft das einen Überblick. Ich habe einfach keine Idee, was falsch ist.
EDIT: Nein, keine Timer mit GetPlayerState... -.-
-
Hatte das Problem bis eben auch. Aber jetzt läuft's klasse.
-
Hi,
mal wieder ein hübsches Problem. Wenn ich mit 2 Personen auf meinem Server bin, kann die ID 0 (zuerst gejointe Person) ohne Probleme Autos fahren etc.
ID 1 jedoch, die zuletzt gejointe Person, braucht nur in ein Fahrzeug einzusteigen und das GTA crasht bei dem Spieler. Dem Server hat das nichts an aber das ist ja doch etwas unpraktisch für die Spieler.
Im Serverlog steht auch nur Join und Part, nichts auffälliges.
Welche Codeschnipsel braucht ihr?Liebe Grüße.
-
ID: 18656 hatte er geschrieben. Einfach etwas weiter oben gucken
Grüße
-
Der Scheinwerfer besteht aus 3 Teilen. Dem Kopf, dem Hintending und dem Ständer.
Schau in MTA danach und wende die ID dann im SA:MP Editor an.Mich würde auch sehr interessieren, wie man die Dinger zum leuchten bekommt!
EDIT: Hier die Objekt ID's
https://forum.sa-mp.de/san-and…nwerfer-area51-versetzen/ -
Hi,
ich hätte folgende Frage: Ich möchte die Maximale Anzahl an Autos, die ein User haben kann, aus der .ini des Users auslesen und je nach Premium Level definieren im Filterscript.
Jetzt war meine erste Idee so:
public MaxAnzahlAutos(playerid) {
new string[128];
format(string, 35, Player_File, GetName(playerid));
if(P_Data[playerid][VIP] == 0) {
#define MAX_PLAYER_VEHICLES 1
}
else if(P_Data[playerid][VIP] == 1) {
#define MAX_PLAYER_VEHICLES 2
}
else if(P_Data[playerid][VIP] == 2) {
#define MAX_PLAYER_VEHICLES 4
}
else if(P_Data[playerid][VIP] == 3) {
#define MAX_PLAYER_VEHICLES 8
}
}Jedoch habe ich überlegt, wie ich diese Methode aufrufen könnte, um sicherzustellen, dass das auch richtig erkannt wird. Ich dachte an einen Timer im GameModeInit? Würde das funktionieren? Und vorallem: Funktioniert die Idee überhaupt, so wie ich denke?
Ich hoffe, ihr könnt mir da nochmal helfen.
Liebe Grüße.
-
In deine Funktion "GTimer" muss drin stehen: MoveObject(Blablabla). Das ist das Prinzip.
-
Dankeschön, funktioniert jetzt alles.
Könnte ich noch kurz eine Erklärung haben, warum das jetzt das Problem löst?
War es jetzt nur wichtig, dass die playerid mit übermittelt wird, damit das Fenster dem richtigen Spieler angezeigt wird?