Rusu Radu Postat Februarie 16 Postat Februarie 16 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 Pune fișierul mark_here.sma în: addons/amxmodx/scripting Compilează și pune mark_here.amxx în: addons/amxmodx/plugins 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: Sprite Fișier: mark_1.spr Se pune în: cstrike/sprites/ 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 here_10.wav mark_1.spr
Postări Recomandate