[CS 1.6 / CS:CZ] Zombie Plague Enterprise

pach2580
Posts: 48

Re: [CS 1.6 / CS:CZ] Zombie Plague Enterprise

Post#41 » Mon Feb 04, 2019 3:49 pm

Spoiler
Show

Code: Select all

public use_ability_one(id) {
	if (alive(id) && zombie_class(id, g_zc_heal) && zombie(id) && !nemesis(id)) {
		if(!g_cooldown[id]) {
			new Float:vecOrigin[3], Float:vecOrigin2[3], Float:fDistance
		
			
			pev(id, pev_origin, vecOrigin)
			static i; while((i = engfunc(EngFunc_FindEntityInSphere, i, vecOrigin, skill_raduis)))
			{
				if(!pev_valid(i) || !alive(i) || nemesis(i) || !zombie(i)) continue
				
				pev(i, pev_origin, vecOrigin2)
				fDistance = get_distance_f(vecOrigin, vecOrigin2)
				if(fDistance > skill_raduis) continue
				
				/*new newhealth = floatround(get_user_health(i) * skill_heal_health + get_user_health(i))
				SET_USER_HEALTH(i, newhealth < zmh(i)? newhealth : zmh(i))
				SET_USER_HEALTH(i, float(min(get_user_health(i) + get_user_health(i) * skill_heal_health), zmh(i)))
				set_pev(i, pev_health, float(min(pev(i, pev_health) + (pev(i, pev_health) * skill_heal_health), zmh(i))))*/
				
				SET_USER_HEALTH(i, GET_USER_HEALTH(i) + 300.0)
			}
			
			SpriteHealHealth(vecOrigin, g_cache_spr, 24)
			
			new sound[64]
			ArrayGetString(g_ZC_AHealSound, random_num(0, ArraySize(g_ZC_AHealSound) - 1), sound, charsmax(sound))
			emit_sound(id, CHAN_VOICE, sound, 1.0, ATTN_NORM, 0, PITCH_NORM)
			
			g_cooldown[id] = true
			g_time[id] = get_gametime()
			g_cooldown_time[id] = floatround(skill_timewait)
		}
	}
}
может подскажете, что здесь не так, почему то неправильно работает=\

Ecklory
Site Admin
Posts: 52

Re: [CS 1.6 / CS:CZ] Zombie Plague Enterprise

Post#42 » Mon Feb 04, 2019 7:41 pm

Что конкретно не работает?
Не совсем понимаю смысл переписывания на реапи. Никакого прироста в производительности изменение в ~одной строчке не даст. По крайней мере в данном случае.
В некоторых случаях использование реапи наоборот влияет отрицательно.

pach2580
Posts: 48

Re: [CS 1.6 / CS:CZ] Zombie Plague Enterprise

Post#43 » Tue Feb 05, 2019 2:21 am

Суть в том что при вызове этого кода, все зомби в определенном радиусе должны получать хп +300

И еще, у вас случайно нет такого спрайта, только под ним еще метры написаны
Spoiler
Show
Image
Upd: когда взрывается инфекционная граната, сервер падает

Ecklory
Site Admin
Posts: 52

Re: [CS 1.6 / CS:CZ] Zombie Plague Enterprise

Post#44 » Tue Feb 05, 2019 7:50 am

Увы, но спрайта нет.
В любом случае это было бы очень плохой идеей делать на павне.

C гранатой поправлю также по возможности.

pach2580
Posts: 48

Re: [CS 1.6 / CS:CZ] Zombie Plague Enterprise

Post#45 » Wed Feb 06, 2019 12:26 pm

а на чем еще делать если не на павне, другого языка я к сожалению не знаю, и примеров нет

Ecklory
Site Admin
Posts: 52

Re: [CS 1.6 / CS:CZ] Zombie Plague Enterprise

Post#46 » Wed Feb 06, 2019 2:42 pm

С++.
амхх модуль, мета плагин или в геймдлл.
Или вообще не делать. Уже многократно обсуждали все, кто только может.

pach2580
Posts: 48

Re: [CS 1.6 / CS:CZ] Zombie Plague Enterprise

Post#47 » Thu Feb 07, 2019 6:15 am

почему то не правильно определяется максимальное кол-во хп у зомби:

Code: Select all

#define zmh(%0)	zpe_class_zombie_get_max_health(%0, zpe_class_zombie_get_current(%0))
zpe_client_print_color(id, print_team_default, "Max Health: %d ", Float:zmh(id))

MonstrHW
Posts: 12

Re: [CS 1.6 / CS:CZ] Zombie Plague Enterprise

Post#48 » Fri Feb 08, 2019 6:36 am

Потому, что указан неправильный спецификатор типа - %d, целочисленный. Возвращаемое значение данной функции дробное. Следовательно спецификатор типа должен быть соответствующий - %f. https://ru.wikipedia.org/wiki/Printf#%D ... 0%BF%D0%B0

pach2580
Posts: 48

Re: [CS 1.6 / CS:CZ] Zombie Plague Enterprise

Post#49 » Fri Feb 08, 2019 5:49 pm

Спасибо, может тогда подскажешь в чем тут ошибка?

Code: Select all

#define BIT_ADD(%0,%1)					(%0 |= (1 << (%1)))
#define BIT_SUB(%0,%1)					(%0 &= ~(1 << (%1)))
#define BIT_VALID(%0,%1)				(%0 & (1 << (%1)))
Spoiler
Show
Image
Image

Ecklory
Site Admin
Posts: 52

Re: [CS 1.6 / CS:CZ] Zombie Plague Enterprise

Post#50 » Fri Feb 08, 2019 7:15 pm

Не совсем понимаю. Чего вы хотите достичь?

Зачем переименовали бит суммы? В ZP 508 есть различия в бит суммах.

Зачем нативы обернули в макросы? Нативы по стандарту вполне читабельны.
Если планируете оптимизировать нативы, то их нужно в бит суммы оборачивать. Бит суммы дают явный прирост только в циклах и им подобных.

Оптимизировать код должен тот, кто понимает, где это нужно делать.
Подобные оптимизации не дадут ничего. Они если и будут заметны, то на уровне хостинга, где много серверов с соответствующим кодом.

Текущая ситуация - пустая трата времени. Лучше потратить время на чтение книг, например.

Пример меню есть в: https://git.ckcorp.ru/ck/amxx-modes/zpe ... n_menu.sma

Who is online

Users browsing this forum: No registered users and 1 guest