AMX MOD X
Пятница, 19.04.2024, 11:40:01



Приветствую Вас Гость | RSS
[ Главная ] [ Ошибка в коде - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Ошибка в коде
Ошибка в коде
xPewДата: Вторник, 04.08.2009, 12:45:01 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 4
Репутация: 0
Статус: Не в сети
Привет всем! Не могу понять где именно ошибка в hamsandwich, при убийстве игрок не перекидывается в другую команду, идея такова что играют 3х5, если Т убивает СТ и Теры берут раунд то тот террор который убил переходит за СТ а все СТ идут за Терров , если СТ берут раунд то игра продолжается и никто никуда не переходит.

вот код :

Code
#include <amxmodx>
#include <amxmisc>
#include <fakemeta_util>
#include <cstrike>
#include <hamsandwich>

#pragma semicolon 1

new PLUG[] = "Test vers"
new VERS[] = "0.1";
new AUTH[] = "Test";

new gGame = 0;
new gNewCtIds[3];
new gCtsDied = 0;
new gReason[20];

new bool:gbGameInProgress = false;

public plugin_init()
{
      register_plugin(PLUG, VERS, AUTH);
      register_cvar(PLUG, VERS, FCVAR_SERVER);
        
      register_clcmd("say /go", "start_game", -1);
      RegisterHam(Ham_DeathNotice, "player", "player_death");
}

====START========

public start_game()
{
      if(gbGameInProgress)
      {
          client_print(0, print_chat, "There is allready a game in progress!");
      }
      else
      {
          gbGameInProgress = true;
          restart_round();
      }
}

========= Там где ошибка  ========

public player_death(victim)
{
      switch(gGame)
      {
          case 0: // No Game
          {
              return HAM_SUPERCEDE;
          }
          case 1: // Knife round
          {
              if(cs_get_user_team(victim) == CS_TEAM_CT)
              {
                  gNewCtIds[gCtsDied] = victim;
                  gCtsDied++;
              }
                
              if(gCtsDied == 4)
              {
                  for(new i = 0; i < 8; i++)
                  {
                      cs_set_user_team(i, CS_TEAM_T);
                      make_cts();
                  }
              }
          }
          case 2: // Start game
          {
              if(cs_get_user_team(victim) == CS_TEAM_CT)
              {
                  gNewCtIds[gCtsDied] = victim;
                  gCtsDied++;
              }
                
              if(gCtsDied == 4)
              {
                  for(new i = 0; i < 8; i++)
                  {
                      cs_set_user_team(i, CS_TEAM_T);
                      make_cts();
                  }
              }
          }
      }
      return HAM_SUPERCEDE;
}

============================================

public make_cts()
{
      switch(gGame)
      {
          case 0:
          {
              return PLUGIN_CONTINUE;
          }
          default:
          {
              cs_set_user_team(gNewCtIds[0], CS_TEAM_CT);
              cs_set_user_team(gNewCtIds[1], CS_TEAM_CT);
              cs_set_user_team(gNewCtIds[2], CS_TEAM_CT);
                
              gGame = 2;
          }
      }
        
      restart_round();
      return PLUGIN_CONTINUE;
}

public restart_round()
{
      server_cmd("sv_restartround 1");
}

public block()
{
      return PLUGIN_HANDLED;
}    

Буду очень признателен кто сможет помочь!

Сообщение отредактировал xPew - Вторник, 04.08.2009, 12:56:30
 
PomanoBДата: Вторник, 04.08.2009, 13:11:23 | Сообщение # 2
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
Для убийства следует использовать RegisterHam(Ham_Killed, "player", "player_death")
И надо обнулять gCtsDied при старте раунда


http://romanov4400.mybrute.com
 
xPewДата: Вторник, 04.08.2009, 13:56:15 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 4
Репутация: 0
Статус: Не в сети
эм и как его обнулять подсскажи пожалуйста?

Сообщение отредактировал xPew - Вторник, 04.08.2009, 14:04:07
 
PomanoBДата: Вторник, 04.08.2009, 14:12:10 | Сообщение # 4
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
gCtsDied = 0
:D


http://romanov4400.mybrute.com
 
xPewДата: Вторник, 04.08.2009, 14:29:09 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 4
Репутация: 0
Статус: Не в сети
хм поставил RegisterHam(Ham_Killed, "player", "player_death") , теперь когда убиваешь кого либо или тебя убивают то ты не умираешь просто остаешься стоять с 0хп.
 
PomanoBДата: Вторник, 04.08.2009, 17:02:22 | Сообщение # 6
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
return HAM_SUPERCEDE;
убери


http://romanov4400.mybrute.com
 
xPewДата: Вторник, 04.08.2009, 20:06:54 | Сообщение # 7
Рядовой
Группа: Пользователи
Сообщений: 4
Репутация: 0
Статус: Не в сети
пробовал, и без него и с return PLUGIN_CONTINUE, теперь игроки и сам умираешь нормально только ничего не происходит никто никуда не переходит
 
defaultNick8433Дата: Вторник, 04.08.2009, 20:12:41 | Сообщение # 8
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Вот,регулируй
Code
cs_set_user_team(id,CS_TEAM_CT)

Перевести одно игрка
Code
cs_set_user_team2(id,CS_TEAM_T)

Перевести всю команду


Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
 
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Ошибка в коде
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024