Abend, ich stehe etwas auf dem Schlauch.
Ich schreibe gerade einen kleinen Gamemode, welcher "Multiplayer Missionen" für SAMP mit sich bringt.
Alles schön und gut, die Bots töten mich dauernd mit Messern, Schlagstöcken und Baseballschlägern.
Nun wage ich mich an die Schusswaffen - Sie zielen auf bestimmte Punkte, schießen selbstständig und machen auch Schaden wenn der Lagshot deaktiviert ist.
ABER (!) immer wenn ich sie auf einen neuen Punkt zielen lasse, hören sie auf zu zielen, drehen sich und zielen wieder.
Nun kann ich dem Bot die Facing Angle einstellen. Klappt auch wenn ich von Hand irgendeine Random Koordinate eingebe, er schießt brav weiter.
Aber wie kriege ich nun einen Wert zwischen Punkt A und Punkt B hin? Als Beispiel:
Spieler A ist auf Koordinate 2035.5573, 1343.0396, 10.8203, Spieler B auf Koordinate 2027.8364, 1339.8917, 10.8203.
Wie kann ich Spieler A's Facing Angle so ausrichten, dass er genau auf Spieler B zeigt?
Also wie kriege ich den gewünschten Wert für "Angle" heraus?
Angle von Punkt A zu Punkt B messen
- N0SKILL
- Geschlossen
- Erledigt
-
-
Diese Funktion sollte dir helfen:
stock SetPlayerLookAt(playerid, Float:X, Float:Y)
{
new Float:Px, Float:Py, Float: Pa;
GetPlayerPos(playerid, Px, Py, Pa);
Pa = floatabs(atan((Y-Py)/(X-Px)));
if (X <= Px && Y >= Py) Pa = floatsub(180, Pa);
else if (X < Px && Y < Py) Pa = floatadd(Pa, 180);
else if (X >= Px && Y <= Py) Pa = floatsub(360.0, Pa);
Pa = floatsub(Pa, 90.0);
if (Pa >= 360.0) Pa = floatsub(Pa, 360.0);
SetPlayerFacingAngle(playerid, Pa);
}
http://forum.sa-mp.com/showpost.php?p=3266453&postcount=4 -
Perfekt, danke.
Nur mal so nebenbei.... Du kennst dich nicht zufällig mit FCNPC aus?
Versuche das Plugin gerade zu installieren, das würde mir einiges an Arbeit ersparen.
Aber leider will das Ding nicht. Sobald ich es als Plugin einfüge stürzt der Server ab. (Getestet auf Windows 10, Windows 7, Debian 7 und Debian
Bei Windows spuckt er gar nichts aus.
Linux hingegen gibt mir die Meldung "Speicherzugriffsfehler" aus und folgendes steht im Serverlog:Code
Alles anzeigen[09:38:17] [debug] Server crashed due to an unknown error [09:38:17] [debug] Native backtrace: [09:38:17] [debug] #0 f740ce8b in _ZN10StackTraceC1EPv () from plugins/crashdetect.so [09:38:17] [debug] #1 f7405bcf in _ZN11CrashDetect20PrintNativeBacktraceERSoPv () from plugins/crashdetect.so [09:38:17] [debug] #2 f7406dbc in _ZN11CrashDetect20PrintNativeBacktraceEPv () from plugins/crashdetect.so [09:38:17] [debug] #3 f7407226 in _ZN11CrashDetect11OnExceptionEPv () from plugins/crashdetect.so [09:38:17] [debug] #4 f740cadc in ?? () from plugins/crashdetect.so [09:38:17] [debug] #5 f775cd40 in __kernel_rt_sigreturn () from linux-gate.so.1 [09:38:17] [debug] #6 f73198a3 in _ZN8CAddress10InitializeEv () from plugins/FCNPC.so [09:38:17] [debug] #7 f7323f39 in _ZN7CServer10InitializeEv () from plugins/FCNPC.so [09:38:17] [debug] #8 f731b695 in AmxLoad () from plugins/FCNPC.so [09:38:17] [debug] #9 080d1c89 in ?? () from ./samp03svr [09:38:17] [debug] #10 080a4f5f in ?? () from ./samp03svr [09:38:17] [debug] #11 080ab922 in ?? () from ./samp03svr [09:38:17] [debug] #12 080aa0fd in ?? () from ./samp03svr [09:38:17] [debug] #13 f7449a63 in __libc_start_main () from /lib32/libc.so.6 [09:38:17] [debug] #14 0804b4e1 in ?? () from ./samp03svr
Sämtliche Plugins wurden erfolgreich geladen, alles ist richtig includiert. Scheint als Läge der Fehler irgendwo bei mir im Script - Nur bin ich jede einzelne Stelle in der ich eine FCNPC Funktion aufrufe durchgegangen und finde einfach keinen Fehler. Hilfe.....?PS:
Code
Alles anzeigen======================== FCNPC Exception Handler =============================== Address: 0x627C1E00 Registers: EAX: 0x00000000 - EBX: 0x005B01C8 - ECX: 0x627CC5B0 - EDX: 0x627CC590 ESI: 0x0251936C - EDI: 0x61dfee11 - EBP: 0x0019FD74 - ESP: 0x0019FD60 Stack: 0x0: 0x627C8EBE - 0x4: 0x0251936C - 0x8: 0x008E2498 - 0xC: 0x008E2498 - 0x10: 0x00000000 - 0x14: 0x0019FDD0 0x18: 0x627C2B24 - 0x1C: 0x02518DD0 - 0x20: 0x0251936C Functions: FUNC_CPlayerPool__DeletePlayer: 0x466570 FUNC_CPlayer__Kill: 0x484620 FUNC_CPlayer__EnterVehicle: 0x0 FUNC_CPlayer__ExitVehicle: 0x0 FUNC_CPlayer__SpawnForWorld: 0x486d30 FUNC_GetVehicleModelInfo: 0x488240 FUNC_CConfig__GetValueAsInteger: 0x48b5b0 FUNC_CreateNPC_RPC: 0xffffffd6 FUNC_RakServer__Send: 0x45a260 Pointers: VAR_ServerAuthentication: 0x4f5fe8 VAR_ServerPtr: 0x2519e30 VAR_ConfigPtr: 0x2511398 VAR_RakPeerPtr: 0x251d810 Offsets: OFFSET_NetVersion: 0xfd9 OFFSET_RemoteSystemManager: 0x33c OFFSET_RemoteSystemSize: 0xcb8 OFFSET_RemoteSystem__ConnectMode: 0xcb0 OFFSET_RemoteSystem__Unknown: 0x0 OFFSET_SendBullet_RPC: 0x0 ======================== FCNPC Exception Handler ===============================
-
Kenne mich mit FCNPC aus. Mir ist zwar der Fehler nicht bekannt und habe es nur auf Linux Basis verwendet aber ich könnte sobald ich Zuhause bin per teamviewer mal rüberschauen
-
Wäre echt super. Wann bist du denn zuhause?
-
16:15
-
Mhm, das ist leider etwas zu spät für mich. Dann können wir das ja morgen machen, da bin ich ab 17 Uhr zuhause.
-
Mal gucken
-
Nur mal so nebenbei.... Du kennst dich nicht zufällig mit FCNPC aus?
Nein, sorry. Mit dieser Fehlermeldung kann ich leider nichts anfangen, da ich das Plugin nie genutzt habe.
-
breadfish.de
Hat das Thema geschlossen.