From 70c860e1ca6cb0616b02ca7ed284bb004d97f980 Mon Sep 17 00:00:00 2001 From: Masashi Date: Thu, 18 Dec 2025 20:42:54 +0530 Subject: [PATCH] REAL GAM --- game/client | Bin 29920 -> 38744 bytes game/client.c | 6 +++++- game/server | Bin 35160 -> 36424 bytes game/server.c | 7 +++++++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/game/client b/game/client index 2164e961c07d9c3ec33b1bdec0bbc0c8aa77690a..dd120e67ad8cfe63762cc04683146e234cf7c4f1 100755 GIT binary patch literal 38744 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 D{ynK0 literal 29920 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 diff --git a/game/client.c b/game/client.c index 33a9dc0..c9ac211 100644 --- a/game/client.c +++ b/game/client.c @@ -41,6 +41,7 @@ typedef int socklen_t; #define BTN_SWITCH_RIFLE (1u << 2) #define BTN_PICK (1u << 3) #define BTN_USE_MEDKIT (1u << 4) +#define BTN_JUMP (1u << 5) // ============== SIMPLEX NOISE ============== static const uint8_t perm[512] = { @@ -555,6 +556,7 @@ int main(void) { if (myId != 255 && rp[myId].present) { Vector3 body = rp[myId].pos; camPos.x = body.x; + camPos.y = body.y + 1.0f; camPos.z = body.z + 0.0001f; } } else if (type == MSG_ITEMS && n >= (int)sizeof(MsgItems)) { @@ -609,6 +611,8 @@ int main(void) { buttons |= BTN_PICK; if (IsKeyPressed(KEY_H)) buttons |= BTN_USE_MEDKIT; + if (IsKeyPressed(KEY_SPACE)) + buttons |= BTN_JUMP; if (myId != 255) { MsgInput in = {0}; @@ -736,7 +740,7 @@ int main(void) { 18, (rp[myId].medkits > 0) ? (Color){120, 255, 120, 120} : (Color){120, 120, 120, 120}); - DrawText("1=Pistol 2=Rifle R=Reload F=Pick", 20, 95, 14, + DrawText("1=Pistol 2=Rifle R=Reload F=Pick SPACE=Jump", 20, 95, 12, (Color){150, 150, 150, 150}); const char *weaponName = diff --git a/game/server b/game/server index 80cf392ba1f08227f5e82b9cf734f1647e34db6a..c460ae13d219541e91533893bf27f2e6f839b19e 100755 GIT binary patch literal 36424 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 literal 35160 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 diff --git a/game/server.c b/game/server.c index cbc6aeb..c497376 100644 --- a/game/server.c +++ b/game/server.c @@ -46,6 +46,7 @@ typedef int socklen_t; #define BTN_SWITCH_RIFLE (1u << 2) #define BTN_PICK (1u << 3) #define BTN_USE_MEDKIT (1u << 4) +#define BTN_JUMP (1u << 5) #define CAT_WORLD (1u << 0) #define CAT_PLAYER (1u << 1) @@ -708,6 +709,12 @@ int main(void) { p->hp = 100; } } + + if (m->buttons & BTN_JUMP) { + const dReal *lvel = dBodyGetLinearVel(p->body); + dBodySetLinearVel(p->body, lvel[0], 12.0f, lvel[2]); // Set upward velocity + printf("Player %d jumped\n", pid); + } } } else if (type == MSG_SHOOT && n >= (int)sizeof(MsgShoot)) { const MsgShoot *m = (const MsgShoot *)buf;