Ist es möglich irgendwie abzufragen, ob ich ein Objekt abschieße?
Bei lagshot, also lagcomp off.
Abfragen ob Objekt angeschossen wird? (lagcomp off)
- Apokrate
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Nicht wirklich.
Du könntest den Punkt berechnen (http://forum.sa-mp.com/showthread.php?t=140765) aber ich bezweifle, dass das immer zu 100% funktioniert.
Man müsste zudem für die entsprechenden Objekte die genauen Maße kennen, und die Berechnung muss aus jedem Winkel passen. -
Kann ich in OnPlayerUpdate irgendwie 2 Tasten gleichzeitig abfragen?
Also ob ich ziele und schieße?
bei GetPlayerKeys
geht ja nur eine taste -
Das kannst du bei http://wiki.sa-mp.com/wiki/OnPlayerKeyStateChange machen.
Du kannst den Wert von newkeys aber in einer Spielervariable speichern und bei OnPlayerUpdate nutzen. -
Code
Alles anzeigennew bool:Zielt[MAX_PLAYERS]; //OnPlayerKeyStateChange if(newkeys == KEY_AIM) { Zielt[playerid] = true; print("Zielt"); } if(oldkeys == KEY_AIM && newkeys != KEY_AIM) { Zielt[playerid] = false; print("zielt nicht"); } //OnPlayerUpdate for(new aimo = 0; aimo < sizeof ATM; aimo++) { if(IsPlayerAimingAt(playerid, ATM[aimo][posx], ATM[aimo][posy], ATM[aimo][posz], 0.5) && Zielt[playerid] == true && Keys == KEY_FIRE) { SendClientMessage(playerid, -1, "Schießt gegen ATM"); } }
Funktioniert nicht. Hab mal ohne Zielt[playerid] probiert. Funktioniert. aber wäre halt sinnlos.
Vielleicht kann ja jemand helfen -
Welchen Wert bekommt Keys in OnPlayerUpdate zugewiesen?
-
du kannst dir mal dieses Plugin anschauen.
http://forum.sa-mp.com/showthread.php?t=586068
Sonst musst du eine Hitbox erstellen für das objekt und abfragen ob der spieler das Objekt trifft dazu brauchst du zwei Punkte. Die Ausgangsposition und der letzte Punkt nach der definierten Reichweite und prüfst via eine for schleife im interval von 1.0 ob der Punkt in den Zonen ist.
-
Die Lösung die mir einfallen würde wäre abzufragen ob der Spieler sich in der Nähe befindet und auf der Object schaut, dann mit OnPlayerWeaponShot abfragen ob er ein Object trifft,
aber ich glaube zu 100 % wird man es nicht hinbekommen es wird also immer eine Chance geben ,dass das ganze nicht hin haut. -
Welchen Wert bekommt Keys in OnPlayerUpdate zugewiesen?
[20:43:54] Zielt
[20:43:54] 128
[20:43:54] zielt nicht
[20:43:54] 0
[20:43:54] 1024du kannst dir mal dieses Plugin anschauen.
http://forum.sa-mp.com/showthread.php?t=586068
Sonst musst du eine Hitbox erstellen für das objekt und abfragen ob der spieler das Objekt trifft dazu brauchst du zwei Punkte. Die Ausgangsposition und der letzte Punkt nach der definierten Reichweite und prüfst via eine for schleife im interval von 1.0 ob der Punkt in den Zonen ist.
mh. das plugin replaced also die ganze map. bugt es dann nicht?
Die Lösung die mir einfallen würde wäre abzufragen ob der Spieler sich in der Nähe befindet und auf der Object schaut, dann mit OnPlayerWeaponShot abfragen ob er ein Object trifft,
aber ich glaube zu 100 % wird man es nicht hinbekommen es wird also immer eine Chance geben ,dass das ganze nicht hin haut.Dieses public wird bei lagcomp off nicht aufgerufen
-
nee wo soll der quatsch stehen ? Die ganzen Koordinaten der standard map werden initialisiert und durch die funktionen kannst du neue Koordinaten hinzufügen
-
-
nee wo soll der quatsch stehen ? Die ganzen Koordinaten der standard map werden initialisiert und durch die funktionen kannst du neue Koordinaten hinzufügen
wie nutze ich das dann so, dass ich abfrage ob ich gerade gegen einen automaten schieße ?
-
[20:43:54] Zielt
[20:43:54] 128Ich meinte den Code.
-
An sich würde dir diese Funktion reichen
CA_RayCastLine
Daher musst du nur abfragen wie Jeffry dir schon oben geschrieben hat ob der Spieler schießt.
Aber wie wäre es den, wenn du das Plugin einfach mal downloadest und dir die Funktionen anschaust ? -
Beitrag von H4rd_B4se ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: fail (). -
Ich meinte den Code.
Code
Alles anzeigennew bool:Zielt[MAX_PLAYERS]; //OnPlayerKeyStateChange if(newkeys == KEY_AIM) { Zielt[playerid] = true; print("Zielt"); } if(oldkeys == KEY_AIM && newkeys != KEY_AIM) { Zielt[playerid] = false; print("zielt nicht"); } //OnPlayerUpdate for(new aimo = 0; aimo < sizeof ATM; aimo++) { if(IsPlayerAimingAt(playerid, ATM[aimo][posx], ATM[aimo][posy], ATM[aimo][posz], 0.5) && Zielt[playerid] == true && Keys == KEY_FIRE) { SendClientMessage(playerid, -1, "Schießt gegen ATM"); } } printf("%d %s",Keys, Keys);
_____________________
bei CA_RayCastLine
weiß ich nicht was start ist.
https://wiki.sa-mp.com/wiki/ColAndreas#CA_RayCastLine -
Das ist eine Linie
x_________________________________________________________________y
Die hat ein Anfang (x) und ein Ende (y) und wo beginnt der Schuss ?
Natürlich dort wo die Kugel den Lauf verlässt oder ausgehend von der position wo die Kamera des Spielers sich befindet:
Daher musst du eine Position da sollte dir die FUnktion GetPlayerCameraFrontVector und GetPlayerCameraPos -
Funktioniert nicht.
Auf Grund meiner Inaktivität in den letzten beiden Monaten habe ich den Thread und eventuell andere Threads nicht weiter verfolgt.
Da hier noch keine Lösung vorhanden ist: Besteht hier noch Handlungsbedarf, oder hat sich das Problem inzwischen erledigt? -
breadfish.de
Hat das Thema geschlossen.