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

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

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

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

Ограничение на использование функции

Статус пользователя default67
сообщение 15.2.2015, 17:01
Сообщение #1


Стаж: 11 лет

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

Всем Привет!)
Подскажите пожалуйста, как сделать ограничение на использование функции в VIP, Админ менюхах.
Я хочу узнать как сделать так, что бы к примеру функцию Воскреснуть можно было использовать 3 раза за раунд. Вообщем что бы можно было самому указывть сколько раз можно будет использовать функцию)
Заранее Благодарю

Отредактировал: default67, - 15.2.2015, 17:02
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Legend21
сообщение 15.2.2015, 17:34
Сообщение #2
Стаж: 14 лет
Город: Винница

Сообщений: 604
Благодарностей: 229
Полезность: 561

Для этого стоит учиться Pawno.

К примеру:
Код
new ololo[33]

В кейсах следующее

case 0:
{
if(ololo[id] == 0) //Функция будет ограничивать действия игрока
Chat(id, "опа! Нельзя больше нажать")
}


Отредактировал: Legend21, - 15.2.2015, 17:35
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя default67
сообщение 15.2.2015, 17:36
Сообщение #3


Стаж: 11 лет

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

Цитата(Legend21 @ 15.2.2015, 18:34) *
Для этого стоит учиться Pawno.

К примеру:
Код
new ololo[33]

В кейсах следующее

case 0:
{
if(ololo[id] == 0) //Функция будет ограничивать действия игрока
Chat(id, "опа! Нельзя больше нажать")
}

А регистрировать разве ничего не нужно?
А где указывать кол-во раз на использование функции!?

Отредактировал: default67, - 15.2.2015, 17:39
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Machette
сообщение 15.2.2015, 17:43
Сообщение #4


Стаж: 14 лет

Сообщений: 546
Благодарностей: 419
Полезность: 947

ololo[id] == 0
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legend21
сообщение 15.2.2015, 17:43
Сообщение #5
Стаж: 14 лет
Город: Винница

Сообщений: 604
Благодарностей: 229
Полезность: 561

default67, нужно , но это было к примеру.

P,s стоит лучше загуглить, а то если объяснять - это выйдет целая статья.

Отредактировал: Legend21, - 15.2.2015, 17:52
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя default67
сообщение 15.2.2015, 18:42
Сообщение #6


Стаж: 11 лет

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

Цитата(Legend21 @ 15.2.2015, 18:43) *
default67, нужно , но это было к примеру.

P,s стоит лучше загуглить, а то если объяснять - это выйдет целая статья.

Я делал так:
Код:
register_event("HLTV", "round_start", "a", "1=0", "2=0")


Код:
public round_start()
{
for(new id = 1;id <= get_maxplayers(); id++)
{
Spawn[id] = 3
}
}


Код:
if(is_user_alive(id) || Spawn[id] == 0)
{
len += formatex(adminmenu[len], charsmax(adminmenu) - len, "\d1. Воскреснуть \d(\r%d\d)^n", Spawn[id])
keys &= ~MENU_KEY_1
}
else
{
len += formatex(adminmenu[len], charsmax(adminmenu) - len, "\r1. \wВоскреснуть \w(\r%d\w)^n", Spawn[id])
keys |= MENU_KEY_1
}
}


Код:
if(is_user_alive(id) ||  Spawn[id] == 0)
{
return PLUGIN_CONTINUE
}
else
{
ExecuteHam(Ham_CS_RoundRespawn, id)
Spawn[id] = Spawn[id] -1
adminmenu_m(id)
}
}

Делал так, но ничего не получилось!!!, что сдесь не так?

Отредактировал: default67, - 15.2.2015, 18:45
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legend21
сообщение 15.2.2015, 19:09
Сообщение #7
Стаж: 14 лет
Город: Винница

Сообщений: 604
Благодарностей: 229
Полезность: 561

default67,

Код:
new Spawn[33]

Код:
new MaxPlayers


Код:
register_logevent("StartRound", 2, "1=Round_Start")


Код:
MaxPlayers = get_maxplayers()


Код:
public StartRound()
{
for(new id = 0; id <= MaxPlayers; id++)
{
if(!is_user_connected(id))
{
Spawn[id] = 3
}
}
return PLUGIN_CONTINUE
}


Код:
case 0: {
if (Spawn[id] == 0)
{
return PLUGIN_CONTINUE
}
else
{
Spawn[id] = Spawn[id] -1
ExecuteHam(Ham_CS_RoundRespawn, id)
}
}


Отредактировал: Legend21, - 15.2.2015, 19:14
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя default67
сообщение 15.2.2015, 19:38
Сообщение #8


Стаж: 11 лет

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

Я всё правильно сделал, но в register_event("HLTV" "round_start", "a", "1=0", "2=0") я создал round_start, а public создал под именем round_star, без "t"))
Тему можно закрыть.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Dukkhaz0r
сообщение 15.2.2015, 19:45
Сообщение #9


Стаж: 12 лет

Сообщений: 343
Благодарностей: 294
Полезность: 812

Код:
#include <amxmodx>
#include <hamsandwich>

#define MAX_PLAYERS 32

new g_iSpawnCounter[MAX_PLAYERS + 1]

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

public event_new_round()
arrayset( g_iSpawnCounter, 3, 33 )

//sample item...
case 0:
{
if( g_iSpawnCounter < 1 )
{
client_print( id, print_chat, "можно юзать не чаще сколько-то раз :(" )
return PLUGIN_HANDLED
}
else
{
ExecuteHamB( Ham_CS_RoundRespawn, id )
g_iSpawnCounter[id]--
}
}


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя default67
сообщение 15.2.2015, 20:00
Сообщение #10


Стаж: 11 лет

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

Цитата(Machette @ 15.2.2015, 18:43) *
ololo[id] == 0

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