Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

respawn

Kasper55
сообщение 15.3.2014, 19:52
Сообщение #1
Стаж: 16 лет

Сообщений: 1145
Благодарности: выкл.

Пару багов есть в плагине хз как исправить

1. Когда игрок заходит на сервер, он сможет начать играть только после начала нового раунда, рестарта
2. При переходе в спектры автоматически ресается и никого нельзя убить, а тебя может валить не только враг но и союзник :)


Код:
/* last update 1/15/14 */

#include <amxmodx>
#include <hamsandwich>
#include <cstrike>

#define RESPAWNDELAY 3 // delay before respawn

// ===========

new giDelay
new Float:gflDelay
new gMsgBarTime

new giMaxPlayers
new bool:giBlockRespawn // whether respawn process should be blocked for now

new giInDelay // whether respawn process was started
#define CheckInDelay(%1) ( giInDelay & ( 1 <<( %1-1 ) ) )
#define SetInDelay(%1) ( giInDelay |= ( 1 <<( %1-1 ) ) )
#define ClearInDelay(%1) ( giInDelay &= ~( 1 <<( %1-1 ) ) )

public plugin_init() {
register_plugin( "Respawn", "0.3", "fl0wer / Safety1st" )
gMsgBarTime = get_user_msgid( "BarTime" )
giDelay = RESPAWNDELAY
gflDelay = float( RESPAWNDELAY )
giMaxPlayers = get_maxplayers()

register_event( "HLTV", "NewRound", "a", "1=0", "2=0" )
register_event( "TextMsg", "CancelRespawn", "a", "2=#Game_will_restart_in", "2=#Game_Commencing" )
register_logevent( "CancelRespawn", 2, "1=Round_End" )

RegisterHam( Ham_Killed, "player", "FwdKilled" )
}

public FwdKilled(id) {
if( giBlockRespawn )
return

//client_print( id, print_center, "%L", id, "RESPAWN_MSG", giDelay )

message_begin( MSG_ONE_UNRELIABLE, gMsgBarTime, _, id )
write_short( giDelay )
message_end()

set_task( gflDelay, "Respawn", id )
SetInDelay(id)
}

public Respawn(id) {
switch( cs_get_user_team(id) ) {
case CS_TEAM_T, CS_TEAM_CT : {
ExecuteHamB( Ham_CS_RoundRespawn, id )
ClearInDelay(id)
}
}
}

public client_disconnect(id) {
if( CheckInDelay(id) ) {
remove_task(id)
ClearInDelay(id)
}
}

public CancelRespawn() {
giBlockRespawn = true

if( !giInDelay ) // no one is scheduled to be respawned
return

for( new i = 0; i < giMaxPlayers; i++ ) {
if( CheckInDelay(i) )
remove_task(i)
}

giInDelay = 0 // completely reset the value
}

public NewRound() {
giBlockRespawn = false
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя csnet
сообщение 15.3.2014, 20:24
Сообщение #2
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

Код:



public Respawn(id) {
switch( cs_get_user_team(id) ) {
case CS_TEAM_T, CS_TEAM_CT : {
ExecuteHamB( Ham_CS_RoundRespawn, id )
ClearInDelay(id)
}
case CS_TEAM_SPECTATOR: return HAM_IGNORED

}
return HAM_IGNORED
}



go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 15.3.2014, 20:53
Сообщение #3
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(Kasper55 @ 15.3.2014, 21:52) *
Пару багов есть в плагине хз как исправить

1. Когда игрок заходит на сервер, он сможет начать играть только после начала нового раунда, рестарта
2. При переходе в спектры автоматически ресается и никого нельзя убить, а тебя может валить не только враг но и союзник :)

1. Это не баг плагина, а дефолтное поведение CS.
2. Это не баг плагина, а на сервере стоит быдлоплагин, некорректно выполняющий 'перевод' игрока в спектат.

Много на себя берёте padonak.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Kasper55
сообщение 15.3.2014, 20:56
Сообщение #4
Стаж: 16 лет

Сообщений: 1145
Благодарности: выкл.

Цитата(Safety1st @ 15.3.2014, 20:53) *
1. Это не баг плагина, а дефолтное поведение CS.
2. Это не баг плагина, а на сервере стоит быдлоплагин, некорректно выполняющий 'перевод' игрока в спектат.

Много на себя берёте padonak.gif

ну можно как это поправить , просто в скриптинге не силен
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: