Warum überhaupt? Es soll nicht eine Garage angezeigt werden, sondern alle.
//edit
@TheBlueFireKing
Poste mal dein enum "G"
Es funktzionier thx aber warum brauchst jetzt mein enum?
Warum überhaupt? Es soll nicht eine Garage angezeigt werden, sondern alle.
//edit
@TheBlueFireKing
Poste mal dein enum "G"
Es funktzionier thx aber warum brauchst jetzt mein enum?
Alles anzeigenJop Sowas gibt es. Ich mache dir mal ein Beispiel
if(/*Bedingung zb:*/Data1 == 1)
{ //<- Kann auch oben gemacht werden
//Soll folgen
}
else if(Data2 == 2)
{
//Soll folgen
}
//Und natürlich das bekannte else (restliche abfragen)
else
{
//Soll folgen
}
Zu Erklärung:
- /* HALLO */ <- Die beiden Zeichen kennzeichnen einen Bereich der nicht beachtet werden soll
- Das gleiche gilt für // Das ist aber nur Zeilen bedingt
- '==' Ist zur Überprüfung eines Wertes, wo wiederum '=' Etwas besetzt
- Wenn du etwas gleichzeitig Abfragen willst also OR... Dann machst du einfach in die if Abfrage ein
-> So ähnlich wie, wenn etwas gleich sein sollte. Dann machst du &&.
Ich hoffe ich konnte dir damit deine Frage beantworten.
L.G.
heyho
heyhooo:
Aber kann ich jetzt die Data2 geben, weil sonst würde der die if Abfrage nie ausführen, weil der Client die Data doch nicht hat?
Hört sich vielleicht jetzt ein bischen blöd an aber wie kann ich jetzt machen das ich wenn ich zb /garage buy eingebe.
Das dann nur 1ne garage gekauft wird? Hab da jetzt irgendwie ein Denkfehler
Aufgrund deiner zweiten Aussage ich weiß ja nicht wie du das ganze aufgebaut hast jedoch solltest du die schleife dann abbrechen lassen
mit break; oder einem return 1; sollte die bedingung erfüllt sein
Aufgrund deiner zweiten Aussage ich weiß ja nicht wie du das ganze aufgebaut hast jedoch solltest du die schleife dann abbrechen lassen
mit break; oder einem return 1; sollte die bedingung erfüllt sein
enum G {
Float:xx,
Float:yy,
Float:zz,
Virtual,
Buy,
Gcreated,
Owner
}
Alles anzeigen
enum G {
Float:xx,
Float:yy,
Float:zz,
Virtual,
Buy,
Gcreated,
Owner
}
Dazu kann die for-schleife so ausssehen
for(new i, i != MAX_GARAGEN; ++i){
if(!IsPlayerInRangeOfPoint(playerid,2.0,Garagen[i][xx],Garagen[i][yy],Garagen[i][zz]) && !Garagen[i][Gcreated] && !Garagen[i][Buy])continue;
Garagen[i][Buy]= 1:
Garagen[i][Owner]= playerid:
return SendClientMessage(playerid,-1,"Du hast die Garage gekauft");
}
Aber kann ich jetzt die Data2 geben, weil sonst würde der die if Abfrage nie ausführen, weil der Client die Data doch nicht hat?
Klar musst du diese Variable noch erhöhen und es sollte eigentlich eher als Beispiel dienen
Würde dann dies gehen?:
new data[MAX_PLAYERS];
data++;
Oder wie ware das richtig?
rein Theoretisch schon
Du kannst auch
data += WERT
oder
data -= WÉRT
Zum direkten besetzten eines Inegers /Wertes
data = WERT
mit ++ erhöhst du es um 1 also ja oder +=1
Würde dann dies gehen?:
Oder wie ware das richtig?
Nein!! Das stimmt so nicht, da wirst du errors bekommen.
Richtig:
new data[MAX_PLAYERS];
data[playerid]++;//z.B. bei OnPlayerDeath
playerid entspricht einem Integer zwischen 0 und MAX_PLAYERS-1.
Brächte mal kurz Hilfe habe hier die Befehle um Garagen zu erstellen und zu löschen.
if (strcmp("/garage create", cmdtext, true, 10) == 0)
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, WHITE, "Du musst dazu als Rcon Admin eingeloggt sein!");
{
for(new i = 0; i <MAX_GARAGEN; i++)
{
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
Garage[i] = CreateObject(18452,x,y,z,0.0000000,0.0000000,0.0000000);
//Garage[i] = CreateObject(8947,2497.0000000,-1668.4000200,15.4000000,0.0000000,0.0000000,0.0000000);
EditObject(playerid, Garage[i]);
new string[50];
format(string,50,"Du hast Garage Nummer %d erfolgreich erstellt!",i);
SendClientMessage(playerid,WHITE,string);
}
return 1;
}
}
if (strcmp("/garage delete", cmdtext, true, 10) == 0)
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, WHITE, "Du musst dazu als Rcon Admin eingeloggt sein!");
for(new i = 0; i <MAX_GARAGEN; i++)
{
if(IsPlayerNearObject(playerid, Garage[i], 5.0))
{
DestroyObject(i);
new string[50];
format(string,50,"Du hast Garage Nummer %d erfolgreich gelöscht!",i);
SendClientMessage(playerid,WHITE,string);
}
else SendClientMessage(playerid, WHITE, "Du musst in der nähe iner Garage sein!");
}
}
Jedoch werden 21 Garagen erstellt. Ganz logisch weil MAX_GARAGEN auf 21 gesetzt ist.
Wie kann ich das jetzt so machen das wenn ich 1ne Garage erstelle das die dann Nummer 1 ist usw.
Beim löschen soll hald nur die Garage gelöscht sein bei der ich in der nähe bin. Hier noch der IsPlayerNearObject stock
stock IsPlayerNearObject(playerid, objectid, Float:range)
{
new Float:pos[3];
GetObjectPos(objectid,pos[0],pos[1],pos[2]);
if(IsPlayerInRangeOfPoint(playerid,range,pos[0],pos[1],pos[2])) return true;
return false;
}
//EDIT Rechtschreibfehler
pack alles in ein enum, und dann
bool:erstellt,
dann im code abfragen ob sie erstellt ist, wenn ja überspringen
if (strcmp("/garage create", cmdtext, true, 10) == 0)
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, WHITE, "Du musst dazu als Rcon Admin eingeloggt sein!");
{
for(new i = 0; i <MAX_GARAGEN; i++)
{
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
if(GaragenInfo[i][erstellt]==true)continue;//änern
Garage[i] = CreateObject(18452,x,y,z,0.0000000,0.0000000,0.0000000);
//Garage[i] = CreateObject(8947,2497.0000000,-1668.4000200,15.4000000,0.0000000,0.0000000,0.0000000);
EditObject(playerid, Garage[i]);
new string[50];
format(string,50,"Du hast Garage Nummer %d erfolgreich erstellt!",i);
SendClientMessage(playerid,WHITE,string);
}
return 1;
}
}
und der stock, musst in einer for schleife alle garagen durchgehen und posi abfragen, alles via enum, am einfachsten
Funktzionier immernoch nicht. Es werden erstellt undzwar immernoch alle die die Anforderungen erfüllen
Kann mal vielleicht einer via TV drüberschauen?
Hey Leute,
ich hatte mein Tacho überarbeitet und nun wird er nicht mehr angezeigt. Er wird nicht mehr angezeigt, seitdem ich die Schadens anzeige hinzugefügt hatte. Ich habe aber auch keine Erklärung wie ich das beheben sollte :/. Es wäre nett wenn ihr mir helfen würdet.
format(string,sizeof string,"%d",distancenew);
TextDrawSetString(kmht[i],string);
format(string,sizeof string,"%d",Gas[GetPlayerVehicleID(i)]);
TextDrawSetString(Tankt[i],string);
format(string,sizeof string,"%s",VehicleName[GetVehicleModel(vehicle)]);
TextDrawSetString(Autoname[i],string);
new Float:vhp;
GetVehicleHealth(vehicle,vhp);
vhp = floatdiv(vhp, 10.0);
format(string,sizeof(string),"%.0f%%",vhp);
TextDrawSetString(Schadent[i],string);
TextDrawShowForPlayer(i,Box1[i]);
TextDrawShowForPlayer(i,Box5[i]);
TextDrawShowForPlayer(i,kmht[i]);
TextDrawShowForPlayer(i,kmh[i]);
TextDrawShowForPlayer(i,Tank[i]);
TextDrawShowForPlayer(i,Tankt[i]);
TextDrawShowForPlayer(i,Schaden[i]);
TextDrawShowForPlayer(i,Schadent[i]);
TextDrawShowForPlayer(i,Autoname[i]);
Wie kann man ein Object vergrößern, wie z.B. auf vielen Servern wo man Attachments an seinem Körper verschieben und auch verzerren kann. Nur ich wollte halt ein Object von vorne rein vergrößert in der Map haben.
Kann man eventuell einen bot irgendwo erstellen, und diesem das Object zuweisen und dann vergrößern?
Kann man eventuell einen bot irgendwo erstellen, und diesem das Object zuweisen und dann vergrößern?
Kann man machen, allerdings wirst du dann durch die Objekte durchlaufen können
Also es gibt überhaupt keine Möglichkeit, vergrößerte Objekte, die fest sind, zu erstellen?
Nein