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

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

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

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

2 страниц V   1 2

Хороший ли код в этом плагине?

Статус пользователя JENYA
сообщение 6.5.2015, 8:28
Сообщение #1
Стаж: 11 лет

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

Код
#include amxmodx
#include <fun>
#include <cstrike>
#include <engine>

#define PLUGIN "jVip"
#define VERSION "1.0"
#define AUTHOR "tYnE#"

public plugin_init()
{
    register_clcmd( "jvip", "VIPMenu" );
}

public VIPMenu( id )
{
if(get_user_flags(id) & ADMIN_LEVEL_H)
{
   new vip_menu = menu_create( "\wМеню \yv\d.\yi\d.\yp \w игрока.", "menu_handler" );
   menu_additem( vip_menu, "Бессмертие", "1", 0 );
   menu_additem( vip_menu, "Ходить сквозь стен", "2", 0 );
   menu_additem( vip_menu, "Скорость", "3", 0 );
   menu_additem( vip_menu, "Взять жизней \d(\r255\d)", "4", 0 );
   menu_additem( vip_menu, "Возродиться", "5", 0 );
   menu_additem( vip_menu, "Взять \y16000$", "6", 0 );
   menu_additem( vip_menu, "Взять \yщит", "7", 0 );
   menu_additem( vip_menu, "Взять \yHE\w гранату", "8", 0 );
   menu_additem( vip_menu, "Взять пистолет \yp228", "9", 0 );

menu_setprop( vip_menu, MPROP_EXIT, MEXIT_ALL );
menu_display( id, vip_menu, 0 );
}
else
  {
    client_print(id, print_chat, "---У тебя нет прав использовать эту комманду---")
  }
}

public Spawn_player(id)
{
  if(is_user_alive(id) && is_user_connected(id))
  {
    set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal,0)
    set_view( id, 0 )
    cs_set_user_armor(id, 0, CS_ARMOR_NONE)
    set_user_maxspeed(id, 250.0)
    set_user_gravity( id, 1.0 )
    set_user_health( id, 100 )
    set_user_noclip(id, 0)
    set_user_godmode(id, 0)
   }
}

public menu_handler( id, menu, item )
{
   if( item == MENU_EXIT )
    {
      menu_destroy( menu );
      return PLUGIN_HANDLED;
    }
    new data[6], iName[64];
    new access, callback;  
    menu_item_getinfo( menu, item, access, data,5, iName, 63, callback );
    new key = str_to_num( data );
  switch( key )
{
case 1:
{
set_user_godmode(id,1)
}
case 2:
{
set_user_noclip(id,1)
}
case 3:
{
set_user_maxspeed(id,1000.0)
}
case 4:
{
set_user_health(id, 255)
}
case 5:
{
spawn(id)
}
case 6:
{
cs_set_user_money(id,16000)
}
case 7:
{
give_item( id, "weapon_shield" );
}
case 8:
{
give_item( id, "weapon_hegrenade" );
}
case 9:
{
give_item( id, "weapon_p228" );
}
}
menu_destroy( menu );
return PLUGIN_HANDLED;
}


Хороший здесь код?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя SISA
сообщение 6.5.2015, 8:34
Сообщение #2
Стаж: 15 лет

Сообщений: 2774
Благодарностей: 2956
Полезность: 994

Код как код. Не структурирован, сообщения не выведены в lang файл, выдача оружия через give_item, Spawn_player видимо из воздуха берется.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
woody
сообщение 6.5.2015, 8:35
Сообщение #3
Стаж: 11 лет

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

Код:
#include <amxmodx>
#include <fun>
#include <cstrike>
#include <hamsandwich>
//#include <engine> // На хер он здесь нужен?

// А где register_plugin(...) ?
#define PLUGIN "jVip"
#define VERSION "1.0"
#define AUTHOR "tYnE#" // Мега-скриптер. Сегодня закажу меню оружий.

// Переключатели :D
new iPlayerAction[33][4]

public plugin_init()
{
register_clcmd("vipmenu", "VIPMenu")

// Видимо парень забыл про неё, ведь функция есть, xD
RegisterHam(Ham_Spawn, "player", "Spawn_player", 1)

// Отлов события переключения оружия (Фиксим скорость)
register_event("CurWeapon", "CurWeapon", "be", "1=1")
}

public VIPMenu(id)
{
// Не знаю, почему автор не сделал так:
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
client_print(id, print_chat, "[Server] У тебя нет прав использовать эту комманду.")
return PLUGIN_HANDLED
}

new vip_menu = menu_create("\wМеню \yv\d.\yi\d.\yp \w игрока.", "menu_handler")

// Делаем переключатель для 1 пункта
if(iPlayerAction[id][1])
{
menu_additem(vip_menu, "Бессмертие\d[ \rВключено \d]", "1", 0)
}else{
menu_additem(vip_menu, "Бессмертие\d[ \rВыключено \d]", "1", 0)
}

// Делаем переключатель для 2 пункта
if(iPlayerAction[id][2])
{
menu_additem(vip_menu, "Ходить сквозь стен\d[ \rВключено \d]", "2", 0)
}else{
menu_additem(vip_menu, "Ходить сквозь стен\d[ \rВыключено \d]", "2", 0)
}

// Запрещаем юзать мертвому.
if(is_user_alive(id))
{
// Делаем переключатель для 3 пункта
if(iPlayerAction[id][3])
{
menu_additem(vip_menu, "Скорость\d[ \rВключена \d]", "3", 0)
}else{
menu_additem(vip_menu, "Скорость\d[ \rВыключена \d]", "3", 0)
}

}else{
menu_additem(vip_menu, "Скорость", "3", ADMIN_ADMIN)
}

// Запрещаем юзать мертвому.
if(is_user_alive(id))
{
menu_additem(vip_menu, "Взять жизней \d(\r255\d)", "4", 0)
}else{
menu_additem(vip_menu, "Взять жизней \d(\r255\d)", "4", ADMIN_ADMIN)
}

// Мега-баг. Запрещаем юзать живому и спеку
if(!is_user_alive(id) && cs_get_user_team(id) != CS_TEAM_SPECTATOR)
{
menu_additem(vip_menu, "Возродиться", "5", 0)
}else{
menu_additem(vip_menu, "Возродиться", "5", ADMIN_ADMIN)
}

menu_additem(vip_menu, "Взять \y16000$", "6", 0)

// Запрещаем юзать мертвому.
if(is_user_alive(id))
{
menu_additem(vip_menu, "Взять \yщит", "7", 0)
}else{
menu_additem(vip_menu, "Взять \yщит", "7", ADMIN_ADMIN)
}

// Запрещаем юзать мертвому.
if(is_user_alive(id))
{
menu_additem( vip_menu, "Взять \yHE\w гранату", "8", 0)
}else{
menu_additem( vip_menu, "Взять \yHE\w гранату", "8", ADMIN_ADMIN)
}

// Запрещаем юзать мертвому.
if(is_user_alive(id))
{
menu_additem( vip_menu, "Взять пистолет \yAK47", "9", 0)
}else{
menu_additem( vip_menu, "Взять пистолет \yAK47", "9", ADMIN_ADMIN)
}

// Может логичней убрать навигацию, если всего 9 пунктов?
// menu_setprop(vip_menu, MPROP_EXIT, MEXIT_ALL)
menu_setprop(vip_menu, MEXIT_ALL, 0)

menu_display(id, vip_menu, 0)
return PLUGIN_HANDLED
}

public menu_handler(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:
{
//Проверяем: если уже есть
if(iPlayerAction[id][1])
{
iPlayerAction[id][1] = false // Ставим массив на false.
set_user_godmode(id, 0) // Вырубаем
}else{ // Иначе включаем
iPlayerAction[id][1] = true // Ставим массив на true
set_user_godmode(id,1) // Включаем
}

// Переоткроем меню с понтом дела
VIPMenu(id)
}

case 2:
{
// Проверяем: если уже есть
if(iPlayerAction[id][2])
{
iPlayerAction[id][2] = false // Ставим массив на false.
set_user_noclip(id, 0) // Вырубаем
}else{ // Иначе включаем
iPlayerAction[id][2] = true // Ставим массив на true
set_user_noclip(id,1) // Включаем
}

// Переоткроем меню с понтом дела
VIPMenu(id)
}

case 3:
{
// Проверяем: если уже есть
if(iPlayerAction[id][3])
{
iPlayerAction[id][3] = false // Ставим массив на false.
set_user_maxspeed(id, 240.0) // Вырубаем
}else{ // Иначе включаем
iPlayerAction[id][3] = true // Ставим массив на true
set_user_maxspeed(id, 1000.0) // Включаем
}

// Переоткроем меню с понтом дела
VIPMenu(id)
}

case 4:
{
// Если игрок мертв, то нет смысла продолжать
if(!is_user_alive(id))
return PLUGIN_HANDLED

set_user_health(id, 255)
}

case 5:
{
//o0. Чувак жжет. Получаем унриал баг с экранными худами при таком спавне.
//Чувак - гуру скриптинга LOL
//spawn(id)

//Если игрок жив или спек, то продолжать нельзя =)
if(is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_SPECTATOR)
return PLUGIN_HANDLED

ExecuteHamB(Ham_CS_RoundRespawn, id)
}

case 6:
{
cs_set_user_money(id,16000)
}

case 7:
{
if(!is_user_alive(id))
return PLUGIN_HANDLED

give_item(id, "weapon_shield")
}

case 8:
{
if(!is_user_alive(id))
return PLUGIN_HANDLED

give_item(id, "weapon_hegrenade")
}

case 9:
{
if(!is_user_alive(id))
return PLUGIN_HANDLED

give_item(id, "weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, 90) //Даем патроны
}
}

menu_destroy( menu )
return PLUGIN_HANDLED
}

public CurWeapon(id)
{
if(!iPlayerAction[id][3])
return PLUGIN_CONTINUE

set_user_maxspeed(id, 1000.0)
return PLUGIN_CONTINUE
}

//А где, собственно отлов????????
//Но в моем случаи мне функция пригодилась
public Spawn_player(id)
{
//Так круче :DD
if(!is_user_alive(id) || !is_user_connected(id))
return PLUGIN_CONTINUE

//Присваиваем в зависимости от переключателя
set_user_godmode(id, iPlayerAction[id][1])
set_user_noclip(id, iPlayerAction[id][2])

//Эмулуем переключение на нож, чтобы вызвать кур =)
engclient_cmd(id, "weapon_knife")

return PLUGIN_CONTINUE
}


Отредактировал: woody, - 6.5.2015, 8:36
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 4 раз
   + Цитировать сообщение
Статус пользователя RyRy
сообщение 6.5.2015, 8:38
Сообщение #4


Стаж: 11 лет

Сообщений: 175
Благодарностей: 203
Полезность: 439

код
Цитата(woody @ 6.5.2015, 9:35) *
Код:
#include <amxmodx>
#include <fun>
#include <cstrike>
#include <hamsandwich>
//#include <engine> // На хер он здесь нужен?

// А где register_plugin(...) ?
#define PLUGIN "jVip"
#define VERSION "1.0"
#define AUTHOR "tYnE#" // Мега-скриптер. Сегодня закажу меню оружий.

// Переключатели :D
new iPlayerAction[33][4]

public plugin_init()
{
register_clcmd("vipmenu", "VIPMenu")

// Видимо парень забыл про неё, ведь функция есть, xD
RegisterHam(Ham_Spawn, "player", "Spawn_player", 1)

// Отлов события переключения оружия (Фиксим скорость)
register_event("CurWeapon", "CurWeapon", "be", "1=1")
}

public VIPMenu(id)
{
// Не знаю, почему автор не сделал так:
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
client_print(id, print_chat, "[Server] У тебя нет прав использовать эту комманду.")
return PLUGIN_HANDLED
}

new vip_menu = menu_create("\wМеню \yv\d.\yi\d.\yp \w игрока.", "menu_handler")

// Делаем переключатель для 1 пункта
if(iPlayerAction[id][1])
{
menu_additem(vip_menu, "Бессмертие\d[ \rВключено \d]", "1", 0)
}else{
menu_additem(vip_menu, "Бессмертие\d[ \rВыключено \d]", "1", 0)
}

// Делаем переключатель для 2 пункта
if(iPlayerAction[id][2])
{
menu_additem(vip_menu, "Ходить сквозь стен\d[ \rВключено \d]", "2", 0)
}else{
menu_additem(vip_menu, "Ходить сквозь стен\d[ \rВыключено \d]", "2", 0)
}

// Запрещаем юзать мертвому.
if(is_user_alive(id))
{
// Делаем переключатель для 3 пункта
if(iPlayerAction[id][3])
{
menu_additem(vip_menu, "Скорость\d[ \rВключена \d]", "3", 0)
}else{
menu_additem(vip_menu, "Скорость\d[ \rВыключена \d]", "3", 0)
}

}else{
menu_additem(vip_menu, "Скорость", "3", ADMIN_ADMIN)
}

// Запрещаем юзать мертвому.
if(is_user_alive(id))
{
menu_additem(vip_menu, "Взять жизней \d(\r255\d)", "4", 0)
}else{
menu_additem(vip_menu, "Взять жизней \d(\r255\d)", "4", ADMIN_ADMIN)
}

// Мега-баг. Запрещаем юзать живому и спеку
if(!is_user_alive(id) && cs_get_user_team(id) != CS_TEAM_SPECTATOR)
{
menu_additem(vip_menu, "Возродиться", "5", 0)
}else{
menu_additem(vip_menu, "Возродиться", "5", ADMIN_ADMIN)
}

menu_additem(vip_menu, "Взять \y16000$", "6", 0)

// Запрещаем юзать мертвому.
if(is_user_alive(id))
{
menu_additem(vip_menu, "Взять \yщит", "7", 0)
}else{
menu_additem(vip_menu, "Взять \yщит", "7", ADMIN_ADMIN)
}

// Запрещаем юзать мертвому.
if(is_user_alive(id))
{
menu_additem( vip_menu, "Взять \yHE\w гранату", "8", 0)
}else{
menu_additem( vip_menu, "Взять \yHE\w гранату", "8", ADMIN_ADMIN)
}

// Запрещаем юзать мертвому.
if(is_user_alive(id))
{
menu_additem( vip_menu, "Взять пистолет \yAK47", "9", 0)
}else{
menu_additem( vip_menu, "Взять пистолет \yAK47", "9", ADMIN_ADMIN)
}

// Может логичней убрать навигацию, если всего 9 пунктов?
// menu_setprop(vip_menu, MPROP_EXIT, MEXIT_ALL)
menu_setprop(vip_menu, MEXIT_ALL, 0)

menu_display(id, vip_menu, 0)
return PLUGIN_HANDLED
}

public menu_handler(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:
{
//Проверяем: если уже есть
if(iPlayerAction[id][1])
{
iPlayerAction[id][1] = false // Ставим массив на false.
set_user_godmode(id, 0) // Вырубаем
}else{ // Иначе включаем
iPlayerAction[id][1] = true // Ставим массив на true
set_user_godmode(id,1) // Включаем
}

// Переоткроем меню с понтом дела
VIPMenu(id)
}

case 2:
{
// Проверяем: если уже есть
if(iPlayerAction[id][2])
{
iPlayerAction[id][2] = false // Ставим массив на false.
set_user_noclip(id, 0) // Вырубаем
}else{ // Иначе включаем
iPlayerAction[id][2] = true // Ставим массив на true
set_user_noclip(id,1) // Включаем
}

// Переоткроем меню с понтом дела
VIPMenu(id)
}

case 3:
{
// Проверяем: если уже есть
if(iPlayerAction[id][3])
{
iPlayerAction[id][3] = false // Ставим массив на false.
set_user_maxspeed(id, 240.0) // Вырубаем
}else{ // Иначе включаем
iPlayerAction[id][3] = true // Ставим массив на true
set_user_maxspeed(id, 1000.0) // Включаем
}

// Переоткроем меню с понтом дела
VIPMenu(id)
}

case 4:
{
// Если игрок мертв, то нет смысла продолжать
if(!is_user_alive(id))
return PLUGIN_HANDLED

set_user_health(id, 255)
}

case 5:
{
//o0. Чувак жжет. Получаем унриал баг с экранными худами при таком спавне.
//Чувак - гуру скриптинга LOL
//spawn(id)

//Если игрок жив или спек, то продолжать нельзя =)
if(is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_SPECTATOR)
return PLUGIN_HANDLED

ExecuteHamB(Ham_CS_RoundRespawn, id)
}

case 6:
{
cs_set_user_money(id,16000)
}

case 7:
{
if(!is_user_alive(id))
return PLUGIN_HANDLED

give_item(id, "weapon_shield")
}

case 8:
{
if(!is_user_alive(id))
return PLUGIN_HANDLED

give_item(id, "weapon_hegrenade")
}

case 9:
{
if(!is_user_alive(id))
return PLUGIN_HANDLED

give_item(id, "weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, 90) //Даем патроны
}
}

menu_destroy( menu )
return PLUGIN_HANDLED
}

public CurWeapon(id)
{
if(!iPlayerAction[id][3])
return PLUGIN_CONTINUE

set_user_maxspeed(id, 1000.0)
return PLUGIN_CONTINUE
}

//А где, собственно отлов????????
//Но в моем случаи мне функция пригодилась
public Spawn_player(id)
{
//Так круче :DD
if(!is_user_alive(id) || !is_user_connected(id))
return PLUGIN_CONTINUE

//Присваиваем в зависимости от переключателя
set_user_godmode(id, iPlayerAction[id][1])
set_user_noclip(id, iPlayerAction[id][2])

//Эмулуем переключение на нож, чтобы вызвать кур =)
engclient_cmd(id, "weapon_knife")

return PLUGIN_CONTINUE
}


Тут за деньги писать не хотят люди. А человек бесплатно работу над ошибками провел....еще и хвастается.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
woody
сообщение 6.5.2015, 8:39
Сообщение #5
Стаж: 11 лет

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

Пардон, но где я хвастаюсь? Я думал, что это форум поддержки юных скриптеров или я адресом ошибся, не?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя RyRy
сообщение 6.5.2015, 8:45
Сообщение #6


Стаж: 11 лет

Сообщений: 175
Благодарностей: 203
Полезность: 439

Цитата(woody @ 6.5.2015, 9:39) *
Пардон, но где я хвастаюсь? Я думал, что это форум поддержки юных скриптеров или я адресом ошибся, не?

Не не, ты по адресу дятел.

P.s. шутка же про хвастаюсь.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
woody
сообщение 6.5.2015, 8:48
Сообщение #7
Стаж: 11 лет

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

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Andrei
сообщение 6.5.2015, 8:53
Сообщение #8


Стаж: 15 лет

Сообщений: 1335
Благодарностей: 693
Полезность: 740

Цитата
#define AUTHOR "tYnE#" // Мега-скриптер. Сегодня закажу меню оружий.


А зачем сразу троллить? Сам то не лучше.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
woody
сообщение 6.5.2015, 8:56
Сообщение #9
Стаж: 11 лет

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

Это был сарказм, приятель.
Соглашусь только с тем, что есть люди гораздо лучше меня - это да, но у каждого свои плюсы и минусы.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 6.5.2015, 9:00
Сообщение #10


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

А разве нужно делать проверку на подключения и или живой вместе?

if(is_user_alive(id) && is_user_connected(id))

Где-то читал что is_user_alive(id) достаточно (типа эта функция тоже проверяет или подключен)


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ex3m777
сообщение 6.5.2015, 9:06
Сообщение #11


Стаж: 13 лет
Город: Москва

Сообщений: 2037
Благодарностей: 1135
Полезность: 968

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

is_user_alive(id) включает в себя is_user_connected(id))


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 6.5.2015, 9:06
Сообщение #12
Стаж: 15 лет

Сообщений: 2774
Благодарностей: 2956
Полезность: 994

Цитата(ssx @ 6.5.2015, 11:00) *
А разве нужно делать проверку на подключения и или живой вместе?

if(is_user_alive(id) && is_user_connected(id))

Где-то читал что is_user_alive(id) достаточно (типа эта функция тоже проверяет или подключен)



Код
static cell AMX_NATIVE_CALL is_user_alive(AMX *amx, cell *params) /* 1 param */
{
    int index = params[1];
    
    if (index < 1 || index > gpGlobals->maxClients)
    {
        return 0;
    }
    
    CPlayer* pPlayer = GET_PLAYER_POINTER_I(index);

    if (g_bmod_tfc)
    {
        edict_t *e = pPlayer->pEdict;
        if (e->v.flags & FL_SPECTATOR ||
            (!e->v.team || !e->v.playerclass))
        {
            return 0;
        }
    }
    
    return ((pPlayer->ingame && pPlayer->IsAlive()) ? 1 : 0);
}


Код
static cell AMX_NATIVE_CALL is_user_connected(AMX *amx, cell *params) /* 1 param */
{
    int index = params[1];
    
    if (index < 1 || index > gpGlobals->maxClients)
        return 0;
    
    CPlayer* pPlayer = GET_PLAYER_POINTER_I(index);
    
    return (pPlayer->ingame ? 1 : 0);
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
woody
сообщение 6.5.2015, 9:14
Сообщение #13
Стаж: 11 лет

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

Привычка двухлетней давности.
Подзабыл, сорян с дополнительной проверкой :-)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 6.5.2015, 9:20
Сообщение #14
Стаж: 12 лет

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

если хочешь улучшить код в дальнейшем
отформатируй нормально. с отступами
по хорошему желательно Ham_item_Preframe для скорости
money можно выдать через set_pdata_int + msg_money
lang здесь не нужен, ибо сервер на русском же языке не для чукчей.

Отредактировал: csnet, - 6.5.2015, 9:21


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 6.5.2015, 9:25
Сообщение #15
Стаж: 15 лет

Сообщений: 2774
Благодарностей: 2956
Полезность: 994

Цитата(csnet @ 6.5.2015, 11:20) *
если хочешь улучшить код в дальнейшем
отформатируй нормально. с отступами
по хорошему желательно Ham_item_Preframe для скорости
money можно выдать через set_pdata_int + msg_money
lang здесь не нужен, ибо сервер на русском же языке не для чукчей.


Английский - это международный язык. "Чукчи" здесь не при чем.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
woody
сообщение 6.5.2015, 9:37
Сообщение #16
Стаж: 11 лет

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

Цитата(csnet @ 6.5.2015, 9:20) *
если хочешь улучшить код в дальнейшем
отформатируй нормально. с отступами
по хорошему желательно Ham_item_Preframe для скорости
money можно выдать через set_pdata_int + msg_money
lang здесь не нужен, ибо сервер на русском же языке не для чукчей.


Не могу отредактировать сообщение.
Отступы нормальные были, до того, пока код не взял под соответствующие теги на форуме.
Словарь лишь для удобства можно сделать, но это самое легкое, что можно сделать, как я считаю.

Почему по-хорошему делать через Ham_Item_PreFrame?
Зачем выдавать деньги через set_pdata_int?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Radius
сообщение 6.5.2015, 9:41
Сообщение #17
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

SISA, а у нас прямо есть игроки из англоязычных стран. Это раньше когда игроки приходили с международного Setti еще была актуальна работа с lang. Сейчас игроков поставляют мониторинги, которые распространяют клиент только на территории стран бывшего СНГ.

Мое мнение поддержка multi-language лишняя трата ресурсов процессора.

Отредактировал: Radius, - 6.5.2015, 9:42
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
woody
сообщение 6.5.2015, 9:44
Сообщение #18
Стаж: 11 лет

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

Цитата(Radius @ 6.5.2015, 9:41) *
SISA, а у нас прямо есть игроки из англоязычных стран. Это раньше когда игроки приходили с международного Setti еще была актуальна работа с lang. Сейчас игроков поставляют мониторинги, которые распространяют клиент только на территории стран бывшего СНГ.

Мое мнение поддержка multi-language лишняя трата ресурсов процессора.


К черту США.
Есть еще Украина и практически каждый третий игрок из этой страны.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 6.5.2015, 9:54
Сообщение #19
Стаж: 15 лет

Сообщений: 2774
Благодарностей: 2956
Полезность: 994

Цитата(Radius @ 6.5.2015, 11:41) *
SISA, а у нас прямо есть игроки из англоязычных стран. Это раньше когда игроки приходили с международного Setti еще была актуальна работа с lang. Сейчас игроков поставляют мониторинги, которые распространяют клиент только на территории стран бывшего СНГ.

Мое мнение поддержка multi-language лишняя трата ресурсов процессора.


Надо привлекать клиентов со стима, чтобы сервер в стим-поиске высвечивался с большим количеством игроков, тогда людей с Европы будет вагон (проверено). Ну а так, разумеется, никто не пойдет играть на "Пустой" сервер.

Цитата(woody @ 6.5.2015, 11:44) *
К черту США.


США тут не при чем. Между прочим, это единственная страна в мире, у которой нет официального языка, но это уже совсем другая история.

ИМХО сервер должен быть мультиязычный, как ни крути.

Отредактировал: SISA, - 6.5.2015, 9:57
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
woody
сообщение 6.5.2015, 9:59
Сообщение #20
Стаж: 11 лет

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

Цитата(SISA @ 6.5.2015, 10:54) *
Надо привлекать клиентов со стима, чтобы сервер в поиске высвечивался с большим количеством игроков, тогда людей с Европы будет вагон. Ну а так, разумеется, никто не пойдет играть на "Пустой" сервер.



США тут не при чем. Между прочим, это единственная страна в мире, у которой нет официального языка, но это уже совсем другая история.

ИМХО сервер должен быть мультиязычный, как ни крути.


Каким образом сейчас сервера в MS у Steam-игроков выводятся?
Раньше, помню, как-то на cs.setti.info можно было купить boost, который добавлялся в MS у Steam-игроков, а как сейчас - не знаю.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: