hai ich habe mir auto licht gescripte aber nun habe ich das problem das sie noch nicht weg gehen auser bei server restart und ich will das aber so machen:
if(strcmp(cmd,"/autolichtgreen",true)==0)
{
if(IsPlayerConnected(playerid))
{
new x_nr[256];
new farbegrun;
new farbegrun2;
x_nr = strtok(cmdtext, idx);
if(!strlen(x_nr)) {
SendClientMessage(playerid, COLOR_WHITE, "Benutze: /autolichtgreen [name]");
SendClientMessage(playerid, COLOR_WHITE, "Befehle: an, aus.");
return 1;
}
if(strcmp(x_nr,"an",true) == 0)
{
//new farbegrun;
//new farbegrun2;
new Float:x,Float:y,Float:z;
farbegrun = CreateObject(18649,x,y,z,0,0,0,0);
farbegrun2 = CreateObject(18649,x,y,z,0,0,0,0);
AttachObjectToVehicle(farbegrun, GetPlayerVehicleID(playerid),0.4,0,-0.80,0,0,0);
AttachObjectToVehicle(farbegrun2, GetPlayerVehicleID(playerid),-0.4,0,-0.80,0,0,0);
}
else if(strcmp(x_nr,"aus",true) == 0)
{
DestroyObject(farbegrun);
DestroyObject(farbegrun2);
}
}
return 1;
}
das wenn man /autolichtgreen aus eingibt das die neonlichter wieder verschwinden
geht das?
wenn ja wie?
neon licht unter dem auto
- eli
- Geschlossen
- Erledigt
-
-
Hi
Du solltest das Objekt für jedes Car definieren
new farbegrun[MAX_VEHICLES]
So halt definieren
Und dann alles was mit den Variablen zu tun hat dann auch zu
farbegrun[vehicleid]
machen. Falls es falsch is, pls korrigieren, kam grad von nem Geburtstag xD
MFG, Robdeflop®
-
if(strcmp(cmd,"/autolichtgreen",true)==0)
{
if(IsPlayerConnected(playerid))
{
new x_nr[256];
new farbegrun[MAX_VEHICLES]
new farbegrun2[MAX_VEHICLES]
x_nr = strtok(cmdtext, idx);
if(!strlen(x_nr)) {
SendClientMessage(playerid, COLOR_WHITE, "Benutze: /autolichtgreen [name]");
SendClientMessage(playerid, COLOR_WHITE, "Befehle: an, aus.");
return 1;
}
if(strcmp(x_nr,"an",true) == 0)
{
new Float:x,Float:y,Float:z;
farbegrun = CreateObject(18649,x,y,z,0,0,0,0);
farbegrun2 = CreateObject(18649,x,y,z,0,0,0,0);
AttachObjectToVehicle(farbegrun, GetPlayerVehicleID(playerid),0.4,0,-0.80,0,0,0);
AttachObjectToVehicle(farbegrun2, GetPlayerVehicleID(playerid),-0.4,0,-0.80,0,0,0);
}
else if(strcmp(x_nr,"aus",true) == 0)
{
DestroyObject(farbegrun[vehicleid]);
DestroyObject(farbegrun2[vehicleid]);
}
}
return 1;
}so oder wie meinste daS?
-
Hi
Joa, musst du aber bei "an" noch übernehmen, und vehicleid definieren. Also ID des Player´s fahrzeug wo er grad drinsitzt
MFG, Robdeflop®
-
Also ich habe das nun so drinne und geteste:
if(strcmp(cmd,"/autolichtgreen",true)==0)
{
if(IsPlayerConnected(playerid))
{
new vehicleid;
new x_nr[256];
new farbegrun[MAX_VEHICLES];
new farbegrun2[MAX_VEHICLES];
x_nr = strtok(cmdtext, idx);
if(!strlen(x_nr)) {
SendClientMessage(playerid, COLOR_WHITE, "Benutze: /autolichtgreen [name]");
SendClientMessage(playerid, COLOR_WHITE, "Befehle: an, aus.");
return 1;
}
if(strcmp(x_nr,"an",true) == 0)
{
//new farbegrun;
//new farbegrun2;
new Float:x,Float:y,Float:z;
farbegrun[vehicleid] = CreateObject(18649,x,y,z,0,0,0,0);
farbegrun2[vehicleid] = CreateObject(18649,x,y,z,0,0,0,0);
AttachObjectToVehicle(farbegrun[vehicleid], GetPlayerVehicleID(playerid),0.4,0,-0.80,0,0,0);
AttachObjectToVehicle(farbegrun2[vehicleid], GetPlayerVehicleID(playerid),-0.4,0,-0.80,0,0,0);
}
else if(strcmp(x_nr,"aus",true) == 0)
{
DestroyObject(farbegrun[vehicleid]);
DestroyObject(farbegrun2[vehicleid]);
}
}
return 1;
}
aber wenn ich /autolichtgreen aus mache passirt wieder nicht de lichter gehen nicht weg//edit
-
Das muss nach ganz oben in´s Script:
new farbegrun[MAX_VEHICLES];
new farbegrun2[MAX_VEHICLES];
Und dann wird der Command zu dem hier:if(strcmp(cmd,"/autolichtgreen",true)==0)
{
if(IsPlayerConnected(playerid))
{
new x_nr[256];
x_nr = strtok(cmdtext, idx);
if(!strlen(x_nr))
{
SendClientMessage(playerid, COLOR_WHITE, "Benutze: /autolichtgreen [name]");
SendClientMessage(playerid, COLOR_WHITE, "Befehle: an, aus.");
return 1;
}
if(strcmp(x_nr,"an",true) == 0)
{
farbegrun[GetPlayerVehicleID(playerid)] = CreateObject(18649,0,0,0,0,0,0,0); // Hier kannste auch einfach 0 rein machen.....
farbegrun2[GetPlayerVehicleID(playerid)] = CreateObject(18649,0,0,0,0,0,0,0);
AttachObjectToVehicle(farbegrun[GetPlayerVehicleID(playerid)], GetPlayerVehicleID(playerid),0.4,0,-0.80,0,0,0);
AttachObjectToVehicle(farbegrun2[GetPlayerVehicleID(playerid)], GetPlayerVehicleID(playerid),-0.4,0,-0.80,0,0,0);
}
else if(strcmp(x_nr,"aus",true) == 0)
{
DestroyObject(farbegrun[GetPlayerVehicleID(playerid)]);
DestroyObject(farbegrun2[GetPlayerVehicleID(playerid)]);
}
}
return 1;
}Edit: Klammerfehler und noch einen Array Fehler
-
thx jetzt habe ich nur noch eine sachen:
wenn ich z.B 2 mal /autolichtgreen an mache dann geht nur noch eins weg wie kann ich machen das er überprfüt ob das fahrzeug schon eine neon röhre hat? -
Eine variable setzen.
Beispiel:
new h_l[MAX_VEHICLES];//falls nicht vorhanden.
if(h_L[vehicleid] == 0)
{//not having a neon light
//code
h_l[vehicleid] = 1;
}//falls vorhanden
if(h_l[vehicleid] == 1)
{//having a neon light
h_l[vehicleid] = 0;
}In deinem Code angepasst.
//definierung der Variable nicht vergessen.
new h_l[MAX_VEHICLES];
//dann unter 'OnVehicelSpawn'
h_l[vehicleid] = 0; //resetten des Neonlichts
if(strcmp(cmd,"/autolichtgreen",true)==0)
{
if(IsPlayerConnected(playerid))
{
new x_nr[256];
x_nr = strtok(cmdtext, idx);
if(!strlen(x_nr))
{
SendClientMessage(playerid, COLOR_WHITE, "Benutze: /autolichtgreen [name]");
SendClientMessage(playerid, COLOR_WHITE, "Befehle: an, aus.");
return 1;
}
if(strcmp(x_nr,"an",true) == 0)
{
if(h_l[GetPlayerVehicleID(playerid)] == 1) return SendClientMessage(playerid, farbe, "Dieses Fahrzeug hat schon Neonlicht.");
farbegrun[GetPlayerVehicleID(playerid)] = CreateObject(18649,0,0,0,0,0,0,0); // Hier kannste auch einfach 0 rein machen.....
farbegrun2[GetPlayerVehicleID(playerid)] = CreateObject(18649,0,0,0,0,0,0,0);
AttachObjectToVehicle(farbegrun[GetPlayerVehicleID(playerid)], GetPlayerVehicleID(playerid),0.4,0,-0.80,0,0,0);
AttachObjectToVehicle(farbegrun2[GetPlayerVehicleID(playerid)], GetPlayerVehicleID(playerid),-0.4,0,-0.80,0,0,0);
h_l[GetPlayerVehicleID(playerid)] = 1;
}
else if(strcmp(x_nr,"aus",true) == 0)
{
if(h_l[GetPlayerVehicleID(playerid)] == 0) return SendClientMessage(playerid, farbe, "Dieses Fahrzeug hat kein Neonlicht.");
DestroyObject(farbegrun[GetPlayerVehicleID(playerid)]);
DestroyObject(farbegrun2[GetPlayerVehicleID(playerid)]);
h_l[GetPlayerVehicleID(playerid)] = 0;
}
}
return 1;
}Sorry, dass es nicht richtig eingerückt ist. Liegt an meinem blöden Browser.
Natürlich könntest du das noch mit
switch(h_l[vehicleid])
machen, aber ist nicht so tragisch.^^ -
Eine variable setzen.
Beispiel:
new h_l[MAX_VEHICLES];//falls nicht vorhanden.
if(h_L[vehicleid] == 0)
{//not having a neon light
//code
h_l[vehicleid] = 1;
}//falls vorhanden
if(h_l[vehicleid] == 1)
{//having a neon light
h_l[vehicleid] = 0;
}In deinem Code angepasst.
//definierung der Variable nicht vergessen.
new h_l[MAX_VEHICLES];
//dann unter 'OnVehicelSpawn'
h_l[vehicleid] = 0; //resetten des Neonlichts
if(strcmp(cmd,"/autolichtgreen",true)==0)
{
if(IsPlayerConnected(playerid))
{
new x_nr[256];
x_nr = strtok(cmdtext, idx);
if(!strlen(x_nr))
{
SendClientMessage(playerid, COLOR_WHITE, "Benutze: /autolichtgreen [name]");
SendClientMessage(playerid, COLOR_WHITE, "Befehle: an, aus.");
return 1;
}
if(strcmp(x_nr,"an",true) == 0)
{
if(h_l[GetPlayerVehicleID(playerid)] == 1) return SendClientMessage(playerid, farbe, "Dieses Fahrzeug hat schon Neonlicht.");
farbegrun[GetPlayerVehicleID(playerid)] = CreateObject(18649,0,0,0,0,0,0,0); // Hier kannste auch einfach 0 rein machen.....
farbegrun2[GetPlayerVehicleID(playerid)] = CreateObject(18649,0,0,0,0,0,0,0);
AttachObjectToVehicle(farbegrun[GetPlayerVehicleID(playerid)], GetPlayerVehicleID(playerid),0.4,0,-0.80,0,0,0);
AttachObjectToVehicle(farbegrun2[GetPlayerVehicleID(playerid)], GetPlayerVehicleID(playerid),-0.4,0,-0.80,0,0,0);h_l[GetPlayerVehicleID(playerid)] = 1;
}
else if(strcmp(x_nr,"aus",true) == 0)
{
if(h_l[GetPlayerVehicleID(playerid)] == 0) return SendClientMessage(playerid, farbe, "Dieses Fahrzeug hat kein Neonlicht.");
DestroyObject(farbegrun[GetPlayerVehicleID(playerid)]);
DestroyObject(farbegrun2[GetPlayerVehicleID(playerid)]);
h_l[GetPlayerVehicleID(playerid)] = 0;
}
}
return 1;
}Sorry, dass es nicht richtig eingerückt ist. Liegt an meinem blöden Browser.
Natürlich könntest du das noch mit
switch(h_l[vehicleid])
machen, aber ist nicht so tragisch.^^wo muss das hin?
h_l[vehicleid] = 0; //resetten des Neonlichts
und wo muss das hin?:
switch(h_l[vehicleid]) -
Zur 1. Frage:
//dann unter 'OnVehicelSpawn'
h_l[vehicleid] = 0; //resetten des Neonlichts
public OnVehicleSpawn(vehicleid.......)Zur 2. Frage, kannst getrost Ignorieren. War nur für diejenige, die dann 'switch' vorschlagen.^^
-
danke