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

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

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

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

Найти стим игрока[help]

Статус пользователя vovan4ik1997
сообщение 17.7.2014, 18:50
Сообщение #1


Стаж: 13 лет

Сообщений: 1087
Благодарностей: 433
Полезность: 718

Нужно определить стима, есть сток, но он не работает.
Код:
stock bool:is_user_steam(id)
{
static dp_pointer;
if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
{
server_cmd("dp_clientinfo %d", id);
server_exec();
return (get_pcvar_num(dp_pointer) == 2) ? true : false;
}
return false;
}

Кто подскажет ?
И еще вопрос, когда лучше выдавать гранаты: при спавне(хамом) или старт раунд(евент)


Представь, что ты заплатил однажды, а получаешь прибыль постоянно.
Закажи правильный контент тут
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Safety1st
сообщение 17.7.2014, 18:53
Сообщение #2
Стаж: 14 лет
Город: Moscow

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

Функция верная.

Для выдачи лучше использовать реакцию на спавн, т.е. ловить с помощью Ham'а: это, так сказать, современный способ.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя vovan4ik1997
сообщение 17.7.2014, 23:36
Сообщение #3


Стаж: 13 лет

Сообщений: 1087
Благодарностей: 433
Полезность: 718

Safety1st,

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

#define PLUGIN "STEAM gift"
#define VERSION "0.1"
#define AUTHOR "KRV crew"


new g_maxplayers, g_msgSayText

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Spawn, "player", "event", 1)
}

public player(id)
{
if (is_user_steam(id)){
give(id)
}
}
public give(id){

if(is_user_alive(id)){
switch(random_num(1,3))
{
case 1:{
give_item( id, "weapon_heganade")
give_item( id, "weapon_flashbang")
}
case 2:{
cs_set_user_money(id, cs_get_user_money(id) + 500)
}
case 3:{
new arma[32]
arma[id] = get_user_armor(id)
set_user_armor(id,arma[id] + 100)
}
}
colored_print(id, "^x04[STEAM Gift] ^x01Вы STEAM, и Вы получаете подарки каждый раунд :3")
}

}

stock bool:is_user_steam(id)
{
static dp_pointer;
if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
{
server_cmd("dp_clientinfo %d", id);
server_exec();
return (get_pcvar_num(dp_pointer) == 2) ? true : false;
}
return false;
}

stock colored_print( target, const message[], any:... )
{
static buffer[ 512 ]

if( !target )
{
static player
for( player = 1; player <= g_maxplayers; player++ )
{
if ( !is_user_connected( player ) )
continue;

vformat( buffer, charsmax( buffer ), message, 3 )

message_begin( MSG_ONE_UNRELIABLE, g_msgSayText, _, player )
write_byte( player )
write_string( buffer )
message_end()
}
}

else
{
vformat( buffer, charsmax( buffer ), message, 3 )

message_begin( MSG_ONE, g_msgSayText, _, target )
write_byte( target )
write_string( buffer )
message_end()
}
}



Что-то натворил не то?


Представь, что ты заплатил однажды, а получаешь прибыль постоянно.
Закажи правильный контент тут
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 17.7.2014, 23:50
Сообщение #4
Стаж: 14 лет
Город: Moscow

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

Функция должна называться event.
Определение типа игрока должно выполняться однократно, подробнее здесь.
Для CS вместо get_user_armor() всегда используйте cs_get_user_armor() : в CS у брони помимо количества есть тип.
colored_print() в плагине - отстой, юзайте инклуд и не парьтесь.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя vovan4ik1997
сообщение 18.7.2014, 0:13
Сообщение #5


Стаж: 13 лет

Сообщений: 1087
Благодарностей: 433
Полезность: 718

Safety1st,

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

#define PLUGIN_NAME "Check Steam Player"
#define PLUGIN_VERS "1.0"
#define PLUGIN_AUTH "NIXON"

#define MAX_PLAYERS 32
#define DP_AUTH_STEAM 2 // native Steam


new bool: gpSteam[MAX_PLAYERS + 1];

public plugin_init(){
register_plugin(PLUGIN_NAME, PLUGIN_VERS, PLUGIN_AUTH);
RegisterHam(Ham_Spawn, "player", "event", 1);

}

public client_authorized(id) {
gpSteam[id] = is_user_steam(id) ? true : false;
}

public event(id) {
if(is_user_alive(id) && gpSteam[id] ){
switch(random_num(1,3))
{
case 1:{
give_item( id, "weapon_heganade");
give_item( id, "weapon_flashbang");
}
case 2:{
cs_set_user_money(id, cs_get_user_money(id) + 500);
}
case 3:{
new arma[32]
arma[id] = get_user_armor(id);
cs_set_user_armor(id,arma[id] + 100,CS_ARMOR_VESTHELM)
}
}
}
}

bool:is_user_steam(id) {
static iPointer;
if(iPointer || (iPointer = get_cvar_pointer("dp_r_id_provider")))
{
server_cmd("dp_clientinfo %d", id);
server_exec();

return (get_pcvar_num(iPointer) == DP_AUTH_STEAM) ? true : false;
}

return false;
}

Примерно вот так должно быть? Какая разница, какой будет колорчат, существенно влияет на нагрузку?


Представь, что ты заплатил однажды, а получаешь прибыль постоянно.
Закажи правильный контент тут
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 18.7.2014, 2:32
Сообщение #6
Стаж: 14 лет
Город: Moscow

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

Цитата(vovan4ik1997 @ 18.7.2014, 2:13) *
Примерно вот так должно быть?

Ога.

Цитата(vovan4ik1997 @ 18.7.2014, 2:13) *
Какая разница, какой будет колорчат, существенно влияет на нагрузку?

Колорчаты разные бывают и нагрузка от них разная. Я в первую очередь смотрю на качество кода и лишнюю нагрузку. Если я пишу 'отстой' - значит, такой код в принципе не нужно рассматривать как вариант. Моё дело посоветовать)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: