Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 2
  • 1
  • 2
  • »
Автоисправление
Darkeneez Дата: Вторник, 09.07.2013, 16:38:52 | Сообщение # 1
Сообщений: 221
Репутация: 18 [ +/- ]
И снова привет.

Надеюсь сейчас я объясню все нормально.
Вот смотрите, у нас есть команда !asd, при ее вводе мы получаем аргумент, который к примеру равен 30. НО исходя из этого аргумента нам нужно засечь таймер. А ведь таймер работает только с float => аргумент должен выглядеть так 30.0

Можно ли как-нибудь сделать, чтобы шло "автоисправление". т.е чтобы не ввел игрок, таймер будет запускаться правильно.
 
TEIN Дата: Вторник, 09.07.2013, 16:42:07 | Сообщение # 2
Сообщений: 563
Репутация: 78 [ +/- ]
CreateTimer(StringToFloat(arg), Timer)
 
Darkeneez Дата: Вторник, 09.07.2013, 17:10:44 | Сообщение # 3
Сообщений: 221
Репутация: 18 [ +/- ]
Спасибо.

Добавлено (09.07.2013, 17:10:44)
---------------------------------------------
Не буду создавать новую тему. Вот этот участок кода (Detonate(client), крашит сервер, причем раньше этого не было (до обновления)) не подскажите в чем дело?

Код
public Action:Command_Detonate(client, args)
{  
  if(!g_lr)
  {
   if (GetClientTeam(client) == 2)
   {
    if(IsPlayerAlive(client))
    {
     if(g_iready[client])
     {
      if (g_ibomb[client] && b_timer[client] == INVALID_HANDLE)
      {
       b_timer[client] = CreateTimer(3.0, Babah, client);
      }
      else
      {
       PrintToChat(client, "\x07%06X[Jhad]\x07%06XУ вас нет бомбы. Или вы уже взрываетесь (^_^)",  0xFFFF00, 0xFF6600);
      }
     }
     else
     {
      PrintToChat(client, "\x07%06X[Jhad]\x07%06XБомба еще не готова",  0xFFFF00, 0xFF6600);
     }
    }
    else
    {
     PrintToChat(client, "\x07%06X[Jhad]\x07%06XТы не террорист",  0xFFFF00, 0xFF6600);
    }
   }
  }
  else
  {
   PrintToChat(client, "\x07%06X[Jhad]\x07%06XНельзя взрываться во время !lr",  0xFFFF00, 0xFF6600);
  }
   
  return Plugin_Handled;
}

public Action:Babah(Handle:timer, any:client)
{
  Detonate(client);
}

Detonate(client)
{
  // Explosion!
  new ExplosionIndex = CreateEntityByName("env_explosion");
  if (ExplosionIndex != -1)
  {
   new radius = GetConVarInt(g_iradius);

   SetEntProp(ExplosionIndex, Prop_Data, "m_spawnflags", 16384);
   SetEntProp(ExplosionIndex, Prop_Data, "m_iMagnitude", GetConVarInt(g_iDamage));
   SetEntProp(ExplosionIndex, Prop_Data, "m_iRadiusOverride", radius);

   DispatchSpawn(ExplosionIndex);
   ActivateEntity(ExplosionIndex);
    
   new Float:playerEyes[3];
   GetClientEyePosition(client, playerEyes);
   new clientTeam = GetEntProp(client, Prop_Send, "m_iTeamNum");

   TeleportEntity(ExplosionIndex, playerEyes, NULL_VECTOR, NULL_VECTOR);
   SetEntPropEnt(ExplosionIndex, Prop_Send, "m_hOwnerEntity", client);
   SetEntProp(ExplosionIndex, Prop_Send, "m_iTeamNum", clientTeam);

   EmitAmbientSound("ambient/explosions/explode_1.wav", NULL_VECTOR, client);
    
   AcceptEntityInput(ExplosionIndex, "Explode");
   AcceptEntityInput(ExplosionIndex, "Kill");

   ForcePlayerSuicide(client);
    
   g_ibomb[client] = false;
    
   b_timer[client] = INVALID_HANDLE;
  }
}
 
