Съобщение при нов рунд, а не при всеки спаун

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Аватар
Buzdrev
Извън линия
Потребител
Потребител
Мнения: 247
Регистриран на: 12 Окт 2016, 16:45
Се отблагодари: 5 пъти
Получена благодарност: 1 път
Обратна връзка:

Съобщение при нов рунд, а не при всеки спаун

Мнение от Buzdrev » 09 Ное 2017, 02:47

Здравейте искам да направя тези съобщения от този код да се появяват при нов рунд, а не при всеки спаун.
Опитах се сам, но тогава се спамеше много пъти при нов рунд и разбрах, че няма да се справя сам. :D

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

public player_spawn(id)
{
	if( !is_user_alive( id ) ) return;

	if(MAXRANKS == PlayerRank[id]+1)
		CC_SendMessage(id, "&x01[&x04%s&x01] Your level is &x04#%d &x01with rank &x04%s&x01. You have got &x03%d &x01points.", szPrefix, PlayerRank[id]+1, rankNames[PlayerRank[id]], gPlayerPoints[id])
	else
		CC_SendMessage(id, "&x01[&x04%s&x01] Your level is &x04#%d &x01with rank &x04%s&x01. You have got &x03%d &x04/ &x03%d &x01points to become &x04%s&x01.", szPrefix, PlayerRank[id]+1, rankNames[PlayerRank[id]], gPlayerPoints[id], rankXP[PlayerRank[id]+1], rankNames[PlayerRank[id]+1])
}

Аватар
DaRk_StyLe
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 264
Регистриран на: 26 Окт 2016, 12:40
Се отблагодари: 11 пъти
Получена благодарност: 33 пъти

Съобщение при нов рунд, а не при всеки спаун

Мнение от DaRk_StyLe » 09 Ное 2017, 07:38

Регистрираш събитието, като се ориентираш от тук, след което използваш get_players() и for() цикъл, за да обходиш играчите в сървъра.

Аватар
Buzdrev
Извън линия
Потребител
Потребител
Мнения: 247
Регистриран на: 12 Окт 2016, 16:45
Се отблагодари: 5 пъти
Получена благодарност: 1 път
Обратна връзка:

Съобщение при нов рунд, а не при всеки спаун

Мнение от Buzdrev » 09 Ное 2017, 13:03

Реших проблема без да използвам get_players() и for(), направих го просто така:

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

register_event("HLTV", "event_new_round", "a", "1=0", "2=0") 

public event_new_round(id)
{
	if(MAXRANKS == PlayerRank[id]+1)
		CC_SendMessage(id, "&x01[&x04%s&x01] Your level is &x04#%d &x01with rank &x04%s&x01. You have got &x03%d &x01points.", szPrefix, PlayerRank[id]+1, rankNames[PlayerRank[id]], gPlayerPoints[id])
	else
		CC_SendMessage(id, "&x01[&x04%s&x01] Your level is &x04#%d &x01with rank &x04%s&x01. You have got &x03%d &x04/ &x03%d &x01points to become &x04%s&x01.", szPrefix, PlayerRank[id]+1, rankNames[PlayerRank[id]], gPlayerPoints[id], rankXP[PlayerRank[id]+1], rankNames[PlayerRank[id]+1])
}
Изглежда всичко работи както трябва и можете да заключвате, а като се напълни сървъра ще си проличи колко е нормално. :D

Аватар
DaRk_StyLe
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 264
Регистриран на: 26 Окт 2016, 12:40
Се отблагодари: 11 пъти
Получена благодарност: 33 пъти

Съобщение при нов рунд, а не при всеки спаун

Мнение от DaRk_StyLe » 09 Ное 2017, 13:15

Ако можеше да се направи по този начин, нямаше да ти казвам за get_players() и for(). Ако държиш темата да бъде заключена, няма проблем, но този код е грешен. Събитието не приема индекс по този начин.

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Съобщение при нов рунд, а не при всеки спаун

Мнение от OciXCrom » 09 Ное 2017, 14:42

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

register_logevent("OnRoundStart", 2, "0=World triggered", "1=Round_Start")

public OnRoundStart()
{
    // ...
}
Няма "id" в глобален евент като начало на рунда. В случая id е 0 и съобщението го изпращаш до всички играчи, понеже 0 в CC_SendMessage прави точно това. Трябва да ползваш get_players() и for-цикъл, както каза колегата.

Аватар
Buzdrev
Извън линия
Потребител
Потребител
Мнения: 247
Регистриран на: 12 Окт 2016, 16:45
Се отблагодари: 5 пъти
Получена благодарност: 1 път
Обратна връзка:

Съобщение при нов рунд, а не при всеки спаун

Мнение от Buzdrev » 09 Ное 2017, 17:50

Ами можете ли да ми го напишете как трябва да стане, защото нещо не се справям и не знам как да използвам get_players() и for-цикъл..

Аватар
Nikolow
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 196
Регистриран на: 27 Ное 2016, 13:02
Местоположение: Варна
Се отблагодари: 7 пъти
Получена благодарност: 79 пъти
Обратна връзка:

Съобщение при нов рунд, а не при всеки спаун

Мнение от Nikolow » 09 Ное 2017, 18:34

Според мен идеята на раздела е не е да го направим ние, а да се опиташ ти да го направиш. По-добре направи опит и предостави кода, който си използвал при неуспешният ти опит. Без четене няма как да стане. Колегата @DaRk_StyLe е дал за get_players(). Не вярвам да не знаеш за цикъл for, но ако и това те затруднява можеш да погледнеш това. (Ключови думи: "loop for")
Tired and retired...

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Съобщение при нов рунд, а не при всеки спаун

Мнение от OciXCrom » 10 Ное 2017, 19:40

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

register_logevent("OnRoundStart", 2, "0=World triggered", "1=Round_Start")

public OnRoundStart()
{
	new iPlayers[32], iPnum
	get_players(iPlayers, iPnum, "a")
	
	for(new i, id; i < iPnum; i++)
	{
		id = iPlayers[i]

		if(MAXRANKS == PlayerRank[id]+1)
			CC_SendMessage(id, "&x01[&x04%s&x01] Your level is &x04#%d &x01with rank &x04%s&x01. You have got &x03%d &x01points.", szPrefix, PlayerRank[id]+1, rankNames[PlayerRank[id]], gPlayerPoints[id])
		else
			CC_SendMessage(id, "&x01[&x04%s&x01] Your level is &x04#%d &x01with rank &x04%s&x01. You have got &x03%d &x04/ &x03%d &x01points to become &x04%s&x01.", szPrefix, PlayerRank[id]+1, rankNames[PlayerRank[id]], gPlayerPoints[id], rankXP[PlayerRank[id]+1], rankNames[PlayerRank[id]+1])
	}
}

Аватар
Buzdrev
Извън линия
Потребител
Потребител
Мнения: 247
Регистриран на: 12 Окт 2016, 16:45
Се отблагодари: 5 пъти
Получена благодарност: 1 път
Обратна връзка:

Съобщение при нов рунд, а не при всеки спаун

Мнение от Buzdrev » 01 Дек 2017, 14:03

:lock:

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

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

Кой е на линия

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