Заявка за преработка на плъгин CD - ZP 4.3 + още нещо.

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
beready4me
Извън линия
Потребител
Потребител
Мнения: 25
Регистриран на: 07 Апр 2020, 00:49
Се отблагодари: 6 пъти
Получена благодарност: 1 път

Заявка за преработка на плъгин CD - ZP 4.3 + още нещо.

Мнение от beready4me » 07 Апр 2020, 07:42

Добро Утро,
ще помоля някой да ми преработи CountDown плъгин от Plague мода, като искам брояча да е точно в средата и да е в зелено/жълто/червено, ако е възможно детайла с различният цвят. Получава ми се някво страшно разбъркване с бяли надписи. Не разбирам изобщо от кодове. Отделно от това ако може да ми споделите варианта надписа с кръвта и аммото да е DHUD също в средата, но най-отдолу. Благодаря предварително.

Код за потвърждение: Избери целия код

/*================================================================================
           -----------------------------------
           -*- [ZP] Extra Addon: Countdown -*-
           -----------------------------------

           ~~~~~~~~~~~~~~~
           - Description -
           ~~~~~~~~~~~~~~~

           This will countdown until someone will turn into zombie. 

           ~~~~~~~~~~~~~~~
           - To do list! -
           ~~~~~~~~~~~~~~~

           Go to zombieplague.cfg and find zp_delay 10 change to zp_delay 15.
           ( cstrike / addons / amxmodx / configs / zombieplague.cfg )

           ~~~~~~~~~~~~~~~
           -  Changelog  -
           ~~~~~~~~~~~~~~~

           - Version: 1.0 (April 1 2012)
           * Public release.

================================================================================*/           
           
#include <amxmodx>
#include <amxmisc>
#include <dhudmessage>

/*================================================================================
 [Defines]
=================================================================================*/

#define PLUGIN "[ZP] Extra Addon: Countdown"
#define VERSION "1.0"
#define AUTHOR "MercedeS"

/*================================================================================
 [Plugin init]
=================================================================================*/

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_event("HLTV", "event_round_start", "a", "1=0", "2=0") 
}

/*================================================================================
 [Precaches]
=================================================================================*/

public plugin_precache()
{
	precache_sound("countdown/10.wav")
	precache_sound("countdown/9.wav")
	precache_sound("countdown/8.wav")
	precache_sound("countdown/7.wav")
	precache_sound("countdown/6.wav")
	precache_sound("countdown/5.wav")
	precache_sound("countdown/4.wav")
	precache_sound("countdown/3.wav")
	precache_sound("countdown/2.wav")
	precache_sound("countdown/1.wav")
}

/*================================================================================
 [Round start event]
=================================================================================*/

public event_round_start()
{
	set_task(5.0, "countdown")
}

/*================================================================================
 [Countdown]
=================================================================================*/

public countdown()
{
	set_task(1.0, "ten")
	set_task(2.0, "nine")
	set_task(3.0, "eight")
	set_task(4.0, "seven")
	set_task(5.0, "six")
	set_task(6.0, "five")
	set_task(7.0, "four")
	set_task(8.0, "three")
	set_task(9.0, "two")
	set_task(10.0, "one")
}

public ten()
{
	set_dhudmessage(255, 255, 255, -1.0, -1.0)
	show_dhudmessage(0, "10 to infection")
	client_cmd(0, "spk countdown/10")
}

public nine()
{
	set_dhudmessage(255, 255, 255, -1.0, -1.0)
	show_dhudmessage(0, "9 to infection")
	client_cmd(0, "spk countdown/9")
}

public eight()
{
	set_dhudmessage(255, 255, 255, -1.0, -1.0)
	show_dhudmessage(0, "8 to infection")
	client_cmd(0, "spk countdown/8")
}

public seven()
{
	set_dhudmessage(255, 255, 255, -1.0, -1.0)
	show_dhudmessage(0, "7 to infection")
	client_cmd(0, "spk countdown/7")
}

public six()
{
	set_dhudmessage(255, 255, 255, -1.0, -1.0)
	show_dhudmessage(0, "6 to infection")
	client_cmd(0, "spk countdown/6")
}

public five()
{
	set_dhudmessage(255, 255, 255, -1.0, -1.0)
	show_dhudmessage(0, "5 to infection")
	client_cmd(0, "spk countdown/5")
}

public four()
{
	set_dhudmessage(255, 255, 255, -1.0, -1.0)
	show_dhudmessage(0, "4 to infection")
	client_cmd(0, "spk countdown/4")
}

public three()
{
	set_dhudmessage(255, 255, 255, -1.0, -1.0)
	show_dhudmessage(0, "3 to infection")
	client_cmd(0, "spk countdown/3")
}

public two()
{
	set_dhudmessage(255, 255, 255, -1.0, -1.0)
	show_dhudmessage(0, "2 to infection")
	client_cmd(0, "spk countdown/2")
}

public one()
{
	set_dhudmessage(255, 255, 255, -1.0, -1.0)
	show_dhudmessage(0, "1 to infection ")
	client_cmd(0, "spk countdown/1")
}

/*================================================================================
                                      END
=================================================================================*/


Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Заявка за преработка на плъгин CD - ZP 4.3 + още нещо.

Мнение от OciXCrom » 07 Апр 2020, 14:29

Всичко това се променя от set_dhudmessage функцията в кода.
Първите 3 аргумента в нея са цветовете в RGB формат, а следващите 2 са координатите - X и Y.

Можеш да ползваш това за да си избереш цвят и координати - https://www.amxx-bg.info/forum/hudgenerator/

Този плъгин е категорично зле написан, така че го пренаписах с 10 пъти по-малко код:

Код за потвърждение: Избери целия код

#include <amxmodx>

#if AMXX_VERSION_NUM < 183 || !defined set_dhudmessage
	#tryinclude <dhudmessage>

	#if !defined _dhudmessage_included
		#error "dhudmessage.inc" is missing in your "scripting/include" folder. Download it from: "https://amxx-bg.info/forum/inc/"
	#endif
#endif

#define COUNTDOWN_FILE "countdown/%i.wav"
#define COUNTDOWN_SND_CMD "spk ^"countdown/%i.wav^""

const COUNTDOWN_TASKID = 700123
const COUNTDOWN_START = 1
const COUNTDOWN_END = 10
const Float:COUNTDOWN_SECOND = 1.0
const Float:COUNTDOWN_ROUND_DELAY = 5.0

new g_iTimer

public plugin_init()
{
	register_plugin("ZP Countdown", "1.0", "OciXCrom")
	register_event("HLTV", "OnRoundStart", "a", "1=0", "2=0")
	register_logevent("OnRoundEnd", 2, "1=Round_End")
}

public plugin_precache()
{
	for(new szSound[32], i = COUNTDOWN_START; i <= COUNTDOWN_END; i++)
	{
		formatex(szSound, charsmax(szSound), COUNTDOWN_FILE, i)
	}
}

public OnRoundEnd()
{
	remove_task(COUNTDOWN_TASKID)
}

public OnRoundStart()
{
	set_task(COUNTDOWN_ROUND_DELAY - COUNTDOWN_SECOND, "StartCountdown", COUNTDOWN_TASKID)
}

public StartCountdown()
{
	g_iTimer = COUNTDOWN_END
	set_task(COUNTDOWN_SECOND, "DisplayTimer", COUNTDOWN_TASKID, .flags = "a", .repeat = COUNTDOWN_END)
}

public DisplayTimer()
{
	client_cmd(0, COUNTDOWN_SND_CMD, g_iTimer)
	set_dhudmessage(random(256), random(256), random(256), -1.0, -1.0, .holdtime = COUNTDOWN_SECOND)
	show_dhudmessage(0, "%i seconds to infection", g_iTimer--)
}

Аватар
beready4me
Извън линия
Потребител
Потребител
Мнения: 25
Регистриран на: 07 Апр 2020, 00:49
Се отблагодари: 6 пъти
Получена благодарност: 1 път

Заявка за преработка на плъгин CD - ZP 4.3 + още нещо.

Мнение от beready4me » 07 Апр 2020, 15:33

WOW!

С тоя код, тотално ми отказа. Нито звуците ми възпроизвежда, нито надписите са различни, надписите се струпват един върху друг и става мазало.

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Заявка за преработка на плъгин CD - ZP 4.3 + още нещо.

Мнение от OciXCrom » 07 Апр 2020, 16:01

:coolface:

Цял един символ съм объркал. Поправих кода. Тествах (без звуците) и работи.

Аватар
beready4me
Извън линия
Потребител
Потребител
Мнения: 25
Регистриран на: 07 Апр 2020, 00:49
Се отблагодари: 6 пъти
Получена благодарност: 1 път

Заявка за преработка на плъгин CD - ZP 4.3 + още нещо.

Мнение от beready4me » 07 Апр 2020, 17:18

Все същото, и без звуци. Възможно е някъде при мен да е проблема. Ползвам стара платформа.
Демо на проблема. https://dox.abv.bg/download?id=37bd52259e# -> линк за сваляне
Пробвах друг код на плъгина, но отново същото, отброява но се размазва. Странно. Мода е теглен 4.3 изцяло чист без нищо.

Можем това да го оставим настрани, не е толкова важно. В момента силно ме интересува как да направя тази "магия". Да не отварям нова тема.
Изглежда много прилично.
Изображение

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Заявка за преработка на плъгин CD - ZP 4.3 + още нещо.

Мнение от OciXCrom » 07 Апр 2020, 20:55

Изпуснал съм реда който пуска звуците. Сега би трябвало да е наред.

Какво ще каже "се размазва"?

Демото не ми върши работа, тъй като нямам ресурите от сървъра и няма как да го пусна.

За другата магия не си предоставил кода на плъгина. Обясних ти в първото мнение как работят HUD/DHUD съобщения и какво трябва да промениш.

Аватар
beready4me
Извън линия
Потребител
Потребител
Мнения: 25
Регистриран на: 07 Апр 2020, 00:49
Се отблагодари: 6 пъти
Получена благодарност: 1 път

Заявка за преработка на плъгин CD - ZP 4.3 + още нещо.

Мнение от beready4me » 08 Апр 2020, 18:35

Опитах да си играя с HUD генератора, обаче нещо неуспешно. Не слагам правилните цифри на правилното място.
Искам да е посредата над часовника и да изглежда така:

HP:250 l Hunter Zombie l AP: 231 - След като вдигнах на 5.0 версията, тази статистика си стана както исках на DHUD.
Обаче разположението ми е трудно.

Можеш ли да ми обясниш?

Код за потвърждение: Избери целия код

/*================================================================================
	
	----------------------------
	-*- [ZP] HUD Information -*-
	----------------------------
	
	This plugin is part of Zombie Plague Mod and is distributed under the
	terms of the GNU General Public License. Check ZP_ReadMe.txt for details.
	
================================================================================*/

#include <amxmodx>
#include <fun>
#include <cstrike>
#include <fakemeta>
#include <zp50_class_human>
#include <zp50_class_zombie>
#define LIBRARY_NEMESIS "zp50_class_nemesis"
#include <zp50_class_nemesis>
#define LIBRARY_SURVIVOR "zp50_class_survivor"
#include <zp50_class_survivor>
#define LIBRARY_AMMOPACKS "zp50_ammopacks"
#include <zp50_ammopacks>

const Float:HUD_SPECT_X = 0.6
const Float:HUD_SPECT_Y = 0.8
const Float:HUD_STATS_X = 0.02
const Float:HUD_STATS_Y = 0.9

const HUD_STATS_ZOMBIE_R = 200
const HUD_STATS_ZOMBIE_G = 250
const HUD_STATS_ZOMBIE_B = 0

const HUD_STATS_HUMAN_R = 0
const HUD_STATS_HUMAN_G = 200
const HUD_STATS_HUMAN_B = 250

const HUD_STATS_SPEC_R = 255
const HUD_STATS_SPEC_G = 255
const HUD_STATS_SPEC_B = 255

#define TASK_SHOWHUD 100
#define ID_SHOWHUD (taskid - TASK_SHOWHUD)

const PEV_SPEC_TARGET = pev_iuser2

new g_MsgSync

public plugin_init()
{
	register_plugin("[ZP] HUD Information", ZP_VERSION_STRING, "ZP Dev Team")
	
	g_MsgSync = CreateHudSyncObj()
}

public plugin_natives()
{
	set_module_filter("module_filter")
	set_native_filter("native_filter")
}
public module_filter(const module[])
{
	if (equal(module, LIBRARY_NEMESIS) || equal(module, LIBRARY_SURVIVOR) || equal(module, LIBRARY_AMMOPACKS))
		return PLUGIN_HANDLED;
	
	return PLUGIN_CONTINUE;
}
public native_filter(const name[], index, trap)
{
	if (!trap)
		return PLUGIN_HANDLED;
	
	return PLUGIN_CONTINUE;
}

public client_putinserver(id)
{
	if (!is_user_bot(id))
	{
		// Set the custom HUD display task
		set_task(1.0, "ShowHUD", id+TASK_SHOWHUD, _, _, "b")
	}
}

public client_disconnect(id)
{
	remove_task(id+TASK_SHOWHUD)
}

// Show HUD Task
public ShowHUD(taskid)
{
	new player = ID_SHOWHUD
	
	// Player dead?
	if (!is_user_alive(player))
	{
		// Get spectating target
		player = pev(player, PEV_SPEC_TARGET)
		
		// Target not alive
		if (!is_user_alive(player))
			return;
	}
	
	// Format classname
	static class_name[32], transkey[64]
	new red, green, blue
	
	if (zp_core_is_zombie(player)) // zombies
	{
		red = HUD_STATS_ZOMBIE_R
		green = HUD_STATS_ZOMBIE_G
		blue = HUD_STATS_ZOMBIE_B
		
		// Nemesis Class loaded?
		if (LibraryExists(LIBRARY_NEMESIS, LibType_Library) && zp_class_nemesis_get(player))
			formatex(class_name, charsmax(class_name), "%L", ID_SHOWHUD, "CLASS_NEMESIS")
		else
		{
			zp_class_zombie_get_name(zp_class_zombie_get_current(player), class_name, charsmax(class_name))
			
			// ML support for class name
			formatex(transkey, charsmax(transkey), "ZOMBIENAME %s", class_name)
			if (GetLangTransKey(transkey) != TransKey_Bad) formatex(class_name, charsmax(class_name), "%L", ID_SHOWHUD, transkey)
		}
	}
	else // humans
	{
		red = HUD_STATS_HUMAN_R
		green = HUD_STATS_HUMAN_G
		blue = HUD_STATS_HUMAN_B
		
		// Survivor Class loaded?
		if (LibraryExists(LIBRARY_NEMESIS, LibType_Library) && zp_class_survivor_get(player))
			formatex(class_name, charsmax(class_name), "%L", ID_SHOWHUD, "CLASS_SURVIVOR")
		else
		{
			zp_class_human_get_name(zp_class_human_get_current(player), class_name, charsmax(class_name))
			
			// ML support for class name
			formatex(transkey, charsmax(transkey), "HUMANNAME %s", class_name)
			if (GetLangTransKey(transkey) != TransKey_Bad) formatex(class_name, charsmax(class_name), "%L", ID_SHOWHUD, transkey)
		}
	}
	
	// Spectating someone else?
	if (player != ID_SHOWHUD)
	{
		new player_name[32]
		get_user_name(player, player_name, charsmax(player_name))
		
		// Show name, health, class, and money
		set_hudmessage(HUD_STATS_SPEC_R, HUD_STATS_SPEC_G, HUD_STATS_SPEC_B, HUD_SPECT_X, HUD_SPECT_Y, 0, 6.0, 1.1, 0.0, 0.0, -1)
		
		if (LibraryExists(LIBRARY_AMMOPACKS, LibType_Library))
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "%L: %s^nHP: %d I %L %s I %L %d", ID_SHOWHUD, "SPECTATING", player_name, get_user_health(player), ID_SHOWHUD, "CLASS_CLASS", class_name, ID_SHOWHUD, "AMMO_PACKS1", zp_ammopacks_get(player))
		else
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "%L: %s^nHP: %d - %L %s - %L $ %d", ID_SHOWHUD, "SPECTATING", player_name, get_user_health(player), ID_SHOWHUD, "CLASS_CLASS", class_name, ID_SHOWHUD, "MONEY1", cs_get_user_money(player))
	}
	else
	{
		// Show health, class
		set_hudmessage(red, green, blue, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.1, 0.0, 0.0, -1)
		
		if (LibraryExists(LIBRARY_AMMOPACKS, LibType_Library))
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "HP: %d I %L %s I %L %d", get_user_health(ID_SHOWHUD), ID_SHOWHUD, "CLASS_CLASS", class_name, ID_SHOWHUD, "AMMO_PACKS1", zp_ammopacks_get(ID_SHOWHUD))
		else
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "HP: %d I %L %s", get_user_health(ID_SHOWHUD), ID_SHOWHUD, "CLASS_CLASS", class_name)
	}
}

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Заявка за преработка на плъгин CD - ZP 4.3 + още нещо.

Мнение от OciXCrom » 08 Апр 2020, 21:20

Не трябва никакви цифри да слагаш в генератора. Просто хвани съобщението с мишката и мести го по екрана където искаш да стои, а цифрите авоматично ще се генерират. Ако искаш да е в центъра на Х или Y, ползвай -1.0.

Аватар
beready4me
Извън линия
Потребител
Потребител
Мнения: 25
Регистриран на: 07 Апр 2020, 00:49
Се отблагодари: 6 пъти
Получена благодарност: 1 път

Заявка за преработка на плъгин CD - ZP 4.3 + още нещо.

Мнение от beready4me » 08 Апр 2020, 21:30

Не слагам цифри в генератора. Преместих текста там където искам да ми е, обаче не знам кои точно цифри в кода да променя.

Кода от генератора е този:

Код за потвърждение: Избери целия код

set_hudmessage(255, 255, 255, 0.45, 0.90, .effects= 0 , .holdtime= 5.0)
show_hudmessage(0, "amxx-bg.info/forum^nHUD Generator")
а в кода е така:

Код за потвърждение: Избери целия код

set_hudmessage(red, green, blue, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.1, 0.0, 0.0, -1)
Как да променя кода така, че съобщението да е най-отдолу над часовника. В момента ми е посредата но много над часовника и седи грозно. Един вид искам да го смъкна надолу.

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Заявка за преработка на плъгин CD - ZP 4.3 + още нещо.

Мнение от OciXCrom » 08 Апр 2020, 21:57

Както казах:
Първите 3 аргумента в нея са цветовете в RGB формат, а следващите 2 са координатите - X и Y.
В твоя случай, търсиш настройките/променливите HUD_STATS_X и HUD_STATS_Y и записваш там цифрите (0.45 за X и 0.90 за Y).

Hint: #define редовете в началото на кода.

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 19 госта