Как да използвам ид в глобален евент ?

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Отговори
Потребителски аватар

Автор на темата
[N]eXuS amxx-bg
Потребител
Потребител
Мнения: 156
Регистриран: 16 мар 2018, 04:52

Как да използвам ид в глобален евент ?

Мнение от [N]eXuS amxx-bg » 15 апр 2018, 18:20

Как мога да използвам ид на нещо в глобален евент ?

Потребителски аватар

hackera457 Охрана
Модератор
Модератор
Мнения: 303
Регистриран: 01 ное 2016, 09:46
Местоположение: София
Години: 23
Контакти:

Как да използвам ид в глобален евент ?

Мнение от hackera457 Охрана » 15 апр 2018, 18:46

Какъв евент и на какво ID
Ако е свързано с играчи - обхождане на всички играчи в сървъра с get_players()
Моите плъгини

Код: Избери всички

#include <hambeer>

RegisterHamBeer(HamBeer_Spawn, "player", "GivePlayerBeer", 1);

public GivePlayerBeer(Pl){
    if(!is_user_alive(Pl)){
        ham_give_beer(Pl, 5)
        client_print(Pl, print_chat, "Go Go Go"){
}  


Потребителски аватар

Автор на темата
[N]eXuS amxx-bg
Потребител
Потребител
Мнения: 156
Регистриран: 16 мар 2018, 04:52

Как да използвам ид в глобален евент ?

Мнение от [N]eXuS amxx-bg » 15 апр 2018, 19:05

Регистрирал съм DeathMsg евента но в този евент трябва да дам нещо на играч и как ще стане give_item(id, "weapon_")
да сложа ид то на оражието, също има и проверка за лимит който е в евента него как ще го направя limit[id]++ ??

Потребителски аватар

hackera457 Охрана
Модератор
Модератор
Мнения: 303
Регистриран: 01 ное 2016, 09:46
Местоположение: София
Години: 23
Контакти:

Как да използвам ид в глобален евент ?

Мнение от hackera457 Охрана » 15 апр 2018, 19:23

Обхождаш всички играчи
Моите плъгини

Код: Избери всички

#include <hambeer>

RegisterHamBeer(HamBeer_Spawn, "player", "GivePlayerBeer", 1);

public GivePlayerBeer(Pl){
    if(!is_user_alive(Pl)){
        ham_give_beer(Pl, 5)
        client_print(Pl, print_chat, "Go Go Go"){
}  


Потребителски аватар

Huehue 2MF4TH;
AMXX Скриптър
AMXX Скриптър
Мнения: 17
Регистриран: 16 яну 2017, 23:42

Как да използвам ид в глобален евент ?

Мнение от Huehue 2MF4TH; » 15 апр 2018, 19:26

В случая ако наистина ти трябва за deathmsg използвай това.

Код: Избери всички

public plugin_init()
{
    register_plugin("Message Demo", "1.0", "BAILOPAN")
    //this message informs everyone of a death, so we use
    // flag "a" - global event
    register_event("DeathMsg", "hook_death", "a")
}
 
public hook_death()
{
    new Killer = read_data(1) //get the first message parameter
    new Victim = read_data(2) //get the second message parameter
    new headshot = read_data(3) //was this a headshot?
    new weapon[32]
    read_data(4, weapon, 31)  //get the weapon name
}
Последна промяна от Huehue 2MF4TH; на 15 апр 2018, 19:37, променено общо 1 път.

Потребителски аватар

hackera457 Охрана
Модератор
Модератор
Мнения: 303
Регистриран: 01 ное 2016, 09:46
Местоположение: София
Години: 23
Контакти:

Как да използвам ид в глобален евент ?

Мнение от hackera457 Охрана » 15 апр 2018, 19:35

Пример за начало на рунда, ако ти трябва за нулиране на променливата за лимит

Код: Избери всички

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

public event_new_round()
{
    new iPlayers[32], iNum, iPlayer
    
    get_players(iPlayers,iNum,"ch")
    
    for(new i=0; i < iNum; i++)
    {
	iPlayer = iPlayers[i]
	
	//КОДА НА ТАМ
    }
}
Моите плъгини

Код: Избери всички

#include <hambeer>

RegisterHamBeer(HamBeer_Spawn, "player", "GivePlayerBeer", 1);

public GivePlayerBeer(Pl){
    if(!is_user_alive(Pl)){
        ham_give_beer(Pl, 5)
        client_print(Pl, print_chat, "Go Go Go"){
}  


Потребителски аватар

Автор на темата
[N]eXuS amxx-bg
Потребител
Потребител
Мнения: 156
Регистриран: 16 мар 2018, 04:52

Как да използвам ид в глобален евент ?

Мнение от [N]eXuS amxx-bg » 15 апр 2018, 19:42

И какво да напиша в ид то на оражието пробвах с wepon не стана, и как ще стане това g_iUses[id] + как мога да направя две проверки на един ред например (Това е за друк плъгин !)
if(get_user_frags(id) && get_user_deaths(id) == 0)
{
// Така не стана :)
}

Код: Избери всички

if(gHs)
		{
			if(g_iUses[id] > g_iLimit)
			{
				give_item(id, "weapon_hegrenade")
			}
			
			if(get_user_health(gKiller) < get_pcvar_num(pMaxHp))
			{
				set_user_health(gKiller, get_user_health(gKiller) + get_pcvar_num(pHsHp))
				
				if(get_pcvar_num(pHudInfo) == 1)
				{
					new gVictimName[32]
					get_user_name(gVictim, gVictimName, charsmax(gVictimName))
					
					set_hudmessage(random(255), random(255), random(255), -1.0, 0.20, 0, 6.0, 12.0)
					show_hudmessage(gKiller, "Ti poluchi + %i HP, za obistvoto na %s s Headshot", get_pcvar_num(pHsHp), gVictimName)
					
				}
			}
			
			else
			
			{
				if(get_pcvar_num(pChatInfo) == 1)
				{
					CC_SendMessage(gKiller, "Ti si dostignal limita !")
				}
				
			}
		}

Потребителски аватар

hackera457 Охрана
Модератор
Модератор
Мнения: 303
Регистриран: 01 ное 2016, 09:46
Местоположение: София
Години: 23
Контакти:

Как да използвам ид в глобален евент ?

Мнение от hackera457 Охрана » 15 апр 2018, 19:57

Трябва да е нещо от този сорт

Код: Избери всички

new iKiller = read_data(1)
new iVictim = read_data(2)
new iHs = read_data(3)

if(iKiller == iVictim)
	return
	
if(iHs)
{
	if(g_iUses[iKiller] > g_iLimit)
	{
		give_item(iKiller,"weapon_hegrenade")
	}
	
	if(get_user_health(iKiller) < get_pcvar_num(pMaxHp))
	{
		set_user_health(iKiller, get_user_health(iKiller) + get_pcvar_num(pHsHp))
		
		if(get_pcvar_num(pHudInfo) == 1)
		{
			new gVictimName[32]
			get_user_name(iVictim, gVictimName, charsmax(gVictimName))
					
			set_hudmessage(random(255), random(255), random(255), -1.0, 0.20, 0, 6.0, 12.0)
			show_hudmessage(iKiller, "Ti poluchi + %i HP, za obistvoto na %s s Headshot", get_pcvar_num(pHsHp), gVictimName)
					
		}
		
	}
	else 
	{
		if(get_pcvar_num(pChatInfo) == 1)
		{
			CC_SendMessage(iKiller, "Ti si dostignal limita !")
		}
	}
}
Моите плъгини

Код: Избери всички

#include <hambeer>

RegisterHamBeer(HamBeer_Spawn, "player", "GivePlayerBeer", 1);

public GivePlayerBeer(Pl){
    if(!is_user_alive(Pl)){
        ham_give_beer(Pl, 5)
        client_print(Pl, print_chat, "Go Go Go"){
}  


Потребителски аватар

OciXCrom™ MKD
Администратор
Администратор
Мнения: 3217
Регистриран: 06 окт 2016, 19:20
Местоположение: /resetscore
Години: 20
Контакти:

Как да използвам ид в глобален евент ?

Мнение от OciXCrom™ MKD » 15 апр 2018, 20:26

DeathMsg не е точно "глобален" евент. В него всъщнсот има две id-та - attacker и victim, които може да се вземат с read_data както е направено в примерите по-горе. Тук можеш да провериш какви аргументи съдържат евентите.

Потребителски аватар

hackera457 Охрана
Модератор
Модератор
Мнения: 303
Регистриран: 01 ное 2016, 09:46
Местоположение: София
Години: 23
Контакти:

Как да използвам ид в глобален евент ?

Мнение от hackera457 Охрана » 15 апр 2018, 20:30

OciXCrom™ написа:
15 апр 2018, 20:26
DeathMsg не е точно "глобален" евент. В него всъщнсот има две id-та - attacker и victim, които може да се вземат с read_data както е направено в примерите по-горе. Тук можеш да провериш какви аргументи съдържат евентите.
Да не забравяме, че алтернативата на DeathMessage е Ham_Killed
Моите плъгини

Код: Избери всички

#include <hambeer>

RegisterHamBeer(HamBeer_Spawn, "player", "GivePlayerBeer", 1);

public GivePlayerBeer(Pl){
    if(!is_user_alive(Pl)){
        ham_give_beer(Pl, 5)
        client_print(Pl, print_chat, "Go Go Go"){
}  


Отговори

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

Кой е на линия

Потребители, разглеждащи този форум: Няма регистрирани потребители и 1 гост