AMX MOD X
Пятница, 26.04.2024, 12:26:59



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

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

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Проблема с death_event (Попытка зделать скрипт на мультикилы)
Проблема с death_event
DESTROYERДата: Четверг, 26.03.2009, 22:54:04 | Сообщение # 1
Сержант
Группа: Пользователи
Сообщений: 39
Репутация: 0
Статус: Не в сети
О плагине: При заходе на сервер игроку показывается меню с выбором типа мультикилов.
После выбора звука у каждова игрока проигрываются те типы мультикилов которые он выбрал.

Суть вроди ясна. Теперь к проблеме.

Проблема: выбрав определенный звук, и убив достаточное количество игроков, у игрока проигрывается не 1 звука 2
причем проигрывается
1-тот который он выбрал
2-тот который идет по умолчанию (если вдруг игрок проигнорировал меню)

часть кода:

Code

public death_event(id) {
   new killer = read_data(1);
   new victim = read_data(2);
   kills[killer] += 1;
   kills[victim] = 0;
   deaths[killer] = 0;
   deaths[victim] += 1;
        
   for (new i = 0; i < 100; i++) {
   if (kills[killer] == levels[i]) {
      
    new name[33];
    get_user_name(killer, name, 32);
    new players[32],num,o
    get_players(players,num)
    for(o = 0; o <= num; o++)
    {
     new ids = players[o]
     set_hudmessage(150, 0, 200, 0.05, 0.65, 1, 6.0, 5.0, 0.02, 5.0, 4)
     if (kills[killer] >= 27) {
      set_hudmessage(255, 0, 100, -1.0, 0.3, 1, 6.0, 6.0, 0.02, 5.0, 4)
      show_hudmessage(ids, "%s: IS WHICKED SICK!!!^n 6AJIE3HEHHO 3JIOu" , name);
      client_cmd(ids, "spk %s/whickedsick", soundspath[setpath[ids]]);
     }
     show_hudmessage(ids, messages[i], name);
     client_cmd(ids, "spk %s/%s", soundspath[setpath[ids]], soundsname[i]);
    }
   }
   if (deaths[victim] == levels[i]) {
    new name[33];
    get_user_name(victim, name, 32);
    set_hudmessage(0, 100, 200, 0.05, 0.75, 2, 6.0, 5.0, 0.02, 5.0,5)
    if (deaths[victim] >= 19) {
     set_hudmessage(0, 100, 200, -1.0, 0.85, 1, 6.0, 6.0, 0.02, 5.0, 5)
     show_hudmessage(0, "%s 3A6bIJI KAK BKJIy4AETC9I 4uT", name);
    }
    show_hudmessage(0, dedmes[i], name);
   }
   }
   return PLUGIN_CONTINUE
}

Если непонятно я вложил скрипт

Получилось решить проблему с помощью исключения (если игрок невыбрал звук) то вобще нечего небудет проигрываться...
но всеравно как факт почемуже проигрывалось 2 раза?

Прикрепления: ds_ut_killing_s.sma (10.8 Kb)


пропиши (Abort;) в совей жизни

Сообщение отредактировал DESTROYER - Четверг, 26.03.2009, 23:04:50
 
PAHANCSДата: Пятница, 27.03.2009, 10:11:36 | Сообщение # 2
Полковник
Группа: Пользователи
Сообщений: 183
Репутация: 4
Статус: Не в сети
Не очень разбираюсь, но может попробуеш так :

Code


public death_event(id) {
  new killer = read_data(1);
  new victim = read_data(2);
  kills[killer] += 1;
  kills[victim] = 0;
  deaths[killer] = 0;
  deaths[victim] += 1;
      
  for (new i = 0; i < 100; i++) {
  kills_killer(killer, i)
  deaths_victim(victim, i)
  }
  return PLUGIN_CONTINUE
}

public kills_killer(killer, i) {
  if (kills[killer] == levels[i]) {
    
   new name[33];
   get_user_name(killer, name, 32);
   new players[32],num,o
   get_players(players,num)
   for(o = 0; o <= num; o++)
   {
    new ids = players[o]
    set_hudmessage(150, 0, 200, 0.05, 0.65, 1, 6.0, 5.0, 0.02, 5.0, 4)
    if (kills[killer] >= 27) {
     set_hudmessage(255, 0, 100, -1.0, 0.3, 1, 6.0, 6.0, 0.02, 5.0, 4)
     show_hudmessage(ids, "%s: IS WHICKED SICK!!!^n 6AJIE3HEHHO 3JIOu" , name);
     client_cmd(ids, "spk %s/whickedsick", soundspath[setpath[ids]]);
     return PLUGIN_CONTINUE
    }
    show_hudmessage(ids, messages[i], name);
    client_cmd(ids, "spk %s/%s", soundspath[setpath[ids]], soundsname[i]);
   }
  }
  return PLUGIN_CONTINUE
}

public deaths_victim(victim, i) {
  if (deaths[victim] == levels[i]) {
   new name[33];
   get_user_name(victim, name, 32);
   set_hudmessage(0, 100, 200, 0.05, 0.75, 2, 6.0, 5.0, 0.02, 5.0,5)
   if (deaths[victim] >= 19) {
    set_hudmessage(0, 100, 200, -1.0, 0.85, 1, 6.0, 6.0, 0.02, 5.0, 5)
    show_hudmessage(0, "%s 3A6bIJI KAK BKJIy4AETC9I 4uT", name);
    return PLUGIN_CONTINUE
   }
   show_hudmessage(0, dedmes[i], name);
  }
  return PLUGIN_CONTINUE
}

и мне кажется 2 сообщения одновременно не покажется. :)


PAHANCS
 
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Проблема с death_event (Попытка зделать скрипт на мультикилы)
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024