Sari la conținut

Postări Recomandate

Postat

📍 MARK HERE – Apasă să pui semn + sunet HERE

Autor: Daniel
Versiune: 1.1
Compatibil: AMXX / HLDS

📌 Descriere

Apasă una dintre tastele de radio (Z, X, C) pentru a pune un marker vizual în locul unde ții ținta și pentru a reda un sunet "HERE".

✔️ Marker vizibil pentru toți jucătorii
✔️ Sunet instant la plasare
✔️ Se afișează exact unde țintești
✔️ Dispare automat după câteva fracțiuni de secundă

🎮 Cum Funcționează

  • Apesi Z / X / C (radio1, radio2, radio3).
  • Pluginul detectează poziția unde țintești.
  • Se creează un sprite marker temporar.
  • Se redă sunetul here_10.wav.
  • Markerul dispare automat.

📥 Instalare Plugin

  1. Pune fișierul mark_here.sma în: addons/amxmodx/scripting
  2. Compilează și pune mark_here.amxx în: addons/amxmodx/plugins
  3. Deschide addons/amxmodx/configs/plugins.ini și adaugă:
mark_here.amxx

📂 Fișiere Necesare (.SPR & .WAV)

Fișierele .spr și .wav le găsiți atașate mai jos în topic.
 

📌 Unde se pun fișierele:

1️⃣ Sprite

Fișier:
mark_1.spr
Se pune în:
cstrike/sprites/

2️⃣ Sunet

Fișier:
here_10.wav
Se pune în:
cstrike/sound/
⚠️ Nu crea subfolder dacă nu modifici codul — fișierul trebuie pus direct în sound/

⚙️ Setări Editabile în Cod

#define MARK_DURATION 0.5
#define MARK_REFRESH 0.2
  • MARK_DURATION – Cât timp rămâne markerul
  • MARK_REFRESH – Frecvența redesenării sprite-ului

📦 Module Necesare

amxmodx
cstrike
engine

💻 Cod Plugin

👉 Apasă aici pentru a vedea codul complet (Spoiler)
#include 
#include 
#include 

#define MARK_DURATION 0.5 
#define MARK_REFRESH 0.2 

#define MARK_SPRITE "sprites/mark_1.spr"
#define MARK_SOUND "here_10.wav"

#define MAX_PLAYERS 32
new g_sprite;
new bool:g_sprite_active[MAX_PLAYERS + 1]; 
new Float:g_sprite_delay[MAX_PLAYERS + 1]; 
new aim_pos[MAX_PLAYERS + 1][3];

public plugin_init() {
    register_plugin("Mark Here", "1.1", "Daniel");

    register_clcmd("radio1", "cmd_mark");
    register_clcmd("radio2", "cmd_mark");
    register_clcmd("radio3", "cmd_mark");
}

public plugin_precache() {
    g_sprite = precache_model(MARK_SPRITE);
    precache_sound(MARK_SOUND);
}

public cmd_mark(id) {
    if (!is_user_alive(id)) return PLUGIN_HANDLED;

    if (!g_sprite_active[id]) {
        g_sprite_active[id] = true;

        get_user_origin(id, aim_pos[id], 3);
        emit_sound(id, CHAN_VOICE, MARK_SOUND, 1.0, ATTN_NORM, 0, PITCH_NORM);

        g_sprite_delay[id] = MARK_DURATION; 
        set_task(MARK_REFRESH, "CreateMark", id );
        set_task(g_sprite_delay[id], "DeleteMark", id);
    }
    return PLUGIN_HANDLED;
}

public CreateMark(id) {
    if (is_user_alive(id) && g_sprite_active[id]) {
        
        message_begin(MSG_BROADCAST,SVC_TEMPENTITY) 
        write_byte(TE_SPRITE) 
        write_coord(aim_pos[id][0])
        write_coord(aim_pos[id][1])
        write_coord(aim_pos[id][2])
        write_short(g_sprite)
        write_byte(5)
        write_byte(255)
        message_end() 
                    
        set_task(MARK_REFRESH, "CreateMark", id);
    }
}

public DeleteMark(id) {
    g_sprite_active[id] = false;
}


🎯 Sistem simplu și util pentru coordonare rapidă pe server 🎯

mark_1.spr

Vizitator
Acest topic este acum închis pentru alte răspunsuri.
  • Navigare recentă   0 membri

    • Nici un utilizator înregistrat nu vede această pagină.
×
×
  • Creează nouă...

Informații Importante

Termeni de Utilizare & Politică Intimitate