AMX MOD X
Четверг, 26.12.2024, 17:45:32



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

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

  • Страница 1 из 8
  • 1
  • 2
  • 3
  • 7
  • 8
  • »
Модератор форума: AlMod, slogic  
Помогите переделать плагин
egor_hakerДата: Четверг, 25.06.2009, 19:58:42 | Сообщение # 1
Майор
Группа: Пользователи
Сообщений: 99
Репутация: 0
Статус: Не в сети
нужен плагин для biohazard который позволяет воскресить zombie после смерти несколько раз( то есть чтоб они имели несколько жизней) чтоб пополнить надо убить людей как в zombie panic.
У меня с скриптингом не очень, только месяц опыта, да и то плохо выходит. Вот один из них spawn зомби после смерти и spawn дюдей после смерти за зомби только spawn не имеет ограничения.
Вот код
Code

#include <amxmodx>
#include <biohazard>
#include <fakemeta_util>
#include <hamsandwich>
#include <cstrike>
#define MSG_CANTJOIN "You must be dead!"
#define MSG_GAMENOTSTARTED "The game has not started!"
#define MSG_NOPLACE "There are too many zombies on the server!"
#define MSG_ABUSE "You can not spawn now!"
#define MSG_ANNONCE "+zlive to spawn as Zombie!"
#define MSG_CHOOSETEAM "You must choose a team before spawning!"
#define OFFSET_TEAM         114

new SayText, cvar_zlive
new g_firstime[33]

new  cvar_zlivemode

public plugin_init() {           
      register_plugin("bio_zlive","1.0","bipbip")
      is_biomod_active() ? plugin_init2() : pause("ad")
}

public plugin_init2() {
      cvar_zlive = register_cvar("bh_zlive", "1")

      cvar_zlivemode = register_cvar("bh_zlivemode","1")

}

public client_connect(id) g_firstime[id] = 1;
public client_disconnect(id) g_firstime[id] = 1;

public client_putinserver(id) {
      set_task(1.0,"task_putinserver",id)
        
}
public cheese_killed(id) {
      if (get_pcvar_num(cvar_zlivemode) == 1 && g_firstime[id]==0) {
          set_task(1.0,"task_respawn", id + 994)
          g_firstime[id] = 1
      }
}
public task_putinserver(id) {
      if (is_user_connected(id)) {
          g_firstime[id] = 1
          RegisterHamFromEntity(Ham_Spawn,      id, "cheese_spawn_post", 1)
          RegisterHamFromEntity(Ham_Killed, id, "cheese_killed",1)
          set_task(5.0,"task_annonce",id)
      }
}
public cheese_spawn_post(id) g_firstime[id] = 0;
public task_annonce(id) if (get_pcvar_num(cvar_zlive)) {
      if (g_firstime[id] == 1 ) {
          static CsTeams: team
          team = cs_get_user_team(id)
          if (team != CS_TEAM_SPECTATOR && team != CS_TEAM_UNASSIGNED)   
              if (is_game_started() && !is_user_alive(id)) green_print(id, MSG_ANNONCE)
          set_task(10.0,"task_annonce",id)
      }
}
public task_respawn(tid) {
      new id = tid - 994
      if (canjoin(id)) {
          g_firstime[id]++
          ExecuteHam(Ham_CS_RoundRespawn, id)
          infect_user(id)
          set_task(1.0,"task_infect",id)
      }
}
public task_infect(id) {
      cs_set_user_team2(id,CS_TEAM_T,1)
      client_cmd(id,"slot10")
}

bool: canjoin(id) {
      if (is_user_alive(id))     {
          green_print(id, MSG_CANTJOIN)
          return false
      }
      static CsTeams: team
      team = cs_get_user_team(id)
        
      if (team == CS_TEAM_SPECTATOR || team == CS_TEAM_UNASSIGNED) {
          green_print(id, MSG_CHOOSETEAM)
          return false
      }
        
      if (!is_game_started())    {
          green_print(id, MSG_GAMENOTSTARTED)
          return false
      }
      if (g_firstime[id]==5) {
          green_print(id, MSG_ABUSE)
          return false
      }
      return true;
}
stock cs_set_user_team2(index, {CsTeams,_}:team, update = 1)
{
      set_pdata_int(index, OFFSET_TEAM, _:team)
      set_pev(index, pev_team, _:team)

      if(update)
      {
          static _msg_teaminfo; if(!_msg_teaminfo) _msg_teaminfo = get_user_msgid("TeamInfo")
          static teaminfo[][] = { "UNASSIGNED", "TERRORIST", "CT", "SPECTATOR" }
            
          message_begin(MSG_ALL, _msg_teaminfo)
          write_byte(index)
          write_string(teaminfo[_:team])
          message_end()
      }
      return 1
}
stock green_print(index, const message[])
{
      new finalmsg[192];
      formatex(finalmsg, 191, "^x04[BIO] ^x01%s", message);
      message_begin(MSG_ONE, SayText, _, index);
      write_byte(index);
      write_string(finalmsg);
      message_end();
}


мой сайт
http://cs-mapping.ucoz.net


Сообщение отредактировал egor_haker - Четверг, 25.06.2009, 20:15:18
 
defaultNick8433Дата: Четверг, 25.06.2009, 21:55:19 | Сообщение # 2
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Где-то я видел подобное,также написанное,по-моему на одном сайте(ссылки говорить не буду).Конечно же можно заставить респавнутся зомби,только ума не приложу куда будут записываться спавны зомбяка,если такое вобще возможно.

Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001


Сообщение отредактировал defaultNick8433 - Четверг, 25.06.2009, 21:56:14
 
egor_hakerДата: Четверг, 25.06.2009, 22:01:42 | Сообщение # 3
Майор
Группа: Пользователи
Сообщений: 99
Репутация: 0
Статус: Не в сети
Quote (defaultNick8433)
Где-то я видел подобное,также написанное,по-моему на одном сайте(ссылки говорить не буду).Конечно же можно заставить респавнутся зомби,только ума не приложу куда будут записываться спавны зомбяка,если такое вобще возможно.

Все работает, это мой плагин но я хочу чтобы количество respawn'нов было ограничено и набиралось за убийство.


мой сайт
http://cs-mapping.ucoz.net
 
defaultNick8433Дата: Четверг, 25.06.2009, 22:05:16 | Сообщение # 4
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Это обычныебесконечный респавны?То,что у тебя написано в плагине

Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
 
egor_hakerДата: Четверг, 25.06.2009, 22:35:40 | Сообщение # 5
Майор
Группа: Пользователи
Сообщений: 99
Репутация: 0
Статус: Не в сети
Quote (defaultNick8433)
Это обычныебесконечный респавны?То,что у тебя написано в плагине

Но только для зомби. А люди после respawn'а становятся зомби. Так нужно чтоб было ограничение в количестве respawn'на,
и при убийстве оно повышалось. :D


мой сайт
http://cs-mapping.ucoz.net
 
defaultNick8433Дата: Четверг, 25.06.2009, 22:55:34 | Сообщение # 6
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Code
#include <amxmodx>
#include <fakemeta>

public plugin_init()
{
register_plugin("x","x","x")
register_event("DeathMsg","onDeath","a")
}
public onDeath()
{
new iVictim=read_data(2)
if(cs_get_user_team(iVictim)==CS_TEAM_T)
return PLUGIN_CONTINUE
if(get_user_team(iVictim)==3)
return PLUGIN_CONTINUE
set_pev(iVictim,pev_deadflag,DEAD_RESPAWNABLE)
dllfunc(DLLFunc_think,iVictim)
}

Возрождаются,только зомби.А вот ума не приложу куда спавны запоминать.А может сделать так,когда контр умирает от руки зомба,то он респавнится за команду зомбов потом,как идея?


Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001


Сообщение отредактировал defaultNick8433 - Четверг, 25.06.2009, 22:56:04
 
egor_hakerДата: Пятница, 26.06.2009, 14:48:14 | Сообщение # 7
Майор
Группа: Пользователи
Сообщений: 99
Репутация: 0
Статус: Не в сети
Не работает плагин, много ошибок при compile.

Добавлено (2009-06-26, 2:48 Pm)
---------------------------------------------
У меня biohazard и я хочу зделать его максимум похожим на zombie panic source.


мой сайт
http://cs-mapping.ucoz.net
 
defaultNick8433Дата: Пятница, 26.06.2009, 14:57:00 | Сообщение # 8
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Вот,держи,проверенно,работает.Если контер-террорист умирает,он переходит за зомби и респавнится
Code
#include <amxmodx>  
#include <fakemeta>  
#include <cstrike>

public plugin_init()  
{  
register_plugin("x","x","x")  
register_event("DeathMsg","onDeath","a")  
}  
public onDeath()  
{  
new iVictim=read_data(2)  
if(cs_get_user_team(iVictim)==CS_TEAM_CT)  
cs_set_user_team(iVictim,CS_TEAM_T)
set_task(1.5,"respawn",iVictim)  
}
public respawn(iVictim)
{
set_pev(iVictim,pev_deadflag,DEAD_RESPAWNABLE)
dllfunc(DLLFunc_Think,iVictim)
}


Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
 
egor_hakerДата: Пятница, 26.06.2009, 15:01:26 | Сообщение # 9
Майор
Группа: Пользователи
Сообщений: 99
Репутация: 0
Статус: Не в сети
нет ты не понял, мой плагин рабочий просто там спавн бесконечный.Я хочу чтоб количество спавнов выставлялось в консоле.

мой сайт
http://cs-mapping.ucoz.net
 
defaultNick8433Дата: Пятница, 26.06.2009, 15:03:15 | Сообщение # 10
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
лан придумаю как решить проблему,хотя всё равно не могу представить куда будут записываться спавны,точнее как они будут записываться,приду через час,обдумаю.

Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
 
REDsДата: Пятница, 26.06.2009, 16:37:12 | Сообщение # 11
Лейтенант
Группа: Пользователи
Сообщений: 69
Репутация: 1
Статус: Не в сети
Нудак в чем проблема? Создаешь переменную, присваиваешь ей ноль. При каждом заражении плюсуешь счетчик, при респауне минусуешь.
 
egor_hakerДата: Пятница, 26.06.2009, 16:43:00 | Сообщение # 12
Майор
Группа: Пользователи
Сообщений: 99
Репутация: 0
Статус: Не в сети
А ты поможеш ? blush

мой сайт
http://cs-mapping.ucoz.net
 
REDsДата: Пятница, 26.06.2009, 17:04:18 | Сообщение # 13
Лейтенант
Группа: Пользователи
Сообщений: 69
Репутация: 1
Статус: Не в сети
Quote (egor_haker)
А ты поможеш ?

Код посмотрел, но там вообще ниче не понятно)) Если это был ZP былоб намного легче. А это какойта тупой мод...

 
egor_hakerДата: Пятница, 26.06.2009, 17:09:18 | Сообщение # 14
Майор
Группа: Пользователи
Сообщений: 99
Репутация: 0
Статус: Не в сети
:( Все вроде бы понятно, spawn с командой infect_user.

Добавлено (2009-06-26, 5:09 Pm)
---------------------------------------------
+firstime вместо старого spawntime


мой сайт
http://cs-mapping.ucoz.net


Сообщение отредактировал egor_haker - Пятница, 26.06.2009, 17:14:36
 
REDsДата: Пятница, 26.06.2009, 17:32:30 | Сообщение # 15
Лейтенант
Группа: Пользователи
Сообщений: 69
Репутация: 1
Статус: Не в сети
Code
#include <amxmodx>  
#include <biohazard>  
#include <fakemeta_util>  
#include <hamsandwich>  
#include <cstrike>  
#define MSG_CANTJOIN "You must be dead!"  
#define MSG_GAMENOTSTARTED "The game has not started!"  
#define MSG_NOPLACE "There are too many zombies on the server!"  
#define MSG_ABUSE "You can not spawn now!"  
#define MSG_ANNONCE "+zlive to spawn as Zombie!"  
#define MSG_CHOOSETEAM "You must choose a team before spawning!"  
#define OFFSET_TEAM         114  

new SayText, cvar_zlive  
new g_firstime[33]  
new g_allow_spawn[32]=0

new  cvar_zlivemode  

public plugin_init() {            
       register_plugin("bio_zlive","1.0","bipbip")  
       is_biomod_active() ? plugin_init2() : pause("ad")  
}  

public plugin_init2() {  
       cvar_zlive = register_cvar("bh_zlive", "1")  

       cvar_zlivemode = register_cvar("bh_zlivemode","1")  

}  

public client_connect(id) g_firstime[id] = 1;  
public client_disconnect(id) g_firstime[id] = 1;  

public client_putinserver(id) {  
       set_task(1.0,"task_putinserver",id)  
          
}  
public cheese_killed(id) {  
       if (get_pcvar_num(cvar_zlivemode) == 1 && g_firstime[id]==0) {  
           set_task(1.0,"task_respawn", id + 994)  
           g_firstime[id] = 1  
       }  
}  
public task_putinserver(id) {  
       if (is_user_connected(id)) {  
           g_firstime[id] = 1  
           RegisterHamFromEntity(Ham_Spawn,      id, "cheese_spawn_post", 1)  
           RegisterHamFromEntity(Ham_Killed, id, "cheese_killed",1)  
           set_task(5.0,"task_annonce",id)  
       }  
}  
public cheese_spawn_post(id) g_firstime[id] = 0;  
public task_annonce(id) if (get_pcvar_num(cvar_zlive)) {  
       if (g_firstime[id] == 1 ) {  
           static CsTeams: team  
           team = cs_get_user_team(id)  
           if (team != CS_TEAM_SPECTATOR && team != CS_TEAM_UNASSIGNED)    
               if (is_game_started() && !is_user_alive(id)) green_print(id, MSG_ANNONCE)  
           set_task(10.0,"task_annonce",id)  
       }  
}  
public task_respawn(tid) {  
       new id = tid - 994  
       if(g_allow_spawn[id]>0){
       g_allow_spawn[id]--
       if (canjoin(id)) {  
           g_firstime[id]++  
           ExecuteHam(Ham_CS_RoundRespawn, id)  
           infect_user(id)  
           set_task(1.0,"task_infect",id)  
              }
       }  
}  
public task_infect(id) {  
       cs_set_user_team2(id,CS_TEAM_T,1)  
       client_cmd(id,"slot10")  
}  

bool: canjoin(id) {  
       if (is_user_alive(id))     {  
           green_print(id, MSG_CANTJOIN)  
           return false  
       }  
       static CsTeams: team  
       team = cs_get_user_team(id)  
          
       if (team == CS_TEAM_SPECTATOR || team == CS_TEAM_UNASSIGNED) {  
           green_print(id, MSG_CHOOSETEAM)  
           return false  
       }  
          
       if (!is_game_started())    {  
           green_print(id, MSG_GAMENOTSTARTED)  
           return false  
       }  
       if (g_firstime[id]==5) {  
           green_print(id, MSG_ABUSE)  
           return false  
       }  
       return true;  
}  
stock cs_set_user_team2(index, {CsTeams,_}:team, update = 1)  
{  
       set_pdata_int(index, OFFSET_TEAM, _:team)  
       set_pev(index, pev_team, _:team)  

       if(update)  
       {  
           static _msg_teaminfo; if(!_msg_teaminfo) _msg_teaminfo = get_user_msgid("TeamInfo")  
           static teaminfo[][] = { "UNASSIGNED", "TERRORIST", "CT", "SPECTATOR" }  
              
           message_begin(MSG_ALL, _msg_teaminfo)  
           write_byte(index)  
           write_string(teaminfo[_:team])  
           message_end()  
       }  
       return 1  
}  
stock green_print(index, const message[])  
{  
       new finalmsg[192];  
       formatex(finalmsg, 191, "^x04[BIO] ^x01%s", message);  
       message_begin(MSG_ONE, SayText, _, index);  
       write_byte(index);  
       write_string(finalmsg);  
       message_end();  
}

Чтото так, но хз где в хазарде регестрируется заражение. Поэтому только убавление при респауне

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

AMX Mod X Russian Community © 2006-2024