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

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

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

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

Отлов нового раунда

OverGame
сообщение 16.6.2014, 13:13
Сообщение #1
Стаж: 11 лет

Сообщений: 384
Благодарностей: 217
Полезность: 348

Мне нужно, что бы каждый раунд обнулял счетчик.
Я использую:

Код:
register_event("ResetHUD","RoundStart","abe")

public RoundStart(id){
g_vip_spawn[id] = 1
g_100_spawn[id] = 5
}


Но одно но, оно выполняется каждый раз когда происходит спавн.
Чего подскажите?

Отредактировал: Bloo, - 16.6.2014, 13:33
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
serfreeman1337
сообщение 16.6.2014, 13:16
Сообщение #2
Стаж: 13 лет

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

New Round / Player Spawn / Round Start / Round End - do Not mess it
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
OverGame
сообщение 16.6.2014, 13:22
Сообщение #3
Стаж: 11 лет

Сообщений: 384
Благодарностей: 217
Полезность: 348

Цитата(serfreeman1337 @ 16.6.2014, 13:16) *

чет не получается:

Скрытый текст
Код:
#include <amxmodx>
#include <fun>
#include <cstrike>
#include <amxmisc>
#include <colorchat>
#include <hamsandwich>

#define VIP_OPEN ADMIN_LEVEL_H
#define ADMIN_100_OPEN ADMIN_LEVEL_G
#define ADMIN_200_OPEN ADMIN_LEVEL_F

#pragma tabsize 0

new g_vip_spawn[33]
new g_100_spawn[33]

public plugin_init(){
register_plugin("Deathrun Admin", "1.2", "OverGame")
register_clcmd("adminmenu", "admin_menu")
register_event("HLTV", "RoundStart", "a", "1=0", "2=0")
}

public player_respawn(id){
if(get_user_flags(id) & VIP_OPEN){
if(g_vip_spawn[id] == 1){
g_vip_spawn[id] = 0
ExecuteHam( Ham_CS_RoundRespawn, id )
}
}
if(get_user_flags(id) & ADMIN_100_OPEN){
if(g_100_spawn[id] == 5){
g_100_spawn[id] = 4
ExecuteHam( Ham_CS_RoundRespawn, id )
}else
if(g_100_spawn[id] == 4){
g_100_spawn[id] = 3
ExecuteHam( Ham_CS_RoundRespawn, id )
}else
if(g_100_spawn[id] == 3){
g_100_spawn[id] = 2
ExecuteHam( Ham_CS_RoundRespawn, id )
}else
if(g_100_spawn[id] == 2){
g_100_spawn[id] = 1
ExecuteHam( Ham_CS_RoundRespawn, id )
}else
if(g_100_spawn[id] == 1){
g_100_spawn[id] = 0
ExecuteHam( Ham_CS_RoundRespawn, id )
}
if(g_100_spawn[id] == 0){
ColorChat(id,GREY,"Простите, но функция недоступна...")
}
}
if(get_user_flags(id) & ADMIN_200_OPEN){
ExecuteHam( Ham_CS_RoundRespawn, id )
}
}

public RoundStart(id){
g_vip_spawn[id] = 1
g_100_spawn[id] = 5
}

public admin_menu(id){
static s_MenuItem[255]
formatex(s_MenuItem, charsmax(s_MenuItem), "\yСпособности админов")
new menu = menu_create(s_MenuItem, "func_menu" )

if(get_user_flags(id) & VIP_OPEN){
menu_additem(menu, "\yVIP меню \r[Доступно]","1")
}else{
menu_additem(menu, "\dVIP меню [50 руб.]","1")
}
if(get_user_flags(id) & ADMIN_100_OPEN){
menu_additem(menu, "\yОбычная админка \r[Доступно]","2")
}else{
menu_additem(menu, "\dОбычная админка [100 руб.]","2")
}
if(get_user_flags(id) & ADMIN_200_OPEN){
menu_additem(menu, "\yСупер админка \r[Доступно]","3")
}else{
menu_additem(menu, "\dСупер админка [200 руб.]","3")
}

menu_setprop(menu, MPROP_BACKNAME, "Назад")
menu_setprop(menu, MPROP_NEXTNAME, "Далее")
menu_setprop(menu, MPROP_EXITNAME, "Выход")

menu_display(id,menu,0)
return PLUGIN_HANDLED
}

public vip_adminka(id){
static s_MenuItem[255]
if(get_user_flags(id) & ADMIN_100_OPEN){
formatex(s_MenuItem, charsmax(s_MenuItem), "\rВип меню^n\yВы: \rАдмин\y | Доступ: \rРазрешен")

}else
if(get_user_flags(id) & VIP_OPEN){
formatex(s_MenuItem, charsmax(s_MenuItem), "\rВип меню^n\yВы: \rVIP\y | Доступ: \rРазрешен")
}
new menu = menu_create(s_MenuItem, "func_vip" )

if(g_vip_spawn[id] == 1){
menu_additem(menu, "\yВозвродиться \r[1 раз]","1")
}else{
menu_additem(menu, "\dВозвродиться [Недоступно]","1")
}

menu_setprop(menu, MPROP_BACKNAME, "Назад")
menu_setprop(menu, MPROP_NEXTNAME, "Далее")
menu_setprop(menu, MPROP_EXITNAME, "Выход")

menu_display(id,menu,0)
return PLUGIN_HANDLED
}

public adminka_100(id){
static s_MenuItem[255]
if(get_user_flags(id) & ADMIN_100_OPEN){
formatex(s_MenuItem, charsmax(s_MenuItem), "\rОбычное меню^n\yВы: \rАдмин\y | Доступ: \rРазрешен")
}else
if(get_user_flags(id) & VIP_OPEN){
formatex(s_MenuItem, charsmax(s_MenuItem), "\rОбычное меню^n\yВы: \rVIP\y | Доступ: \rЗапрещен")
}
new menu = menu_create(s_MenuItem, "func_100" )

if(g_100_spawn[id] == 5){
menu_additem(menu, "\yВозвродиться \r[5 раз]","1")
}else
if(g_100_spawn[id] == 4){
menu_additem(menu, "\yВозвродиться \r[4 раз]","1")
}else
if(g_100_spawn[id] == 3){
menu_additem(menu, "\yВозвродиться \r[3 раз]","1")
}else
if(g_100_spawn[id] == 2){
menu_additem(menu, "\yВозвродиться \r[2 раз]","1")
}else
if(g_100_spawn[id] == 1){
menu_additem(menu, "\yВозвродиться \r[1 раз]","1")
}else
if(g_100_spawn[id] == 0){
menu_additem(menu, "\dВозвродиться [Недоступно]","1")
}

menu_setprop(menu, MPROP_BACKNAME, "Назад")
menu_setprop(menu, MPROP_NEXTNAME, "Далее")
menu_setprop(menu, MPROP_EXITNAME, "Выход")

menu_display(id,menu,0)
return PLUGIN_HANDLED
}

public adminka_200(id){
static s_MenuItem[255]
if(get_user_flags(id) & ADMIN_200_OPEN){
formatex(s_MenuItem, charsmax(s_MenuItem), "\rСупер меню^n\yВы: \rАдмин\y | Доступ: \rРазрешен")
}else
if(get_user_flags(id) & ADMIN_100_OPEN){
formatex(s_MenuItem, charsmax(s_MenuItem), "\rСупер меню^n\yВы: \rАдмин\y | Доступ: \rЗапрещен")
}else
if(get_user_flags(id) & VIP_OPEN){
formatex(s_MenuItem, charsmax(s_MenuItem), "\rСупер меню^n\yВы: \rVIP\y | Доступ: \rЗапрещен")
}
new menu = menu_create(s_MenuItem, "func_200" )

menu_additem(menu, "\yВозвродиться","1")

menu_setprop(menu, MPROP_BACKNAME, "Назад")
menu_setprop(menu, MPROP_NEXTNAME, "Далее")
menu_setprop(menu, MPROP_EXITNAME, "Выход")

menu_display(id,menu,0)
return PLUGIN_HANDLED
}

public func_vip(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)

new key = str_to_num(data)

switch(key)
{
case 1:{
player_respawn(id)
}
}
return PLUGIN_HANDLED
}

public func_100(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)

new key = str_to_num(data)

switch(key)
{
case 1:{
player_respawn(id)
}
}
return PLUGIN_HANDLED
}

public func_200(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)

new key = str_to_num(data)

switch(key)
{
case 1:{
player_respawn(id)
}
}
return PLUGIN_HANDLED
}

public func_menu(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)

new key = str_to_num(data)

switch(key)
{
case 1:{
vip_adminka(id)
}
case 2:{
adminka_100(id)
}
case 3:{
adminka_200(id)
}
}
return PLUGIN_HANDLED
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
OverGame
сообщение 16.6.2014, 13:59
Сообщение #4
Стаж: 11 лет

Сообщений: 384
Благодарностей: 217
Полезность: 348

Ап тему...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 16.6.2014, 14:32
Сообщение #5


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

ResetHUD вызывается не в конце спавна игрока, а именно в процессе спавна и при dullupdate (например команда start на клиенте)
Некоторые даже интерпретируют ResetHUD как событие начала/нового раунда, что, очевидно, не является верным.

а вот событие нового раунда
Код:
register_event("HLTV", "event_new_round", "a", "1=0", "2=0")



а вообще потрудись прочитать, всё явно расписано по ссылке
https://forums.alliedmods.net/showthread.php?t=42159?t=42159
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
OverGame
сообщение 16.6.2014, 14:40
Сообщение #6
Стаж: 11 лет

Сообщений: 384
Благодарностей: 217
Полезность: 348

