Правилно ли съм редактирал [Bullet DMG]

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Аватар
JustInCase
Извън линия
Потребител
Потребител
Мнения: 582
Регистриран на: 14 Окт 2016, 23:31
Се отблагодари: 4 пъти
Получена благодарност: 15 пъти

Правилно ли съм редактирал [Bullet DMG]

Мнение от JustInCase » 29 Окт 2016, 19:38

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

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fakemeta_util>
#include <colorchat>



#define PLUGIN "Advanced Bullet Damage"
#define VERSION "1.0"
#define AUTHOR "Sn!ff3r / JustInCaseEDIT"

new g_type, g_enabled, g_recieved, bool:g_showrecieved, g_hudmsg1, g_hudmsg2, bool:g_showdmg, bool:g_showrecievedcom

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")	
	register_event("HLTV", "on_new_round", "a", "1=0", "2=0")
	
	g_type = register_cvar("amx_bulletdamage","1")
	g_recieved = register_cvar("amx_bulletdamage_recieved","1")	
	
	register_clcmd("say /bulletdmg", "BulletDMG")
	register_clcmd("say_team /bulletdmg" , "BulletDMG")
	
	set_task(60.0, "InfoMessage")
	
	g_hudmsg1 = CreateHudSyncObj()	
	g_hudmsg2 = CreateHudSyncObj()
}
public client_putinserver(id)
{
	g_showdmg = true
	g_showrecievedcom = true
}
public InfoMessage(id)
{
	ColorChat(id, RED, "^4[ SS ] ^1Ako iskate da izkluchite ^3Bullet DMG ^1napsihete ^4/bulletdmg ^1v chata")
}
public BulletDMG(id)
{
	if(g_showdmg == true)
	{
		ColorChat(id, RED, "^4[ SS ] ^1Ti toku shto sprq ^3Bullet DMG")
		g_showdmg = false
		g_showrecievedcom = false
		return
	}
	if(g_showdmg == false)
	{
		ColorChat(id, RED, "^4[ SS ] ^1Ti toku shto pusna ^3Bullet DMG")
		g_showdmg = true
		g_showrecievedcom = true
	}
}
public on_new_round()
{
	g_enabled = get_pcvar_num(g_type)
	if(get_pcvar_num(g_recieved)) g_showrecieved = true	
}

public on_damage(id)
{
	if(g_showdmg == true && g_enabled && g_showrecievedcom == true)
	{		
		static attacker; attacker = get_user_attacker(id)
		static damage; damage = read_data(2)		
		if(g_showrecieved)
		{			
			set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
			ShowSyncHudMsg(id, g_hudmsg2, "%i^n", damage)		
		}
		if(is_user_connected(attacker))
		{
			switch(g_enabled)
			{
				case 1: {
					set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
					ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)				
				}
				case 2: {
					if(fm_is_ent_visible(attacker,id))
					{
						set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
						ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)				
					}
				}
			}
		}
	}
}
Целта беше да направя така, че с команда да се спира или пуска ?
Последно промяна от TheRedShoko на 14 Ное 2016, 21:16, променено общо 1 път.
Причина: Корегиран раздел.
MANSION - HNS : 45.144.155.99:27026
ONLINE

Аватар
3agopka
Извън линия
Потребител
Потребител
Мнения: 68
Регистриран на: 20 Окт 2016, 21:36
Получена благодарност: 1 път

Re: Правилно ли съм редактирал [Bullet DMG]

Мнение от 3agopka » 29 Окт 2016, 19:39

тествай и си отговори сам

Аватар
JustInCase
Извън линия
Потребител
Потребител
Мнения: 582
Регистриран на: 14 Окт 2016, 23:31
Се отблагодари: 4 пъти
Получена благодарност: 15 пъти

Re: Правилно ли съм редактирал [Bullet DMG]

Мнение от JustInCase » 29 Окт 2016, 19:42

3agopka написа:тествай и си отговори сам

Щом не съм тествал е очевидно че нямам сървър в/у който да тествам ;хх

Търся някой, който да ми каже дали има грешки по кода.
MANSION - HNS : 45.144.155.99:27026
ONLINE

Аватар
nekkyw
Извън линия
Потребител
Потребител
Мнения: 9
Регистриран на: 22 Окт 2016, 20:09

Re: Правилно ли съм редактирал [Bullet DMG]

Мнение от nekkyw » 14 Ное 2016, 09:41

Не виждам нищо сложно в това да си сложиш amxx на CS с ботове, да сложиш плъгина и да тестваш?

Аватар
mount4
Извън линия
Потребител
Потребител
Мнения: 187
Регистриран на: 03 Ное 2016, 19:54
Местоположение: Варна
Обратна връзка:

Re: Правилно ли съм редактирал [Bullet DMG]

Мнение от mount4 » 14 Ное 2016, 09:52

Това "set_task(60.0, "InfoMessage")" трябва да стане така -> "set_task(60.0, "InfoMessage", 0, _,_, "b")"

защото както си го направил съобщението ще се покаже само веднъж. Не съм гледал дали си го редактирал правилно.

edit: сложих го на моя сървър да пробваш, този от подписа ми.
edit2: немога да разбера закакво ти е да се пуска и спира bullet dmg-a ? :D

edit3: ще пусна debug-a ама не сега, лягам си.

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

L 11/14/2016 - 11:01:32: [AMXX] Run time error 4 (plugin "abd_shit.amxx") - debug not enabled!
L 11/14/2016 - 11:01:32: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
94.190.190.195:27015 -> Изображение <-- Runemod here !
94.190.190.195:27017 -> Изображение

Segmentation fault Изображение <-- Opera browser !

Аватар
TheRedShoko
Извън линия
Модератор
Модератор
Мнения: 1016
Регистриран на: 06 Окт 2016, 07:42
Местоположение: Бургас
Се отблагодари: 5 пъти
Получена благодарност: 84 пъти

Re: Правилно ли съм редактирал [Bullet DMG]

Мнение от TheRedShoko » 14 Ное 2016, 10:53

Не разбирам за какво са ти 2 bool, за да включваш и изключваш bulletdmg-то при положение, че винаги имат една и съща стойност. Също по този начин с командата ще се спира и пуска bulletdmg-то на всички в сървъра. Трябва да използваш един булев масив, за да пазиш стойностите в него. Командата за спиране и пускане на dmg-то можеш да я направиш с if() else, а не с 2 if-a, по практично е. Ако желаеш може да предоставиш оригиналния код, аз ще ти го направя едит-а и ще ти го обясня, ако искаш може сам да го направиш, за да разбереш как стават нещата сам.

Аватар
JustInCase
Извън линия
Потребител
Потребител
Мнения: 582
Регистриран на: 14 Окт 2016, 23:31
Се отблагодари: 4 пъти
Получена благодарност: 15 пъти

Re: Правилно ли съм редактирал [Bullet DMG]

Мнение от JustInCase » 14 Ное 2016, 18:15

TheRedShoko написа:Не разбирам за какво са ти 2 bool, за да включваш и изключваш bulletdmg-то при положение, че винаги имат една и съща стойност. Също по този начин с командата ще се спира и пуска bulletdmg-то на всички в сървъра. Трябва да използваш един булев масив, за да пазиш стойностите в него. Командата за спиране и пускане на dmg-то можеш да я направиш с if() else, а не с 2 if-a, по практично е. Ако желаеш може да предоставиш оригиналния код, аз ще ти го направя едит-а и ще ти го обясня, ако искаш може сам да го направиш, за да разбереш как стават нещата сам.

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

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fakemeta_util>
#include <colorchat>



#define PLUGIN "Advanced Bullet Damage"
#define VERSION "1.0"
#define AUTHOR "Sn!ff3r / JustInCaseEDIT"



new g_type, g_prefix, g_enabled, g_recieved, bool:g_showrecieved, g_hudmsg1, g_hudmsg2, bool:g_showdmg[33]

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")   
	register_event("HLTV", "on_new_round", "a", "1=0", "2=0")
	
	g_type = register_cvar("amx_bulletdamage","1")
	g_recieved = register_cvar("amx_bulletdamage_recieved","1")
	g_prefix = register_cvar("amx_bulletdamage_prefix", "EXAMPLE")
	
	
	
	
	
	register_clcmd("say /bulletdmg", "BulletDMG")
	register_clcmd("say_team /bulletdmg" , "BulletDMG")
	
	set_task(60.0, "InfoMessage", 0, _,_, "b")
	
	g_hudmsg1 = CreateHudSyncObj()   
	g_hudmsg2 = CreateHudSyncObj()
}
public client_putinserver(id)
{
	g_showdmg[id] = true
}
public InfoMessage(id)
{
	ColorChat(id, RED, "^4[ %s ] ^1Ako iskate da izkluchite ^3Bullet DMG ^1napsihete ^4/bulletdmg ^1v chata", GetPrefix())
}
public BulletDMG(id)
{
	if(g_showdmg[id] == true)
	{
		ColorChat(id, RED, "^4[ %s ] ^1Ti toku shto sprq ^3Bullet DMG", GetPrefix())
		g_showdmg[id] = false
		return
	}
	else
	{
		ColorChat(id, RED, "^4[ %s ] ^1Ti toku shto pusna ^3Bullet DMG", GetPrefix())
		g_showdmg[id] = true
	}
}
public on_new_round()
{
	g_enabled = get_pcvar_num(g_type)
	if(get_pcvar_num(g_recieved)) g_showrecieved = true   
}

public on_damage(id)
{
	if(g_showdmg[id] == true && g_enabled)
	{      
		static attacker; attacker = get_user_attacker(id)
		static damage; damage = read_data(2)      
		if(g_showrecieved)
		{         
			set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
			ShowSyncHudMsg(id, g_hudmsg2, "%i^n", damage)      
		}
		if(is_user_connected(attacker))
		{
			switch(g_enabled)
			{
				case 1: {
					set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
					ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)            
				}
				case 2: {
					if(fm_is_ent_visible(attacker,id))
					{
						set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
						ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)            
					}
				}
			}
		}
	}
}
stock GetPrefix()
{
	new Prefix[33]
	get_pcvar_string(g_prefix, Prefix, charsmax(Prefix))
	return Prefix
}

Мисля, че съм изпълнил всичко, което казахте погледнете кода пак. (Добавил съм Prefix Cvar)
MANSION - HNS : 45.144.155.99:27026
ONLINE

Аватар
TheRedShoko
Извън линия
Модератор
Модератор
Мнения: 1016
Регистриран на: 06 Окт 2016, 07:42
Местоположение: Бургас
Се отблагодари: 5 пъти
Получена благодарност: 84 пъти

Re: Правилно ли съм редактирал [Bullet DMG]

Мнение от TheRedShoko » 14 Ное 2016, 21:14

В Damage евента, id е индекса на жертвата. Проверката за g_showdmg трябва да я преместиш долу при проверката за is_user_connected(attacker), т.е. is_user_connected(attacker) && g_showdmg[attacker]. Има и съобщение с щетата, когато те атакуват, ако искаш да го скриеш, при проверката за g_showrecieved добави проверка дали id има включен bullet dmg. При деактивирането на bulletdmg в командата, не ти трябва return-a.

Аватар
JustInCase
Извън линия
Потребител
Потребител
Мнения: 582
Регистриран на: 14 Окт 2016, 23:31
Се отблагодари: 4 пъти
Получена благодарност: 15 пъти

Re: Правилно ли съм редактирал [Bullet DMG]

Мнение от JustInCase » 15 Ное 2016, 11:28

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

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fakemeta_util>
#include <colorchat>



#define PLUGIN "Advanced Bullet Damage"
#define VERSION "1.0"
#define AUTHOR "Sn!ff3r / JustInCaseEDIT"



new g_type, g_prefix, g_enabled, g_recieved, bool:g_showrecieved, g_hudmsg1, g_hudmsg2, bool:g_showdmg[33]

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")   
	register_event("HLTV", "on_new_round", "a", "1=0", "2=0")
	
	g_type = register_cvar("amx_bulletdamage","1")
	g_recieved = register_cvar("amx_bulletdamage_recieved","1")
	g_prefix = register_cvar("amx_bulletdamage_prefix", "EXAMPLE")
	
	
	
	
	
	register_clcmd("say /bulletdmg", "BulletDMG")
	register_clcmd("say_team /bulletdmg" , "BulletDMG")
	
	set_task(60.0, "InfoMessage", 0, _,_, "b")
	
	g_hudmsg1 = CreateHudSyncObj()   
	g_hudmsg2 = CreateHudSyncObj()
}
public client_putinserver(id)
{
	g_showdmg[id] = true
}
public InfoMessage(id)
{
	ColorChat(id, RED, "^4[ %s ] ^1Ako iskate da izkluchite ^3Bullet DMG ^1napsihete ^4/bulletdmg ^1v chata", GetPrefix())
}
public BulletDMG(id)
{
	if(g_showdmg[id] == true)
	{
		ColorChat(id, RED, "^4[ %s ] ^1Ti toku shto sprq ^3Bullet DMG", GetPrefix())
		g_showdmg[id] = false
	}
	else
	{
		ColorChat(id, RED, "^4[ %s ] ^1Ti toku shto pusna ^3Bullet DMG", GetPrefix())
		g_showdmg[id] = true
	}
}
public on_new_round()
{
	g_enabled = get_pcvar_num(g_type)
	if(get_pcvar_num(g_recieved)) g_showrecieved = true   
}

public on_damage(id)
{
	if(g_enabled && is_user_alive(id))
	{      
		static attacker; attacker = get_user_attacker(id)
		static damage; damage = read_data(2)      
		if(g_showrecieved && g_showdmg[id] == true)
		{         
			set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
			ShowSyncHudMsg(id, g_hudmsg2, "%i^n", damage)      
		}
		if(is_user_connected(attacker) && g_showdmg[attacker] == true )
		{
			switch(g_enabled)
			{
				case 1: {
					set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
					ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)            
				}
				case 2: {
					if(fm_is_ent_visible(attacker,id))
					{
						set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
						ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)            
					}
				}
			}
		}
	}
}
stock GetPrefix()
{
	new Prefix[33]
	get_pcvar_string(g_prefix, Prefix, charsmax(Prefix))
	return Prefix
}
Мисля, че трябва да стане така. При проверката за Recieved трябва да е с index "id". Махнал съм return.
MANSION - HNS : 45.144.155.99:27026
ONLINE

Аватар
TheRedShoko
Извън линия
Модератор
Модератор
Мнения: 1016
Регистриран на: 06 Окт 2016, 07:42
Местоположение: Бургас
Се отблагодари: 5 пъти
Получена благодарност: 84 пъти

Re: Правилно ли съм редактирал [Bullet DMG]

Мнение от TheRedShoko » 15 Ное 2016, 14:01

Като го гледам, би трябвало да работи без да създава ядове, разбира се има къде по-красив начин да се напише кода, но като за начинаещ и това е подходящо :)

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

Обратно към “Помощ в скриптирането”

Кой е на линия

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