TEIN Дата: Вторник, 09.07.2013, 17:19:08 | Сообщение # 4
Сообщений: 563
Репутация: 78 [ +/- ]
Крашит постоянно? Сделай логирование после каждого условия, поймешь, думаю, в чем проблема
 
Darkeneez Дата: Вторник, 09.07.2013, 17:26:04 | Сообщение # 5
Сообщений: 221
Репутация: 18 [ +/- ]
В том то и дело что в логах чисто.
 
TEIN Дата: Вторник, 09.07.2013, 17:37:18 | Сообщение # 6
Сообщений: 563
Репутация: 78 [ +/- ]
Сделай логирование =\
 
Darkeneez Дата: Вторник, 09.07.2013, 17:43:17 | Сообщение # 7
Сообщений: 221
Репутация: 18 [ +/- ]
Как? Я умею только LogTofile, но не думаю что он поможет.


Сообщение отредактировал Darkeneez - Вторник, 09.07.2013, 17:43:25
 
TEIN Дата: Вторник, 09.07.2013, 17:47:21 | Сообщение # 8
Сообщений: 563
Репутация: 78 [ +/- ]
Делаешь логирование, смотришь, как упадет сервер, идешь и смотришь логи
 
Darkeneez Дата: Вторник, 09.07.2013, 17:52:05 | Сообщение # 9
Сообщений: 221
Репутация: 18 [ +/- ]
Логирование Sourcemod, или в плагин вшить? Если в плагин, то повторюсь я не умею, можешь объяснить?Я умею только LogTofile и все.
 
TEIN Дата: Вторник, 09.07.2013, 17:55:22 | Сообщение # 10
Сообщений: 563
Репутация: 78 [ +/- ]
LogError
 
Darkeneez Дата: Вторник, 09.07.2013, 18:04:16 | Сообщение # 11
Сообщений: 221
Репутация: 18 [ +/- ]
Написало по латински в белом квадратке SOH, даже не копируется для вставки. Думаю я что-то не то сделал верно?

Код
    decl String:error[256];  
  LogError(error);
 
TEIN Дата: Вторник, 09.07.2013, 18:10:02 | Сообщение # 12
Сообщений: 563
Репутация: 78 [ +/- ]
Каждое условие дублируй и все
LogError("Твое условие из кода");
 
Darkeneez Дата: Вторник, 09.07.2013, 18:12:36 | Сообщение # 13
Сообщений: 221
Репутация: 18 [ +/- ]
Т.е

LogError("if (GetClientTeam(client) == 2)");

или вообще так

LogError(" if(g_iready[client])
{
if (g_ibomb[client] && b_timer[client] == INVALID_HANDLE)
{
b_timer[client] = CreateTimer(3.0, Babah, client);
} ");
 
TEIN Дата: Вторник, 09.07.2013, 18:19:42 | Сообщение # 14
Сообщений: 563
Репутация: 78 [ +/- ]
По одному условию дублилуйй
 
Darkeneez Дата: Среда, 10.07.2013, 05:35:21 | Сообщение # 15
Сообщений: 221
Репутация: 18 [ +/- ]
Код
   if(IsPlayerAlive(client))
    {
     if(g_iready[client])
     {
      if (g_ibomb[client] && b_timer[client] == INVALID_HANDLE)
      {
       b_timer[client] = CreateTimer(3.0, Babah, client);
        
       LogError(if (g_ibomb[client] && b_timer[client] == INVALID_HANDLE));
       LogError("if (g_ibomb[client] && b_timer[client] == INVALID_HANDLE)");
       return Plugin_Handled;
      }
      else  
      {
       PrintToChat(client, "\x07%06X[Jhad]\x07%06XУ вас нет бомбы. Или вы уже взрываетесь (^_^)",  0xFFFF00, 0xFF6600);
        
      }
       
      LogError(if(g_iready[client]));
      LogError("if(g_iready[client])");
     }
     else
     {
      PrintToChat(client, "\x07%06X[Jhad]\x07%06XБомба еще не готова",  0xFFFF00, 0xFF6600);
     }
     LogError(if(IsPlayerAlive(client)));
    }


Правильно?

Добавлено (10.07.2013, 05:35:21)
---------------------------------------------
Не работает логирование.

 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: