Някой ще ми преработи ли този плъгин ?

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

Някой ще ми преработи ли този плъгин ?

Мнение от mount4 » 04 Ное 2016, 23:43

hi all,

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

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

#include <amxmodx>
#include <cstrike>
#include <fakemeta_util>
#include <fun>
#include <hamsandwich>

#define PLUGIN "My Bomb Rules"
#define VERSION "1.0"
#define AUTHOR "mount4"

#define SPEED 350.0
new Float:speed = 1000.0

#define Ham_Player_ResetMaxSpeed Ham_Item_PreFrame

new predatel_id

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_event("HLTV", "event_roundstart", "a", "1=0", "2=0") // round start event
	register_logevent("makeThemNormals", 2, "1=Round_Start") // freeze end event
	RegisterHam(Ham_Player_ResetMaxSpeed,"player","playerResetMaxSpeed",1)
	register_event("TextMsg", "bomb_planted", "a", "2&%!MRAD_BOMBPL") // bomb planted event
	register_logevent("makeThemGods", 2, "1=Round_End") // round end event
	RegisterHam(Ham_Spawn, "player", "give_c4", 1) // give them bombs
	register_event("BarTime", "event_startDefusion", "be", "1=5", "1=10")
	register_clcmd("say /awp","give_awp")	
	ColorMessage(0, "^1[^4godmode^1] ^3~ ^4on")
}

/*public client_putinserver(id)
{
	set_user_health(id, 125)
	set_user_armor(id, 125)
}*/

public event_roundstart(id)
{
	switch(cs_get_user_team(id))
	{
		case CS_TEAM_T: cs_set_user_team(id, CS_TEAM_CT)
		case CS_TEAM_CT: cs_set_user_team(id, CS_TEAM_T)
	}
	makeThemGods(id)
}

public makeThemGods(id)
{
	speed = 1000.0
	set_pev(id, pev_maxspeed, speed)
	ColorMessage(0, "^1[^4godmode^1] ^3~ ^4on")
	give_c4(id)
	set_pev(id,pev_health,999.0)
	set_pev(id,pev_armorvalue,255.0)
}

public makeThemNormals(id)
{
	speed = SPEED
	set_pev(id, pev_maxspeed, speed)
	ColorMessage(0, "^1[^4godmode^1] ^3~ ^4off")
	set_pev(id,pev_health,125.0)
	set_pev(id,pev_armorvalue,125.0)
}

public playerResetMaxSpeed(id)
{
	if(is_user_alive(id))
	{
		set_pev(id, pev_maxspeed, speed)
	}
}

public bomb_planted(id)
{
	give_c4(id)
	
	set_user_health(id, 250)
	set_user_armor(id, 250)
	
	if( cs_get_user_team(id) == CS_TEAM_CT )
	{
		new player_name[255];
		get_user_name(id, player_name, 255);
		
		speed = 54.6;
		set_pev(id, pev_maxspeed, speed)
		
		cs_set_user_money(id,0)
		
		ColorMessage(0, "^1[^4c4^1] ^3~ ^4Igrach ^3%s ^4beshe zamrazen zashtoto e CT a zaloji bombata !", player_name);
		
		predatel_id = id

	} else
	{
		cs_set_user_money(id, cs_get_user_money(id) + 1000);
	}
}

public event_startDefusion(id)
{
	if(id == predatel_id)
	{
		new player_name[255];
		get_user_name(id, player_name, 255);

		user_kill(id)
		ColorMessage(0, "^1[^4c4^1] ^3~ ^4Igrach ^3%s ^4beshe ubit zashtoto se opita da obezwredi bombata koqto zaloji.", player_name);
	}
}

public give_c4(id)
{
	if(user_has_weapon(id, CSW_C4))
			return;
	give_item(id, "weapon_c4");
	cs_set_user_plant(id, 1);
	set_pev(id, pev_body, 1)
}

public give_awp(id)
{
    give_item(id,"weapon_awp")
    give_item(id,"weapon_deagle")
	cs_set_user_bpammo(id, CSW_AWP, 30)
	cs_set_user_bpammo(id, CSW_DEAGLE, 35)
	new player_name[255];
	get_user_name(id, player_name, 255);
	ColorMessage(0, "^1[^4awp^1] ^3~ ^4Igrach ^3%s ^4si kupi FREE AWP !", player_name);
}

/* START - ColorChat */ 
stock ColorMessage(const id, const input[], any:...)
{ 
    new count = 1, players[32];
    static msg[ 191 ];
    vformat(msg, 190, input, 3); 
    if (id) players[0] = id; else get_players(players , count , "ch");
	{ 
        for (new i = 0; i < count; i++)
		{
            if (is_user_connected(players[i]))
			{ 
                message_begin(MSG_ONE_UNRELIABLE , get_user_msgid("SayText"), _, players[i]); 
                write_byte(players[i]); 
                write_string(msg); 
                message_end();
			}
		}
	} 
} 
/* END - ColorChat */
Отделно ми спами в конзолата следните неща (включил съм debug)

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

L 11/04/2016 - 23:43:49: [AMXX] Displaying debug trace (plugin "my_bomb_rules.amxx")
L 11/04/2016 - 23:43:49: [AMXX] Run time error 10: native error (native "cs_get_user_team")
L 11/04/2016 - 23:43:49: [AMXX]    [0] 2en2cpo3.sma.p::event_roundstart (line 47)
L 11/04/2016 - 23:43:46: [AMXX] Displaying debug trace (plugin "my_bomb_rules.amxx")
L 11/04/2016 - 23:43:46: [AMXX] Run time error 10: native error (native "user_has_weapon")
L 11/04/2016 - 23:43:46: [AMXX]    [0] 2en2cpo3.sma.p::give_c4 (line 123)
L 11/04/2016 - 23:43:46: [AMXX]    [1] 2en2cpo3.sma.p::makeThemGods (line 60)
Единия бъг който прави е че замразява всички играчи а не само двойката който е заложил бомбата.
- Другия е че трябва да променя отборите с cs_set_user_team а това въобще нестава. (само когато го сложа в player spawn евент функцията и тогава прави всички играчи терористи.)
- Не сетва health & armor освен когато заложиш бомба.
- като сложа да ти дава спийд за няколко секунди в player spawn event func-та става така че както си играеш изведнъж ти дава спийд отнищото
- сигурно има още други bugs които непомня ...

Имам още 1 написан плъгин който работи перф но спами в конзолата грешки като този. Ще ви го дам и него да го погледнете, по-елементарен е (отваря motd при join в отбор).

И още 1 който намерих в интернет и редактирах. При него става същото работи перф но спами грешки.
Последно промяна от mount4 на 05 Ное 2016, 01:07, променено общо 1 път.
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: Някой ще ми преработи ли този плъгин ?

Мнение от TheRedShoko » 05 Ное 2016, 00:15

Каква точно трябва да е идеята на плъгина, ако може да обясниш.

Също плъгинът съдържа slowhack, което е против правилата на форума, затова промени кода, като премахнеш slowhack-a.

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

Re: Някой ще ми преработи ли този плъгин ?

Мнение от mount4 » 05 Ное 2016, 00:41

----------------------------------------------------------

Какво и кое е slowhack-a ?

Идеята се вижда в кода :Д

Значи имам две идеи: едната е първата преди да добавя това set_user_team.
и тя е да дава бомби на всички играчи без значение дали са 1ци или двойки. (новата ми идея е да дава на всички 2ки, а 1ците да имат само 1 бомба защото така някоя двойка ще може да изхвърли неговата си бомба на скрито място и да скатае падналата от земята в себе си и така 1ците няма какво да заложат.)
двойките също могат да залагат като обаче ако заложат им променя спийд-а на много бавен и така могат само да се защитават докато бомбата не се взриви и ги убие или някой от тяхната ги спаси обезвреждайки бомбата или пък ако се опитат да я обезвредят ги slay.. и такива неща.

Другата ми идея е да пуска 1ците в базата на двойките а двойките в базата на 1ците и бомбата да се залага от 2ките а да се обезврежда от 1ците (незнам само как ще разменя на кой отбор да дава победата при гръм или обезвреждане)

Това ще става именно с cs_set_user_team която функция ти променя отбора и модела без да те пуска другата база и без да те убива.

То даже така ще се получи бонус ефект -> всеки рунд щи се сменя отборя и така 1 рунд 2-ка, 1 -> терорист

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

Исках и да пускам noclip на всички накрая на всеки рунд ама небачкаше. пробвах с тази функция "set_user_noclip"

--------------------------------------------

Разбрах какво е slowhacking и си промених кода.

Щом е забранено значи немога да сетвам cl_updaterate 508 на хората за по-добра връзка.. :confused:

От тук -> http://steamcommunity.com/sharedfiles/f ... =126383209
научих че cl_updaterate трябва да е равно на сървърното sv_maxupdaterate (вмоя случай sv_maxupdaterate 508) (изчислих го с drek rates calculator-a)

Когато пробвах със стандартно cl_updaterate и гледах графиката net_graph 1 тя не беше хубава.
Направих си плъгин който променя на хората cl_updaterate на 508 и графиката стана перфектна !

Освен това ми трябва и да сет-вам mp_consistency 0 защото използвам плъгин който променя моделите на играчите (player models)
и съм сложил този модел от gta vice city http://gamebanana.com/skins/144972 който иска играча да има сетнато "mp_consistency 0"

един въпрос -> защо след като си променя sys_ticrate на 508 и на net_graph 3 ми показва 100 chokes ??
пробвах и с ticrate 100 същата работа. Единствено стои на нула когато ticrate-a ми е 66 ;(

сървърните ми стойности са:

sv_minrate 0
sv_maxrate 0
sv_minupdaterate 10
sv_maxupdaterate 508

а клиентските:

rate 20000
cl_cmdrate 513
cl_updaterate 508
ex_interp 0
cl_rate 9999
cl_cmdbackup 4

Четох за различни причини за chokes и пробвах различни настройки и не се оправяха.

-------

сещам се за едно подобрение -> да махна fakemeta_util и да използвам give_item вместо fm_give_item.

Чудя се трябва ли да слагам някъде "return PLUGIN_HANDLED" и "return PLUGIN_CONTINUE" ?
Освен това кога трябва да се слага is_user_alive защото гледам че го слагат в Ham spawn събитието пък то нали след като те е spawn-ало със сигурност си жив или това събитие occurs 2 пъти - преди и след спаунването ?

И моля ви се по-бързо ми отговярайте че ми е много спешно. ;-( <- хареса ми емотиконката :Д
Последно промяна от Petrowch0 на 05 Ное 2016, 01:18, променено общо 1 път.
94.190.190.195:27015 -> Изображение <-- Runemod here !
94.190.190.195:27017 -> Изображение

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

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

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

Кой е на линия

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