@Slider ja da hast du recht aber es kam halt eher so rüber als wenn man es komplett anders macht und es komplett falsch ist(obwohl ja es eigentlich funktioniert..)
Aber ich weiß jetzt schon wie du es meinst,..
Beiträge von ElektroFreak
-
-
was daran so witzig? @GUCCI ... achja definiert sry... ja sry das ich das zur hilfe gepostet habe..
-
Danke @YaBroo . Die coords waren auch keine richtige Zone sondern erstmal nur zum testen.
Die wird aber trotzdem noch nicht angezeigt auf der Map
habe jetzt:
groovezone = GangZoneCreate( 2079.6936,-1710.7546, 2123.0015,-1775.9139); -
Das ist die falsche Einstellung. Ich kann auch ineffizienten Code schreiben der total auf die Performance geht. Da kann ich nicht als Entwickler sagen "Solange es geht passt es schon".
Wenn man das so machen will, dann nur weil man nicht weiss wie es besser geht.
Ich respektiere das aber Du musst auch anpassungsfaehig sein. Ich sage ja nicht das ich es nicht wertschaetze, dass Du anderen Deine gelernten Sachen beibringen moechtest. Im Gegenteil, ich habe das hier auch eher als positiv als negativ vernommen. Nur wenn Du dann hinterher keine Kritik akzeptierst, dann ist es halt suboptimal.
Ja und das ist wie ich schon sagte der falsche Ansatz. Wenn ich sowas in der Arbeit abliefern wuerde und nach dem Code Review trotz Kritik, die die Performance verbessert, sagen wuerde "es geht aber", wuerde es dennoch nicht effizient sein.
Ich werde es auch so nicht machen aber weils halt Quatsch ist. Wenn Du Kritik so entgegen wirkst mit "Du musst es so ja nicht machen", dann wirst Du niemals gut programmieren koennen.
Ja dann sind das gleich 2 mehr die es falsch lernen. Die sind zufrieden weils funktioniert aber koennen nicht abschaetzen was es am Schluss fuer Nachteile mit sich bringt. Jemand der mit dieser Loesung zufrieden ist, hat keine Ahnung von Programmierung. (Das muss ja wie gesagt nichts schlechtes sein, jeder faengt klein an - nur man sollte es halt direkt richtig lernen)
ja aber wie gesagt ich wollte doch nur zeigen wie man es machen könnte... außerdem ist es jetzt auch nicht so dass dieser code etwas fürs leben sein soll sondern nur ne kleine Hilfe.
Und wegen "Ich werde es auch so nicht machen aber weils halt Quatsch ist. Wenn Du Kritik so entgegen wirkst mit "Du musst es so ja nicht machen", dann wirst Du niemals gut programmieren koennen."
ich programmiere auch nur als hobby in der freizeit und nicht beruflich das kann ich ja vlt noch später machen aber dafür kann man ja eine ausbildung machen etc... -
@Slider ok das mag sein dass es länger dauert aber das ist doch eig egal solange es funktioniert auf diese paar sekunden kommt es ja wirklich nicht an. Und naja solange es funktioniert und die das so machen wollen kann es dir ja egal sein da ich einfach nur andere helfen möchte die sowas bräuchten. Ich habe es auch erst getestet undso und es ging also habe ich es so gelassen.
Es soll ja nur zeigen wie man es machen KÖNNTE und die die das wollen können ja machen und du musst es ja NICHT.
Mich haben aber schon 2leute per pn davor angeschrieben wo die mich gefragt hatten und die waren zufrieden. -
@Slider
ja das stimmt ich meine halt nur als Tipp für welche die garnicht weiter wisssenHabe bei mir ca 60 fahrzeuge damit gemacht aber so lange dauert es ja nicht weil es immer copy and paste ist.
-
new groovezone;bei OnPlayerconnect
GangZoneShowForPlayer(playerid, groovezone, Gelb);Unter OnGameModeInit
groovezone = GangZoneCreate( 2081.5581, -1725.4567, 2087.0017,-1718.8115); -
Danke @Jeff_Hardy, hätte es auch gebraucht aber studieren geht über probieren
-
-
Und was sind die Richtigen Werte?
Kann mir bitte jemand ein beispiel hierraus machen?:
AddPlayerClass(165,2087.0017,-1718.8115,13.5391,181.3723,0,0,0,0,0,0); //
AddPlayerClass(165,2081.5581,-1725.4567,13.3906,136.3723,0,0,0,0,0,0); // -
nein ich habe kein Programm verwendet.
Bei mir wird einfach nur die zone nicht angezeigt .. -
ich war in der nähe von dieser paynspray bei diesem pizza haus.
Könnt ihr mir vlt bitte mal ein beispiel senden?
-
geht immer noch nicht
habe erst die kleine x, dann die kleinere y, dann die größerex und die größere y
groovezone = GangZoneCreate(2074,-1662,2086,-1698); -
new groovezone;
bei OnPlayerconnect
GangZoneShowForPlayer(playerid, groovezone, Gelb);
Unter OnGameModeInit
groovezone = GangZoneCreate(-2251, 578, -2124. 775);
-
Hallo,
ich bin gerade dabei ein Gangdightsystem selber zu erstellen aber habe das problem, dass die Zonen nicht angezeigt werden.
Und kann ich auch bei ner if abfrage statt IsPlayerInRangeOfPoint sowas ist spieler innerhalb eines vierecks also x y z- x y z...? -
Hallo,
da ich selber kein richtiges Thema dazu gefunden habe und selber hilfe brauchte, habe ich mich entschlossen mein Autohaussystem für ein GF zu Verfügung zu stellen!
Hier im Thema geht es nur darum wie man ein Auto kauft bzw indem man in ein Auto einsteigt und ein Dialog erscheint wo die Daten des Fahrzeuges zu sehen sind.Wichtig ist:
Das alte system darf NICHT entfernt werden sondern nur der Koffer!Screens:
Ich zeige euch alles an einer Faggio
Also fangen wir mal an...:
Oben im Script:new bFaggio; // das b steht nur für buy. Damit man z.b. auch eine Vermietung machen kann wo ihr einfach da nur vFaggio schreiben müsst.
bFaggio = AddStaticVehicle( 462, 555.880,-1290.119,16.848,0.064, -1, -1); //da musst du dann halt nur die coords ändern und die car nummer (hier 462 = faggio)
Bei den defines:
#define FAGGIO 155 // hier wird der dialog difiniert bzw dialog FAGGIO die nummer ist die zahl an welche dran kommt also wenn bei dir der letze define die nummer 100 hat dann musst du hier dann 101 nehmen also damit sie nicht doppelt sind.
bei OnPLayerStateChange
if(IsPlayerInVehicle(playerid, bFaggio))
{
FreezePlayer(playerid);
ShowPlayerDialog(playerid, FAGGIO, DIALOG_STYLE_MSGBOX, "Faggio", "Fahrzeug: Faggio\nTank: 30Liter\nPreis: 8000€", "Kaufen", "Abbrechen");//das könnt ihr so ändern wie es auf euch passt.}
Das kommt dahin wo die ganzen dialöge sind
if(dialogid == FAGGIO)//das FAGGIO haben wir eben difiniert
{
if(response == 0)//wenn die person ESC drückt oder auf abbrechen kommt das:
{
UnFreezePlayer(playerid);//entfreezt ihn wieder
RemovePlayerFromVehicle(playerid);//wichtig weil sonst kann die person mit dem wagen wegfahren
SendClientMessage(playerid,COLOR_YELLOW, "Du hast den Kauf abgebrochen!");//ist klar
}
if(response == 1)//wenn er auf kaufen drückt
{
RemovePlayerFromVehicle(playerid);//rauswerfen
UnFreezePlayer(playerid);//unfreezen
if(GetPlayerMoney(playerid) < 8000){SendClientMessage(playerid,COLOR_GREY,"Du hast nicht genug Geld um dieses Fahrzeug zu kaufen!");} else {OnPlayerBuyCar(playerid,462,8000,2);} //abfrage ob er genug geld mit hat , die nachicht wenn er nicht genug hat, wenn ja dann geht es zum scriptpunkt OnPlayerBuyCar(playerid,carid,preis,welches auto bzw spawn) (die spawns musst du suchen im script wenn du ingame mal die coords abfragst. wenn du es nicht findest sag einfach besscheid.
}
}Bei fragen einfach per PN melden!
-
erledigt
-
Also... mach es z.b. so ;
Oben ins script:new bFaggio; // das b steht einfach für buy weil ich bei vermietungen dann z.b. vFaggio habe
bei OnPLayerstatechange oder so ähnlich
if(IsPlayerInVehicle(playerid, bFaggio))
{
FreezePlayer(playerid);
ShowPlayerDialog(playerid, FAGGIO, DIALOG_STYLE_MSGBOX, "Faggio", "Fahrzeug: Faggio\nTank: 30Liter\nPreis: 8000€", "Kaufen", "Abbrechen");}
bFaggio = AddStaticVehicle( 462, 555.880,-1290.119,16.848,0.064, -1, -1); //da musst du dann halt nur die coords ändern und die car nummer (hier 462 = faggio)
#define FAGGIO 155 // hier wird der dialog difiniert bzw dialog FAGGIO die nummer ist die zahl an welche dran kommt also wenn bei dir der letze define die nummer 100 hat dann musst du hier dann 101 nehmen also damit sie nicht doppelt sind. also: (((#define FAGGIO 101)))
das kommt dahin wo die ganzen dialöge sind
if(dialogid == FAGGIO)//das FAGGIO haben wir eben difiniert
{
if(response == 0)//wenn die person ESC drückt oder auf abbrechen kommt das:
{
UnFreezePlayer(playerid);//entfreezt ihn wieder
RemovePlayerFromVehicle(playerid);//wichtig weil sonst kann die person mit dem wagen wegfahren
SendClientMessage(playerid,COLOR_YELLOW, "Du hast den Kauf abgebrochen!");//ist klar
}
if(response == 1)//wenn er auf kaufen drückt
{
RemovePlayerFromVehicle(playerid);//rauswerfen
UnFreezePlayer(playerid);//unfreezen
if(GetPlayerMoney(playerid) < 8000){SendClientMessage(playerid,COLOR_GREY,"Du hast nicht genug Geld um dieses Fahrzeug zu kaufen!");} else {OnPlayerBuyCar(playerid,462,8000,2);} //abfrage ob er genug geld mit hat , die nachicht wenn er nicht genug hat, wenn ja dann geht es zum scriptpunkt
OnPlayerBuyCar(playerid,carid,preis,welches auto bzw spawn) (die spawns musst du suchen im script wenn du ingame mal die coords abfragst. wenn du es nicht findest sag einfach besscheid.
}
} -
geht
if(strcmp(cmdtext, "/rampeweg", true, 9) == 0)
{
if(strlen(cmdtext) == 9) return SendClientMessage(playerid, 0xFF0000FF, "Benutze: {FAFAFA}/rampeweg [Slot]");
else if(cmdtext[9] == ' ')
{
new i;
tmp = strtok(cmdtext, idx);
moneys = strval(tmp);
new Float:x, Float:y, Float:z;
GetObjectPos(rampe[moneys], x, y, z);
for(new j = 0; j < sizeof(rampe); j++)
{
if(rampeID[j] == -1) continue;
GetObjectPos(rampeID[moneys], x, y, z);
}
if(sscanf(cmdtext[10], "d", i)) return SendClientMessage(playerid, 0xFF0000FF, "Benutze: {FAFAFA}/rampeweg [Slot]");
if(i < 0 || i >= sizeof(rampeID)) return SendClientMessage(playerid, 0xFF0000FF, "Es gibt nur rampen 0-150!");
if(rampeID[i] == -1) return SendClientMessage(playerid, 0xFF0000FF, "Diese rampe existiert nicht!");
if(!IsPlayerInRangeOfPoint(playerid, 4, x, y, z)) return SendClientMessage(playerid, 0xFF0000FF, "Du bist nicht in der Nähe der rampe!");DestroyObject(rampeID[i]);
rampeID[i] = -1;
rampeTime[i] = 0;
new str[380];
Delete3DTextLabel(rampeLabel[i]);
format(str, sizeof(str), "{FAFAFA}Du hast rampe {FF6400}%d{FAFAFA} entfernt!)",i);
SendClientMessage(playerid, 0xFF0000FF,str);
}
}geht nicht
if(strcmp(cmdtext, "/lrampe", true, 7) == 0)
{
if(strlen(cmdtext) == 7) return SendClientMessage(playerid, 0xFF0000FF, "Benutze: {FAFAFA}/rampeweg [Slot]");
else if(cmdtext[7] == ' ')
{
new i;
tmp = strtok(cmdtext, idx);
moneys = strval(tmp);
new Float:x, Float:y, Float:z;
GetObjectPos(rampe[moneys], x, y, z);
for(new j = 0; j < sizeof(rampe); j++)
{
if(rampeID[j] == -1) continue;
GetObjectPos(rampeID[moneys], x, y, z);
}
if(sscanf(cmdtext[10], "d", i)) return SendClientMessage(playerid, 0xFF0000FF, "Benutze: {FAFAFA}/rampeweg [Slot]");
if(i < 0 || i >= sizeof(rampeID)) return SendClientMessage(playerid, 0xFF0000FF, "Es gibt nur rampen 0-150!");
if(rampeID[i] == -1) return SendClientMessage(playerid, 0xFF0000FF, "Diese rampe existiert nicht!");
if(!IsPlayerInRangeOfPoint(playerid, 4, x, y, z)) return SendClientMessage(playerid, 0xFF0000FF, "Du bist nicht in der Nähe der rampe!");DestroyObject(rampeID[i]);
rampeID[i] = -1;
rampeTime[i] = 0;
new str[380];
Delete3DTextLabel(rampeLabel[i]);
format(str, sizeof(str), "{FAFAFA}Du hast rampe {FF6400}%d{FAFAFA} entfernt!)",i);
SendClientMessage(playerid, 0xFF0000FF,str);
}
} -