урон на стим ид

Сообщения
137
Реакции
9
Помог
3 раз(а)
Здравствуйте суть такая. есть плагин на увеличения урона в нем стоит урон по флагу.
Код:
#include <amxmodx>
#include <hamsandwich>
  
#define FLAG_ACCESS ADMIN_LEVEL_G  // флаг
#define DMG_HEGRENADE (1<<24)
  
const Float:fMultiDmg = 2.0 // на сколько умножать
new bool:bIsAdmin[33]
  
public plugin_init()
{
   RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
}
  
public client_putinserver(id)
{
   if(get_user_flags(id) & FLAG_ACCESS) bIsAdmin[id] = true
   else bIsAdmin[id] = false;
}
  
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
{
   if(!is_user_connected(attacker) || victim == attacker)
      return HAM_IGNORED

   if( damage_type & DMG_HEGRENADE )
      return HAM_IGNORED

   if(bIsAdmin[attacker])
   {
      SetHamParamFloat(4, damage * fMultiDmg)
   }
   return HAM_IGNORED
}
Хотел сделать по стимид выдачу ничего не получилось.
Код:
#include <amxmodx>
#include <hamsandwich>
   
#define DMG_HEGRENADE (1<<24)
   
const Float:fMultiDmg = 2.0 // на сколько умножать
const FILE_uron[] = "uron.ini"
new bool:bIsAdmin[33]
   
public plugin_init()
{
   RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
}
   
public client_putinserver(id)
            case steam
            {
                TrieSetString(g_tSteamuron, szAuth, szuron);
                g_iTrieSteamSize++;
            }
   
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
{
   if(!is_user_connected(attacker) || victim == attacker)
      return HAM_IGNORED
 
   if( damage_type & DMG_HEGRENADE )
      return HAM_IGNORED
 
   if(bIsAdmin[attacker])
   {
      SetHamParamFloat(4, damage * fMultiDmg)
   }
   return HAM_IGNORED
}
А еще было желание вывести в ини файл и множитель урона. но с этим что то не ыходит.
7 Фев 2019
Доделал до такого. но все равно не компилируеться не пойму
Код:
#include <amxmodx>
#include <hamsandwich>
    
#define DMG_HEGRENADE (1<<24)
#if defined FUNCTION_PLAYER_uron
 
const Float:fMultiDmg = 2.0 // на сколько умножать
const FILE_uron[64] = "uron.ini"
new bool:bIsAdmin[33]
    
public plugin_init()
{
   RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
}
    
public client_putinserver(id)
            case steam
            {
                TrieSetString(g_tSteamuron, szAuth, szuron);
                g_iTrieSteamSize++;
            }
    
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
{
   if(!is_user_connected(attacker) || victim == attacker)
      return HAM_IGNORED
  
   if( damage_type & DMG_HEGRENADE )
      return HAM_IGNORED
  
   if(bIsAdmin[attacker])
   {
      SetHamParamFloat(4, damage * fMultiDmg)
   }
   return HAM_IGNORED
#endif
}
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
denbtr, чем флаг не устраивает? В принципе выдача админки по стимид с флагом и все работает как часы
 
Сообщения
137
Реакции
9
Помог
3 раз(а)
fantom, Ну просто флаг нужен отдельный для этого. а все флаги заняты под функции. и идея была такая чтоб выдавать урон разный каждому. кто слабже играет побольше кто сильнее тому поменьше баланс так сказать.
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
Ну просто флаг нужен отдельный для этого. а все флаги заняты под функции. и идея была такая чтоб выдавать урон разный каждому. кто слабже играет побольше кто сильнее тому поменьше баланс так сказать.
в жизни не поверю что у вас заняты все 32 флага
 
Сообщения
137
Реакции
9
Помог
3 раз(а)
fantom, 32 флага? их же всего 22


abcdefghijklmnopqrstuz
ну еще есть y и v. а больше нету в алфавите( из них половина обеспечена на стандартный функционал кик, бан, слей, иммунитет и т.д. а другие заняты доп прыжком, меню оружия отдельное, аес системой, меню доната и т.д. может просто я чего то не знаю? и возможно есть флаги дополнительные в амх этом
и повторюсь на каждого хотелось бы свой урон иметь. так то понимаю что можно совместить флаги. у меня сейчас так и стоит. но при этом случае нельзя регулировать урон для каждого
7 Фев 2019
а если сделаю по стим ид. то уже можно для каждого ставить урон. или например не ставить хотя флаг будет тот же.
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
denbtr, Их 32, столько же сколько и бит в одном int32
 
Сообщения
137
Реакции
9
Помог
3 раз(а)
fantom, А можно ссылку на просмотр всех и мануал? Я видать что то не знаю просто
 
Сообщения
137
Реакции
9
Помог
3 раз(а)
fantom, Я понял. Но как мне инфу то про это достать. Я даже не знал. Надо наверное в сети покопаться.
 
Сообщения
137
Реакции
9
Помог
3 раз(а)
Minni, По статье вижу 23 лага на админку. ну никак 32 не набираеться. Спасибо всем. Но по плагину это сложно реализовать через стим и со своим уровнем урона?
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
denbtr, чесно говоря я не смогу так по памяти сопоставить символы к числам битов. Да и составить числа на основании битового смещения по памьяти также не смогу. Но суть такова, что нужно к номеру флага (от 0 до 31) добавить код символа 'a'. В итоге получим код нужного нам символа

Проверяйте abcdefghijklmnopqrstuvwxyz{|}~

Причем обратно {|}~ с помощью get_flags не переведутся

P.S. Обновил текст. Немного не так описал способ получения символов
 
Последнее редактирование модератором:
Сообщения
1
Реакции
0
Лучше подскажите как сделать, чтобы можно было купить Доп. Урон?!?
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу