Fast Knife

Одобрените от нас плъгини. Моля, докладвайте ако забележите бъг с някой от плъгините в този раздел.
Аватар
Stilex
Извън линия
Потребител
Потребител
Мнения: 138
Регистриран на: 27 Авг 2021, 23:58
Се отблагодари: 13 пъти
Получена благодарност: 7 пъти
Обратна връзка:

Re: Fast Knife

Мнение от Stilex » 04 Фев 2023, 19:11

Може ли да се направи, само потребители с определен флаг да могат да го ползват?

Аватар
zolfeca
Извън линия
Администратор
Администратор
Мнения: 417
Регистриран на: 10 Окт 2016, 23:48
Се отблагодари: 24 пъти
Получена благодарност: 92 пъти

Re: Fast Knife

Мнение от zolfeca » 04 Фев 2023, 19:18

Разгледай първата страница.

Аватар
Siska
Извън линия
Потребител
Потребител
Мнения: 771
Регистриран на: 03 Дек 2019, 22:29
Местоположение: Bedrock
Се отблагодари: 157 пъти
Получена благодарност: 48 пъти
Обратна връзка:

Re: Fast Knife - Помощ за код и добавки евентуално

Мнение от Siska » 18 Авг 2023, 13:56

Здравейте, хора !
От известно време насам се опитвам да използвам бързо бягане, но плъгините из нета нямат необходимото или не работят, или имат бъгове и грешки, или не мога да си добавя нищо, защото са сложни.
Тук в този плъгин си добавих едно две неща, но другото вече не мога и ми трябва помощ.
Искам, ако е възможно да огранича по някакъв начин бягането. Започнах, но не е достатъчно и оттук нататък трябва да добавя още някаква опция.
Пример : Може да се направи да имам само три бягания и после след прераждане, чак тогава да имам още три. Тоест трябва да брои бяганията.
Пробвах да го направя и стана, но всеки път имам само три бягания не на живот, а на карта. И не можах да го направя като ме прероди пак да имам още три.
Друг пример : Може да се направи след всяко бягане да има пауза примерно 30 секунди, за да не може да се ползва баш постоянно. Тук въпроса е, че ако има 30 секунди пауза, ще трябва да се сложи съобщение в края на всяко бягане, където да пише нещо от сорта - "Вие изчерпахте едно бягане, може пак след 30 сек." Или нещо такова, нали ? Това е просто пример. Или на третото бягане може да пише, че нямаме повече и са изчерпани. Пробвах да добавя съобщения, но става спам така, както е в момента и трябва да се добавят след като се ограничат бяганията. Пробвах да добавя и звук в края на бягането, но и това не се получи правилно. Но със звук е най-добре, за да не се слагат съобщения повече.
Още един пример : Може да се направи да се бяга със задържане на бутон. Пробвах със +use, но неуспешно.

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

#include <amxmodx>
#include <fun>

#define PLUGIN_VERSION "1.0.1"
new g_pSpeed
new g_pSprintDuration

public plugin_init()
{
    register_plugin("Fast Knife", PLUGIN_VERSION, "OciXCrom")
    register_cvar("CRXFastKnife", PLUGIN_VERSION, FCVAR_SERVER | FCVAR_SPONLY | FCVAR_UNLOGGED)
    register_event("CurWeapon", "OnSelectKnife", "be", "1=1", "2=29")
    
    g_pSpeed = register_cvar("fastknife_speed", "150.0");
    g_pSprintDuration = register_cvar("sprint_duration", "2.5");
    
    set_task(20.0, "ShowSprintMessage", 0); // Показваме съобщение след X секунди.
}

public OnSelectKnife(id)
{
    if (is_user_alive(id))
    {
        set_user_maxspeed(id, get_user_maxspeed(id) + get_pcvar_float(g_pSpeed));
        set_task(get_pcvar_float(g_pSprintDuration), "EndFastKnife", id); // Активираме таймер за деактивиране след X секунди.
    }
}

public EndFastKnife(id)
{
    if (is_user_alive(id))
    {
        set_user_maxspeed(id, 250.0); // Връщаме нормалната скорост.
    }
}

public ShowSprintMessage(id)
{
    client_print(id, print_chat, "You can sprint with a knife in hand for 2.5 seconds!");
}
Търсих врага и го открих : това съм аз , трябва да се победя...
Изображение
WWW.CSMEGAGAMING.COM Изображение Изображение Skype : Sisi-1_1

Аватар
SmirnoffBG
Извън линия
Потребител
Потребител
Мнения: 267
Регистриран на: 27 Ное 2016, 19:43
Местоположение: nz
Се отблагодари: 77 пъти
Получена благодарност: 38 пъти
Обратна връзка:

Re: Fast Knife

Мнение от SmirnoffBG » 18 Авг 2023, 17:20

bih ti otgoworil tuk ama ne gi kefi che pisha na maimunica
pishi mi v discord i ako iskash posle si updateni temata no kato cqlo ti lipsvat basic znaniq koito az bih ti pomognal da pridubiesh ako ne ta marzi
i kato cqlo moje da si otworish nova tema shtoto towa koeto iskash e custom dobavka a ne neshto svurzano s fix za originalniq plugin
El-Super Respawn = 87.121.54.85:27016
BG Trewa Respawn = 91.92.137.205:27015

Аватар
Radeon
Извън линия
Потребител
Потребител
Мнения: 143
Регистриран на: 04 Апр 2021, 11:30
Се отблагодари: 2 пъти
Получена благодарност: 34 пъти
Обратна връзка:

Re: Fast Knife

Мнение от Radeon » 18 Авг 2023, 17:35

Тествай да видим, ако работи ще му сложим и звук.

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

#include <amxmodx>
#include <fun>
#include <cromchat>

#define PLUGIN_VERSION "1.0.1"

const MAX_RUNS_PER_LIFE = 3
new g_pSpeed
new g_pSprintDuration
new bool:g_bIs_Sprint_Used[33]
new g_iRuns_Made[33]

public plugin_init()
{
    register_plugin("Fast Knife", PLUGIN_VERSION, "OciXCrom")
    register_cvar("CRXFastKnife", PLUGIN_VERSION, FCVAR_SERVER | FCVAR_SPONLY | FCVAR_UNLOGGED)
    register_event("CurWeapon", "OnSelectKnife", "be", "1=1", "2=29")
    register_logevent("OnRoundStart", 2, "0=World triggered", "1=Round_Start")
    
    g_pSpeed = register_cvar("fastknife_speed", "150.0");
    g_pSprintDuration = register_cvar("sprint_duration", "2.5");
    
    set_task(20.0, "ShowSprintMessage", 0); // Показваме съобщение след X секунди.
}

public OnRoundStart(id)
{
	g_iRuns_Made[id] = 0 // в началото на всеки рунд отново зануляваме използванията за ръновете
	
}

public client_death(iKiller,iVictim,iWeaponID,iPlace,iTK)
{
	if(iKiller && iVictim)
	{
		g_iRuns_Made[iVictim] = 0 // След като играча умре му задаваме броя на рънове на нула
	}
	
}

public OnSelectKnife(id)
{
	if (!g_bIs_Sprint_Used[id])
	{
		
		if (is_user_alive(id) & g_iRuns_Made[id] <= MAX_RUNS_PER_LIFE) // проверяваме дали играча е жив и дали на е използвал повече от три ръна
		{
			g_bIs_Sprint_Used[id] = true // добавяме че спринта е използван
			g_iRuns_Made[id]++ // добаваме +1 към броя на използвани рънове за конкретен играч
			set_task(30.0, "RemoveCooldown"); // след 30 секунди правим спринта на false за да може пак да се използва
			set_user_maxspeed(id, get_user_maxspeed(id) + get_pcvar_float(g_pSpeed));
			set_task(get_pcvar_float(g_pSprintDuration), "EndFastKnife", id); // Активираме таймер за деактивиране след X секунди.
			CC_SendMessage(id, "&x01Vie iz4erpahte 1 bqgane , moje pak sled &x04 30 &x01 sekundi")
		}
		else
		{
		CC_SendMessage(id, "&x01Vie iz4erpahte 3 bqganiq , moje otnovo sled kato se prerodite")	
		}
	}
	else
	{
		CC_SendMessage(id, "&x01 moje pak da bqgate sled &x04 30 &x01 sekundi")
		return PLUGIN_HANDLED
	}
	return PLUGIN_CONTINUE
}

public EndFastKnife(id)
{
    if (is_user_alive(id))
    {
        set_user_maxspeed(id, 250.0); // Връщаме нормалната скорост.
    }
}

public RemoveCooldown(id)
{
	g_bIs_Sprint_Used[id] = false
}

public ShowSprintMessage(id)
{
    client_print(id, print_chat, "You can sprint with a knife in hand for 2.5 seconds!");
}

Аватар
Siska
Извън линия
Потребител
Потребител
Мнения: 771
Регистриран на: 03 Дек 2019, 22:29
Местоположение: Bedrock
Се отблагодари: 157 пъти
Получена благодарност: 48 пъти
Обратна връзка:

Re: Fast Knife

Мнение от Siska » 18 Сеп 2023, 15:38

Ето това е плъгина :

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

#include <amxmodx>
#include <fun>
#include <engine>
#include <hamsandwich>
#include <cromchat>

#define PLUGIN_VERSION "1.0.1"
#define SPRINT_END_SOUND "misc/breathe2.wav"
#define SPRINT_MESSAGE_INTERVAL 300.0
#define FAST_KNIFE_DELAY 20.0

#define SPRINT_MESSAGE_FORMAT "&x03%s&x01, you can &x04sprint &x01with a knife in hand &x04%d &x01times for &x04%0.1f &x01seconds. Next &x04sprint &x01every &x04%.1f &x01seconds."

new g_pSpeed[3];
new g_Limit[33];
new g_sprint[33];
new g_LastSprint[33];
new Float:g_LastJoinTime[33];
new Float:g_LastMessageTime[33];
new g_MaxSprints;
new g_ReachedMaxSprint[33];

public plugin_init()
{
    register_plugin("Fast Knife", PLUGIN_VERSION, "OciXCrom, tes-onez crew");
    register_cvar("CRXFastKnife", PLUGIN_VERSION, FCVAR_SERVER | FCVAR_SPONLY | FCVAR_UNLOGGED);
    register_event("CurWeapon", "OnSelectKnife", "be", "1=1", "2=29");
    RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);

    g_pSpeed[0] = register_cvar("fastknife_speed", "150.0");
    g_pSpeed[1] = register_cvar("sprint_duration", "2.0");
    g_pSpeed[2] = register_cvar("sprint_coundown", "10.0");
    g_MaxSprints = register_cvar("max_sprints", "3");
}

public plugin_precache()
{
    // Precache the sprint end sound
    precache_sound(SPRINT_END_SOUND);
}

public fwHamPlayerSpawnPost(id)
{
    g_Limit[id] = 0;
    g_LastSprint[id] = false;
    g_sprint[id] = true;
    g_LastJoinTime[id] = get_gametime();
    g_ReachedMaxSprint[id] = false;

    set_task(FAST_KNIFE_DELAY, "ShowSprintMessage", id);
}

public OnSelectKnife(id)
{
    if (is_user_alive(id) && get_user_button(id) && IN_FORWARD && get_user_oldbutton(id) && IN_FORWARD)
    {
        if(g_sprint[id])
        {
            if(g_Limit[id] >= get_pcvar_num(g_MaxSprints))
            {
                if (!g_ReachedMaxSprint[id])
                {
                    new szName[33];
                    get_user_name(id, szName, sizeof(szName));
                    CC_SendMatched(id, CC_COLOR_TEAM, "&x03%s&x01, you've reached the maximum &x04sprint &x01limit. Again on next spawn !!!", szName);
                    g_ReachedMaxSprint[id] = true;
                }
                return PLUGIN_HANDLED;
            }
            g_sprint[id] = false;
            set_user_maxspeed(id, get_user_maxspeed(id) + get_pcvar_float(g_pSpeed[0]));
            set_task(get_pcvar_float(g_pSpeed[1]), "EndFastKnife", id);
            g_Limit[id]++;
        }
    }
    return PLUGIN_HANDLED;
}

public RefreshFastKnife(id)
{
    if(is_user_connected(id) && !g_sprint[id])
    {
        g_sprint[id] = true;
    }
}

public EndFastKnife(id)
{
    if (is_user_alive(id))
    {
        set_user_maxspeed(id, 250.0);
        // Play the sprint end sound
        client_cmd(id, "spk %s", SPRINT_END_SOUND);
        set_task(get_pcvar_float(g_pSpeed[2]), "RefreshFastKnife", id);
    }
}

public ShowSprintMessage(id) {
    if (!g_LastMessageTime[id] || get_gametime() - g_LastMessageTime[id] >= SPRINT_MESSAGE_INTERVAL) {
        CC_SendMatched(id, CC_COLOR_TEAM, SPRINT_MESSAGE_FORMAT, get_pcvar_num(g_MaxSprints), get_pcvar_float(g_pSpeed[1]), get_pcvar_float(g_pSpeed[2]));
        g_LastMessageTime[id] = get_gametime();
    }
}

Ако ви харесва, ползвайте го...
Последно промяна от Siska на 28 Сеп 2023, 13:23, променено общо 11 пъти.
Търсих врага и го открих : това съм аз , трябва да се победя...
Изображение
WWW.CSMEGAGAMING.COM Изображение Изображение Skype : Sisi-1_1

Аватар
Hurricane
На линия
Потребител
Потребител
Мнения: 191
Регистриран на: 04 Юни 2022, 21:18
Се отблагодари: 17 пъти
Получена благодарност: 71 пъти

Re: Fast Knife

Мнение от Hurricane » 22 Сеп 2023, 14:53

Написах плъгина, както го искаше. Ще добавя още неща и ще го публикувам
има и таймер които отброява оставащото време в което ще бягаш по бързо
Screenshot_7.png
Screenshot_7.png (1.37 MiB) Преглеждано 743 пъти
Screenshot_7.png
Screenshot_7.png (1.37 MiB) Преглеждано 743 пъти
Screenshot_8.png
Screenshot_8.png (1.41 MiB) Преглеждано 743 пъти
Screenshot_8.png
Screenshot_8.png (1.41 MiB) Преглеждано 743 пъти
edit:
Защо си изтри мнението ? :Д

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

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

#include <amxmodx>
#include <hamsandwich>
#include <fun>
#include <cromchat>

new  Hp = 50
new  Limit = 3
new  Timer = 10
new Tracker[10]

#define HudTimerID 345674

public plugin_init()
{
	register_plugin("[ TUT ]", "1.0", "ReVoLuTi0n")
	
	RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", true); // Shte ni trybva za da restartirame promenlivite 
	register_clcmd("say /demo", "clcmdDemo"); // Prosta comanda s koqto shte testvame
}

public clcmdDemo(id)
{
	if(is_user_alive(id))
	{
		if(Tracker[id] < Limit) // Tracker e masiv koito ima v sebesi 10 slota taka shte broim kolko pati e izpolzvana funciqta
		{
			Tracker[id]++ // sled kato edin put e aktivirana shte dobavim ++ 1 kam masiva i ne nqma da stane 11 a shte stane 1
			
			set_user_health(id, get_user_health(id) + Hp); // Davame hp na igracha 
			
			set_task(8.0, "taskReviveHp", id, _, _, "a", 1); // zadacha koyto shte se izpalni v sluchata shte vurne hp to na igracha 
			set_task(1.0, "taskTimer", id + HudTimerID, _, _, "b") // zadacha koyto shte igrae rolq na timer 
			
			if(Tracker[id] == Limit) // ako chisloto v masiva ni e ravno na limita shte vidim tova suobshtenie
			{
				CC_SendMessage(id, "&x04[CS-SITE.COM] &x05 Ti izpolzva poslednia si slot!")
			}
			
			else // ako masiva ne e raven na limita shte vidim tova siobshtenie 
			
			{
				CC_SendMessage(id, "&x04[CS-SITE.COM] &x05 -  Izpolzva opciqta  [%i] pat ot obshto [%i]", Tracker[id], Limit)
			}
		}
		
		return PLUGIN_HANDLED;
	}
	
	return PLUGIN_HANDLED
}

public taskReviveHp(id)
{
	if(is_user_alive(id)) // ako igracha e alive shte poluchi extra hp 
	{
		set_user_health(id, get_user_health(id) - Hp) // Vrishtame starata krav na igracha 
	}
	
	return PLUGIN_HANDLED
}


public taskTimer(id)
{
	id -= HudTimerID  // namirame id 
	
	if(is_user_alive(id))
	{
		Timer-- // smikvame -1 ot promenlivata poneshe tova e task koito shte se izpalnqva do kato neshto ne go spre vseki pat Timer e - 1
		
		set_hudmessage(255, 0, 0, -1.0, -1.0, 0, 6.0, 0.0)
		show_hudmessage(id, "%i", Timer) // Hud timer 
		
		if(Timer == 0) // ako taimera e 0 
		{
			if(task_exists(id + HudTimerID))
			{
				remove_task(id + HudTimerID) // premahvame taimera i celiq task 
			}
			
		}
		
	}
	
	else // ako igracha e umrql pak spirame taimera 
	
	{
		if(task_exists(id + HudTimerID))
		{
			remove_task(id + HudTimerID)
		}
	}
}

public OnPlayerSpawn(id) // kogato igracha se e respawnal 
{
	if(is_user_alive(id))
	{
		Tracker[id] = 0 ; Timer = 10  // zanulqvame masiva Tracker koito broeshe kolko pati sme izpolzvali funciqta 
		// Timer mu zadavame otnovo stoynost 10 za da moshe da otbroqva ot 10 na nula iache shte e -1 -2 -3 taka natatak 
	}
}




Аватар
Hurricane
На линия
Потребител
Потребител
Мнения: 191
Регистриран на: 04 Юни 2022, 21:18
Се отблагодари: 17 пъти
Получена благодарност: 71 пъти

Re: Fast Knife

Мнение от Hurricane » 23 Сеп 2023, 05:26

Пробвай този ако ти хареса ще го редактирам по твоите нужди. Или най добре пусни заявка за плъгин и опиши точно какво да прави.

За да активириш бързо бягане трябва да имаш нош в ръката правиш атака с левия бутон на мишката и switch weapons
KNIFE + KNIFE_ATTACK+SWITCH

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

#include <amxmodx>
#include <colorchat>
#include <hamsandwich>
#include <engine>
#include <fun>


new const PLUGIN[] = "Fast runing wit knife"
new const VERSION[] = "1.0"
new const AUTHOR[] = "ReVoLuTi0n"

new Float:gRun_Duratin = 10.0
new Float:gRunSpeed = 150.0

new gRun_Limit = 3
new gRun_Tracker[5]
new RunTimerDuration = 10 



#define HUD_DURATION 43454
#define HUD_LIMIT 34344 


#define RUN_BUTTON IN_ATTACK

#define HUD_LIMIT_TEXT "| You can run fast %i more times |" 
#define REACHED_LIMIT "[CS-NAME.COM] - You have reached your limit!"
#define HUD_LIMIT_TIMER "%i"

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
	RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", true);
	register_event("CurWeapon", "ev_CurWeapon", "be","1=1", "2=29");
} 

public OnPlayerSpawn(id)
{
	if(is_user_alive(id))
	{
		if(gRun_Tracker[id] < gRun_Limit)
		{
			set_task(0.1, "task_RunLimit", id + HUD_LIMIT, _, _, "b");
			gRun_Tracker[id] = 0
		}
	}
	return PLUGIN_HANDLED
}

public task_RunLimit(id)
{
	id -= HUD_LIMIT

	if(is_user_alive(id))
	{
		set_hudmessage(255, 0, 0, -1.0, 0.01, 0, 6.0, 0.1)
		show_hudmessage(id, HUD_LIMIT_TEXT, gRun_Limit)
	}

	return PLUGIN_HANDLED
}

public ev_CurWeapon(id)
{
	if(is_user_alive(id) && gRun_Tracker[id] < gRun_Limit )
	{
		if(get_user_button(id) & IN_ATTACK )
		{
			set_user_maxspeed(id, get_user_maxspeed(id) + gRunSpeed);
			set_user_health(id, 200)
			
			set_task(10.0 ,"taskRevive_Speed", id, _, _, "b");
			set_task(1.0 , "taskDuration_Timer",id + HUD_DURATION, _, _, "b")
			
			gRun_Limit-- 
		}
		
		return PLUGIN_HANDLED
	}

	else
	{	
		ColorChat(id, GREEN, REACHED_LIMIT)

		if(task_exists(id + HUD_LIMIT))
		{
			remove_task(id + HUD_LIMIT)
		}
		
		return PLUGIN_HANDLED
	}
}

public taskDuration_Timer(id)
{
	id -= HUD_DURATION

	if(is_user_alive(id))
	{
		RunTimerDuration--
		set_hudmessage(255, 0, 0, -1.0, -1.0, 0, 6.0, 0.1)
		show_hudmessage(id, HUD_LIMIT_TIMER, RunTimerDuration)
	}

	else

	{
		if(task_exists(id + HUD_DURATION))
		{
			remove_task(id + HUD_DURATION)
		}
	}

	if(RunTimerDuration == 0)
	{	
		RunTimerDuration = 10
		
		if(task_exists(id + HUD_DURATION))
		{
			remove_task(id + HUD_DURATION)
		}

	}
}

public taskRevive_Speed(id)
{
	set_user_maxspeed(id, get_user_maxspeed(id) - gRunSpeed);
	
	if(task_exists(id))
	{
		remove_task(id)
		set_user_health(id, 100)
	}
}

Аватар
Siska
Извън линия
Потребител
Потребител
Мнения: 771
Регистриран на: 03 Дек 2019, 22:29
Местоположение: Bedrock
Се отблагодари: 157 пъти
Получена благодарност: 48 пъти
Обратна връзка:

Re: Fast Knife

Мнение от Siska » 23 Сеп 2023, 05:39

Редактирах горе последния вариант, който работи. Единственото нещо, което може да се направи е да се бяга , когато извадя ножа и после два пъти "W".
Имам един въпрос : smirnoff каза, че playername се използва, когато искаме да сменим името на играч, но ние само ще пращаме съобщение. Та трябва ли да се променя нещо в този смисъл или така е добре ???
Търсих врага и го открих : това съм аз , трябва да се победя...
Изображение
WWW.CSMEGAGAMING.COM Изображение Изображение Skype : Sisi-1_1

Аватар
Hurricane
На линия
Потребител
Потребител
Мнения: 191
Регистриран на: 04 Юни 2022, 21:18
Се отблагодари: 17 пъти
Получена благодарност: 71 пъти

Re: Fast Knife

Мнение от Hurricane » 23 Сеп 2023, 15:56

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

new szName[33]
get_user_name(id, charsmax(szName))
При новата версия AMXX 1.8.3 и по нови

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

CC_SendMessage(id, "U name is %n", id )
Не разбрах какав е смисъла да се хооква името на играча който е достигал времето при положение че той ще вижда съобщението.

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

Обратно към “Одобрени плъгини”

Кой е на линия

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