Ich nehm ich nachher mal an
Beiträge von Akino Kiritani
-
-
Eig ist das so richtig wie ich das oben gepostet habe, nur hab ich das nicht getestet
-
Das liegt wohl daran das ich was vertauscht habe -.-
#if defined TANK_SYS
new vid = GetPlayerVehicleID(playerid);
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
if(AUTOX[vehicleid][tank] < 1)
{
SendClientMessage(playerid,WHITE," Motor kann nicht gestartet werden da der Tank leer ist!");
AUTOX[vehicleid][motor_an] = 0;
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
}
else
{
if(healthv > (375.0))
{
AUTOX[vehicleid][motor_an] = 1;
SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
}
else
{
new rando = random(4);
switch(rando)
{
case 0:
{
SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
}
case 1:
{
SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
}
case 2:
{
AUTOX[vehicleid][motor_an] = 1;
SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
}
case 3:
{
AUTOX[vehicleid][motor_an] = 1;
SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
}
case 4:
{
SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
}
default:
{
SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
}
}
}
}
#else
if(healthv > (375.0))
{
AUTOX[vehicleid][motor_an] = 1;
SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
}
else
{
new rando = random(4);
switch(rando)
{
case 0:
{
SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
}
case 1:
{
SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
}
case 2:
{
AUTOX[vehicleid][motor_an] = 1;
SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
}
case 3:
{
AUTOX[vehicleid][motor_an] = 1;
SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
}
case 4:
{
SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
}
default:
{
SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
}
}
}
#endif
}
else
{
AUTOX[vehicleid][motor_an] = 0;
SendClientMessage(playerid,WHITE," Motor wurde ausgemacht.");
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
}
return 1;
}
#endif
return 0;Außerdem war das nicht
TogglePlayerControllable(playerid,1);
sondern
TogglePlayerControllable(playerid,0);
das du ersetzen solltest. Sorry mein Fehler -.-
TogglePlayerControllable(playerid,1); // <- bewegbar
TogglePlayerControllable(playerid,0); // <- nicht bewegbarWenn das immer noch nicht geht musste mal den code posten von dem Schadensystem, wo der Motor dann ausgeht
//Edit: verbessert
//Edit: Rechtschreibung -
Du solltest jetzt nicht OnPlayerStateChange unten einfügen, sondern nach OnPlayerStateChange suchen und es dort einfügen
so:
public OnPlayerStateChange(playerid,newstate,oldstate)
{
new vid = GetPlayerVehicleID(playerid);
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
if(newstate == PLAYER_STATE_DRIVER)
{
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
//weiterer code von dir
}
//weiterer code von dir
}//Edit1 & Edit 3: etwas entfernt
//Edit2: Ghosty biste verrückt nachher löscht er noch das falsche -
Meine Lieblingsbücher sind die Wächter Bücher
sind aber nicht für jedermann^^ fast alles in der ICH-Person geschreiben, das macht die Bücher für mich sehr "fesselnd" -
Ja diese Funktion bleibt dann, nur wird der Spieler nicht mehr gefreezt sondern der Motor bleibt aus
//Edit: Das ganze sieht dann so aus
#if defined TANK_SYS
new vid = GetPlayerVehicleID(playerid);
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
if(AUTOX[vehicleid][tank] < 1)
{
SendClientMessage(playerid,WHITE," Motor kann nicht gestartet werden da der Tank leer ist!");
AUTOX[vehicleid][motor_an] = 0;
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
}
else
{
if(healthv > (375.0))
{
AUTOX[vehicleid][motor_an] = 1;
SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
}
else
{
new rando = random(4);
switch(rando)
{
case 0:
{
SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
}
case 1:
{
SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
}
case 2:
{
AUTOX[vehicleid][motor_an] = 1;
SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
}
case 3:
{
AUTOX[vehicleid][motor_an] = 1;
SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
}
case 4:
{
SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
}
default:
{
SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
}
}
}
}
#else
if(healthv > (375.0))
{
AUTOX[vehicleid][motor_an] = 1;
SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
}
else
{
new rando = random(4);
switch(rando)
{
case 0:
{
SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
}
case 1:
{
SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
}
case 2:
{
AUTOX[vehicleid][motor_an] = 1;
SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
}
case 3:
{
AUTOX[vehicleid][motor_an] = 1;
SendClientMessage(playerid,WHITE," Motor wurde gestartet.");
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
}
case 4:
{
SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
}
default:
{
SendClientMessage(playerid,WHITE,"Motor konnte nicht gestartet werden, Motorschaden.");
}
}
}
#endif
}
else
{
AUTOX[vehicleid][motor_an] = 0;
SendClientMessage(playerid,WHITE," Motor wurde ausgemacht.");
SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
}
return 1;
}
#endif
return 0;//Edit2: SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective); für motor an
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective); für motor aus -
doch der motor bleibt doch aus
-
Würdet ihr mal bitte aufhören zu sapmmen?
Außerdem musst du dir nur die includes von sa-mp.com runterladen. Und mit dem dabei liegenden Compiler compilen
-
am besten du setzt das bei OnPlayerStateChange ein
code:
public OnPlayerStateChange(playerid,newstate,oldstate)
{
new vid = GetPlayerVehicleID(playerid);
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
return 1;
}
Dann ist der Motor aus wenn du einsteigst
oder halt bei OnPlayerEnterVehiclepublic OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
new vid = GetPlayerVehicleID(playerid);
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
return 1;
}PS: setz nächstes mal deinen code in den [pwn] tag
//Edit: ungetest müsste aber funktionieren
//Edit2: du müsstet dann auch TogglePlayerControllable(playerid,1); von deinem Motorsystem mit den VehicleParams ersetzen -
Ma ne frage warum hast du natives im Script stehen?
SetVehicleParamsEx wird doch so verwendet:
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective); // <- für motor aussonst guck einfach in den Tutorials
-
Schön das sie sich wieder gefasst haben^^
Aber ich glaub(bin mir nicht sicher) da sind Objecte zugekommen -
Aber da frag ich mich was der ganze aufstand eig soll.
Das ist Mühe doch garnicht wert -.- -
Wtf?
Ich hoffe ma ich hab das richtig verstanden, das jetzt alle Objecte wieder drin sind xD
Nur die Wiki ist noch nicht aktualisiertPS: Korrigiert mich wenn ich falsch liege
-
Nachdem ich im englschen Forum nochmal geguckt habe, habe ich meine Funktion recodet, diese funktioniert jetzt dank Goldkiller auch
nur schreibt er jetzt die Zeilen nicht mehr untereinander sondern nebeneinander und damit funktioniert das ganze Script natürlich auch nicht mehr -.-Code:
stock DeleteFrakCar(vehicleid,DateiName[])
{
new vmodel = AutoDaten[vehicleid][Model]; //Vehicle Model
new Float:vx = AutoDaten[vehicleid][vX]; // Vehicle X Achse
new Float:vy = AutoDaten[vehicleid][vY]; // Vehicle Y Achse
new Float:vz = AutoDaten[vehicleid][vZ]; // Vehicle Höhe
new Float:va = AutoDaten[vehicleid][vA]; // Vehicle Rotation
new vcolorA = AutoDaten[vehicleid][ColorA]; // Vehicle Farbe 1
new vcolorB = AutoDaten[vehicleid][ColorB]; // // Vehicle Farbe 2new DeleteString[256+128];
format(DeleteString,sizeof(DeleteString),"%d,%d,%.0f,%.0f,%.0f,%.0f,%d,%d",vmodel,vx,vy,vz,va,vcolorA,vcolorB);new EineZeileInDerDatei[1024];
new File:f = fopen(DateiName, io_read);
new File:temp = fopen("temp.autos", io_write);
while (fread(f, EineZeileInDerDatei))
{
StripNL(EineZeileInDerDatei);
if (strcmp (EineZeileInDerDatei, DeleteString,true,sizeof(EineZeileInDerDatei)) == 0)
{
printf("Diese Zeile wird nicht in die temp Datei geschrieben");
continue;
}
fwrite(temp,EineZeileInDerDatei);
}
fclose(f);
fclose(temp);//Überschreibe die Orginal Datei mit der temp Datei
f = fopen(DateiName, io_write);
temp = fopen("temp.autos", io_read);
while (fread(temp, EineZeileInDerDatei))
{
StripNL(EineZeileInDerDatei);
fwrite(f, EineZeileInDerDatei);
}
fclose(f);
fclose(temp);
fremove("temp.autos");
return 1;
} -
Was zur ...?
Was soll denn der Quatsch?
//Edit: Soll das heißen alle Objekte die sie uns SA neu gemacht haben sind weg?
-
Die sehen verdammt nochmal gut aus^^
Aber echt scheiße das mit dem Update/Re-Release
-
Ich finde es wäre sinnvoll nur in einigen Bereichen die Maximalen Zeichen höherzustellen, wie z.B. in Tutorials & Serverwerbung da,
wie du schonsagtest gute Serverwerbungen ziemlich lang sind ähnlich bei den Tutorials -
Es ist wohl besser wenn du die auch neu compilest oder es einfach ausprobierst ob sie funktionieren
-
Das tue ich nicht.
Code:
ocmd:deletecar(playerid,parms[])
{
if(IsPlayerInAnyVehicle(playerid))
{
new vehicleid = GetPlayerVehicleID(playerid);
switch(GetPVarInt(playerid, "Fraktion"))
{
case 0: DeleteCar(playerid,vehicleid,"Fraktionslose.autos");
}
}
else return SendClientMessage(playerid,COLOR_SILVER,"Du bist nicht in einem Auto");
return 1;
}
Ich glaube iwie nicht, das ich Fraktionslose.autos mit format dort eintragen mussIch glaub das problem wird wohl in diesen Zeilen liegen
Code:
new DeleteString[256+128]; // Größe ist erstmal egal^^
format(DeleteString,sizeof(DeleteString),"%d,%d,%.1f,%.1f,%.1f,%.1f,%d,%d",vfrak,vmodel,vehx,vehy,vehz,veha,vcolorA,vcolorB); <- hier vll
printf("%s",DeleteString);
if(strcmp(string,DeleteString,true,sizeof(string))==-1){print("Fehler! return -1"); return 0;} <- oder hier
else if(strcmp(string,DeleteString,true,sizeof(string))==1){print("Fehler! returnt 1"); return 0;} <- bzw hier
Achja er spuckt mir immer Fehler! return -1 aus//Edit: Etwas hinzugefügt
-
Hallo Community ich wünsche euch erstmal ein Frohes neues Jahr

Vielleicht könnt ihr mir ja helfen, ich hatte vor eine Zeile aus einer Datei zu löschen, nur wenn ich das versuche sagt er mit die Zeile exestiert nicht.
Nun hab ich ein wenig rumprobiert und bin zu dem Schluss gekommen, das ich strcmp falsch verwende oder es mit strcmp nicht funktioniert.
Nun weiß ich nicht mehr weiter und bitte euch um Hilfe.//Edit: Bevor mir einer kommt ich soll die SUFU & die Wiki nutzen, dazu sag ich nur: Ich habe diese beiden Sacheb bereits genutz und sie haben mich nicht weiter gebracht