Как да направим нещо да е активно Х секунди ? и други

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Аватар
[N]eXuS
Извън линия
Потребител
Потребител
Мнения: 163
Регистриран на: 16 Мар 2018, 04:52

Как да направим нещо да е активно Х секунди ? и други

Мнение от [N]eXuS » 16 Апр 2018, 23:06

Здравейте, как мога да направя нещо да е активно Х секунди в игра
Пример:

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

#include <amxmodx>
#include <hamsandwich>

new pTime

public plugin_init()
{
	RegisterHam(Ham_Spawn, "player", "Primer", true)
	
	pTime = register_cvar("amx_primer_time", "3") // 3 Секунди 
}

public Primer(id)
{
	Играча след като се е спавнал и са минали get_pcvar_num(pTime) да му даде HE например 
}
Има ли щанс да се направят две проверки в едно if тоест

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

if(get_user_deaths(id) get_user_frags(id) == 0)
{

}
Нямам предвит

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

if(get_pcvar_num(pcvar) && is_user_alive(id) && get_user_flags(id) & Flag)
{

}
А да има две проверки който да са равни на едно !

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

Благодаря за съдействието :)

П.с: Моля само хора от екипа да отговарят :)

А и каква е разликата на ?

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

new 
new const 
Последно промяна от [N]eXuS на 16 Апр 2018, 23:46, променено общо 1 път.

Аватар
illusion
Извън линия
Developer
Developer
Мнения: 1796
Регистриран на: 27 Ное 2016, 17:47
Местоположение: CraftVision
Се отблагодари: 151 пъти
Получена благодарност: 358 пъти
Обратна връзка:

Как да направим нещо да е активно Х секунди ? и други

Мнение от illusion » 16 Апр 2018, 23:11

Със set_task не може ли да се направи?

Аватар
[N]eXuS
Извън линия
Потребител
Потребител
Мнения: 163
Регистриран на: 16 Мар 2018, 04:52

Как да направим нещо да е активно Х секунди ? и други

Мнение от [N]eXuS » 16 Апр 2018, 23:22

:headbang: :headbang: :censored:

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

Как да направим нещо да е активно Х секунди ? и други

Мнение от TheRedShoko » 17 Апр 2018, 02:28

В pawn има една глупост (която я няма в другите езици) =>

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

if (var1 == var2 == var3 == 0)
{
	//
}
Но аз намирам за по-правилно

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

if (var1 == 0 && var2 == 0 && var3 == 0)
{
	
}
Ако дефинираш нещо като const (константа) не можеш да промениш стойността му по-късно.
Пример

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

new pesho = 0;
new const ivan = 1;

function() 
{
	pesho = 1; //Няма проблем
	ivan = 2; //Нямаш право
}

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

Как да направим нещо да е активно Х секунди ? и други

Мнение от SmirnoffBG » 17 Апр 2018, 12:55

Ето заповядай.
Да но съм помогнал.

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

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

new pTime
new Float:User_Spawn[33]

public plugin_init()
{
	RegisterHam(Ham_Spawn, "player", "Primer", true)
	
	pTime = register_cvar("amx_primer_time", "3") // 3 Секунди 
}

public Primer(id)
{
	//Играча след като се е спавнал и са минали get_pcvar_num(pTime) да му даде HE например 
	
	if(is_user_alive(id)) return // Правим проверка дали е жив, защото понякога могат да "disconectnat".
	
	User_Spawn[id] = get_gametime() // Взимаме времето в секунди в по времето на раждането
	
	if(get_user_deaths(id) == 0 && get_user_frags(id) == 0) //ако има нула умирания и фрагове пускаме задачата
	{
		set_task(1.0, "Check_Time", id,_,_,"b") // "task"-а ще пуска функцията "Check_Time" през ч секунда безкрайно или докато не го спрем ръчно
	}
}
public Check_Time(id)
{
	if(is_user_alive(id)) return
	
	if(get_gametime()+get_pcvar_float(pTime) >= User_Spawn[id]) //Тук взимаме сеgашното време плус цифрата от променливата 
								     //и ако е по голямо или равно на записаното време в арея възпроизвеждаме кода
	{
		remove_task(id) // тук ръчно спираме задачата, в противен случай ще продължи вечно
		give_item(id, "weapon_hegrenade") // и съответното даване на HE граната
	}
}
El-Super Respawn = 87.121.54.85:27016
BG Trewa Respawn = 91.92.137.205:27015

Аватар
[N]eXuS
Извън линия
Потребител
Потребител
Мнения: 163
Регистриран на: 16 Мар 2018, 04:52

Как да направим нещо да е активно Х секунди ? и други

Мнение от [N]eXuS » 17 Апр 2018, 13:44

Благодаря ви за коректните отговори, това може да се локва а аз ще направя друга тема по - друк въпрос :)

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

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

Кой е на линия

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