Короче, такая вот ошибка:
Если public RoundStart(){ - то ошибка
Если public RoundStart(id){ - то компилируется

Код:
#include <amxmodx>
#include <fun>
#include <cstrike>
#include <amxmisc>
#include <colorchat>
#include <hamsandwich>

#define VIP_OPEN ADMIN_LEVEL_H
#define ADMIN_100_OPEN ADMIN_LEVEL_G
#define ADMIN_200_OPEN ADMIN_LEVEL_F

#pragma tabsize 0

new g_vip_spawn[33]
new g_100_spawn[33]

public plugin_init(){
register_plugin("Deathrun Admin", "1.2", "OverGame")
register_clcmd("adminmenu", "admin_menu")
register_event("HLTV", "RoundStart", "a", "1=0", "2=0")
}

public RoundStart(){
g_vip_spawn[id] = 1
g_100_spawn[id] = 5
}

public vip_spawn(id){
if(get_user_flags(id) & VIP_OPEN){
if(g_vip_spawn[id] == 1){
ExecuteHam( Ham_CS_RoundRespawn, id )
g_vip_spawn[id] = 0
}
}
}

public admin_100_spawn(id){
if(get_user_flags(id) & ADMIN_100_OPEN){
if(g_100_spawn[id] == 5){
ExecuteHam( Ham_CS_RoundRespawn, id )
g_100_spawn[id] = 4
}else
if(g_100_spawn[id] == 4){
ExecuteHam( Ham_CS_RoundRespawn, id )
g_100_spawn[id] = 3
}else
if(g_100_spawn[id] == 3){
ExecuteHam( Ham_CS_RoundRespawn, id )
g_100_spawn[id] = 2
}else
if(g_100_spawn[id] == 2){
ExecuteHam( Ham_CS_RoundRespawn, id )
g_100_spawn[id] = 1
}else
if(g_100_spawn[id] == 1){
ExecuteHam( Ham_CS_RoundRespawn, id )
g_100_spawn[id] = 0
}else
if(g_100_spawn[id] == 0){
ColorChat(id,GREY,"Вы уже потратили свое...")
}
}
}

public admin_200_spawn(id){
ExecuteHam( Ham_CS_RoundRespawn, id )
}

public admin_menu(id){
static s_MenuItem[255]
formatex(s_MenuItem, charsmax(s_MenuItem), "\yСпособности админов")
new menu = menu_create(s_MenuItem, "func_menu" )

if(get_user_flags(id) & VIP_OPEN){
menu_additem(menu, "\yVIP меню \r[Доступно]","1")
}else{
menu_additem(menu, "\dVIP меню [50 руб.]","1")
}
if(get_user_flags(id) & ADMIN_100_OPEN){
menu_additem(menu, "\yОбычная админка \r[Доступно]","2")
}else{
menu_additem(menu, "\dОбычная админка [100 руб.]","2")
}
if(get_user_flags(id) & ADMIN_200_OPEN){
menu_additem(menu, "\yСупер админка \r[Доступно]","3")
}else{
menu_additem(menu, "\dСупер админка [200 руб.]","3")
}

menu_setprop(menu, MPROP_BACKNAME, "Назад")
menu_setprop(menu, MPROP_NEXTNAME, "Далее")
menu_setprop(menu, MPROP_EXITNAME, "Выход")

menu_display(id,menu,0)
return PLUGIN_HANDLED
}

public vip_adminka(id){
static s_MenuItem[255]
if(get_user_flags(id) & ADMIN_100_OPEN){
formatex(s_MenuItem, charsmax(s_MenuItem), "\rВип меню^n\yВы: \rАдмин\y | Доступ: \rРазрешен")

}else
if(get_user_flags(id) & VIP_OPEN){
formatex(s_MenuItem, charsmax(s_MenuItem), "\rВип меню^n\yВы: \rVIP\y | Доступ: \rРазрешен")
}
new menu = menu_create(s_MenuItem, "func_vip" )

if(g_vip_spawn[id] == 1){
menu_additem(menu, "\yВозвродиться \r[1 раз]","1")
}else{
menu_additem(menu, "\dВозвродиться [Недоступно]","1")
}

menu_setprop(menu, MPROP_BACKNAME, "Назад")
menu_setprop(menu, MPROP_NEXTNAME, "Далее")
menu_setprop(menu, MPROP_EXITNAME, "Выход")

menu_display(id,menu,0)
return PLUGIN_HANDLED
}

public adminka_100(id){
static s_MenuItem[255]
if(get_user_flags(id) & ADMIN_100_OPEN){
formatex(s_MenuItem, charsmax(s_MenuItem), "\rОбычное меню^n\yВы: \rАдмин\y | Доступ: \rРазрешен")
}else
if(get_user_flags(id) & VIP_OPEN){
formatex(s_MenuItem, charsmax(s_MenuItem), "\rОбычное меню^n\yВы: \rVIP\y | Доступ: \rЗапрещен")
}
new menu = menu_create(s_MenuItem, "func_100" )

if(g_100_spawn[id] == 5){
menu_additem(menu, "\yВозвродиться \r[5 раз]","1")
}else
if(g_100_spawn[id] == 4){
menu_additem(menu, "\yВозвродиться \r[4 раз]","1")
}else
if(g_100_spawn[id] == 3){
menu_additem(menu, "\yВозвродиться \r[3 раз]","1")
}else
if(g_100_spawn[id] == 2){
menu_additem(menu, "\yВозвродиться \r[2 раз]","1")
}else
if(g_100_spawn[id] == 1){
menu_additem(menu, "\yВозвродиться \r[1 раз]","1")
}else
if(g_100_spawn[id] == 0){
menu_additem(menu, "\dВозвродиться [Недоступно]","1")
}

menu_setprop(menu, MPROP_BACKNAME, "Назад")
menu_setprop(menu, MPROP_NEXTNAME, "Далее")
menu_setprop(menu, MPROP_EXITNAME, "Выход")

menu_display(id,menu,0)
return PLUGIN_HANDLED
}

public adminka_200(id){
static s_MenuItem[255]
if(get_user_flags(id) & ADMIN_200_OPEN){
formatex(s_MenuItem, charsmax(s_MenuItem), "\rСупер меню^n\yВы: \rАдмин\y | Доступ: \rРазрешен")
}else
if(get_user_flags(id) & ADMIN_100_OPEN){
formatex(s_MenuItem, charsmax(s_MenuItem), "\rСупер меню^n\yВы: \rАдмин\y | Доступ: \rЗапрещен")
}else
if(get_user_flags(id) & VIP_OPEN){
formatex(s_MenuItem, charsmax(s_MenuItem), "\rСупер меню^n\yВы: \rVIP\y | Доступ: \rЗапрещен")
}
new menu = menu_create(s_MenuItem, "func_200" )

menu_additem(menu, "\yВозвродиться","1")

menu_setprop(menu, MPROP_BACKNAME, "Назад")
menu_setprop(menu, MPROP_NEXTNAME, "Далее")
menu_setprop(menu, MPROP_EXITNAME, "Выход")

menu_display(id,menu,0)
return PLUGIN_HANDLED
}

public func_vip(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)

new key = str_to_num(data)

switch(key)
{
case 1:{
vip_spawn(id)
}
}
return PLUGIN_HANDLED
}

public func_100(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)

new key = str_to_num(data)

switch(key)
{
case 1:{
admin_100_spawn(id)
}
}
return PLUGIN_HANDLED
}

public func_200(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)

new key = str_to_num(data)

switch(key)
{
case 1:{
admin_200_spawn(id)
}
}
return PLUGIN_HANDLED
}

public func_menu(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)

new key = str_to_num(data)

switch(key)
{
case 1:{
vip_adminka(id)
}
case 2:{
adminka_100(id)
}
case 3:{
adminka_200(id)
}
}
return PLUGIN_HANDLED
}



Отредактировал: OverGame, - 16.6.2014, 15:18
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 16.6.2014, 15:51
Сообщение #7
Стаж: 12 лет

Сообщений: 1970
Благодарностей: 2423
Полезность: 0

Код:
public RoundStart(id){
g_vip_spawn[id] = 1
g_100_spawn[id] = 5
}

->
Код:
public RoundStart(){
static i, maxplayers
maxplayers = get_maxplayers()
for(i = 1; i <= maxplayers; i++) {
g_vip_spawn[i] = 1
g_100_spawn[i] = 5
}
}


Отредактировал: trollface, - 16.6.2014, 15:52
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
serfreeman1337
сообщение 16.6.2014, 16:10
Сообщение #8
Стаж: 13 лет

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

Код:
static i, maxplayers
maxplayers = get_maxplayers()
for(i = 1; i <= maxplayers; i++) {
g_vip_spawn[i] = 1
g_100_spawn[i] = 5
}

oppa govnokod

Код:
new players[32],pnum
get_players(players,pnum)

for(new i ; i < pnum ; ++i){
g_vip_spawn[players[i]] = 1
g_100_spawn[players[i]] = 5
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 16.6.2014, 16:12
Сообщение #9
Стаж: 12 лет

Сообщений: 1970
Благодарностей: 2423
Полезность: 0

serfreeman1337,
там вся випка - говнокод)
так что ее не испортить уже:D
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Safety1st
сообщение 16.6.2014, 19:21
Сообщение #10
Стаж: 14 лет
Город: Moscow

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

Тогда уж:
Код
new giResetSize

public plugin_init() {
    // ...
    giResetSize = get_maxplayers() + 1
}

public RoundStart() {
    arrayset( g_vip_spawn, 1, giResetSize )
    arrayset( g_100_spawn, 5, giResetSize )
}
Если нужно просто сбрасывать значения переменных.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: