|
Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/
Помогите переделать плагин
|
|
egor_haker | Дата: Четверг, 25.06.2009, 19:58:42 | Сообщение # 1 |
Майор
Группа: Пользователи
Сообщений: 99
Статус: Не в сети
| нужен плагин для 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
Статус: Не в сети
| Где-то я видел подобное,также написанное,по-моему на одном сайте(ссылки говорить не буду).Конечно же можно заставить респавнутся зомби,только ума не приложу куда будут записываться спавны зомбяка,если такое вобще возможно.
Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
Сообщение отредактировал defaultNick8433 - Четверг, 25.06.2009, 21:56:14 |
|
| |
egor_haker | Дата: Четверг, 25.06.2009, 22:01:42 | Сообщение # 3 |
Майор
Группа: Пользователи
Сообщений: 99
Статус: Не в сети
| Quote (defaultNick8433) Где-то я видел подобное,также написанное,по-моему на одном сайте(ссылки говорить не буду).Конечно же можно заставить респавнутся зомби,только ума не приложу куда будут записываться спавны зомбяка,если такое вобще возможно. Все работает, это мой плагин но я хочу чтобы количество respawn'нов было ограничено и набиралось за убийство.
мой сайт http://cs-mapping.ucoz.net
|
|
| |
defaultNick8433 | Дата: Четверг, 25.06.2009, 22:05:16 | Сообщение # 4 |
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Статус: Не в сети
| Это обычныебесконечный респавны?То,что у тебя написано в плагине
Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
|
|
| |
egor_haker | Дата: Четверг, 25.06.2009, 22:35:40 | Сообщение # 5 |
Майор
Группа: Пользователи
Сообщений: 99
Статус: Не в сети
| Quote (defaultNick8433) Это обычныебесконечный респавны?То,что у тебя написано в плагине Но только для зомби. А люди после respawn'а становятся зомби. Так нужно чтоб было ограничение в количестве respawn'на, и при убийстве оно повышалось.
мой сайт http://cs-mapping.ucoz.net
|
|
| |
defaultNick8433 | Дата: Четверг, 25.06.2009, 22:55:34 | Сообщение # 6 |
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Статус: Не в сети
| 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
Статус: Не в сети
| Не работает плагин, много ошибок при 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
Статус: Не в сети
| Вот,держи,проверенно,работает.Если контер-террорист умирает,он переходит за зомби и респавнится 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
Статус: Не в сети
| нет ты не понял, мой плагин рабочий просто там спавн бесконечный.Я хочу чтоб количество спавнов выставлялось в консоле.
мой сайт http://cs-mapping.ucoz.net
|
|
| |
defaultNick8433 | Дата: Пятница, 26.06.2009, 15:03:15 | Сообщение # 10 |
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Статус: Не в сети
| лан придумаю как решить проблему,хотя всё равно не могу представить куда будут записываться спавны,точнее как они будут записываться,приду через час,обдумаю.
Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
|
|
| |
REDs | Дата: Пятница, 26.06.2009, 16:37:12 | Сообщение # 11 |
Лейтенант
Группа: Пользователи
Сообщений: 69
Статус: Не в сети
| Нудак в чем проблема? Создаешь переменную, присваиваешь ей ноль. При каждом заражении плюсуешь счетчик, при респауне минусуешь.
|
|
| |
egor_haker | Дата: Пятница, 26.06.2009, 16:43:00 | Сообщение # 12 |
Майор
Группа: Пользователи
Сообщений: 99
Статус: Не в сети
| А ты поможеш ?
мой сайт http://cs-mapping.ucoz.net
|
|
| |
REDs | Дата: Пятница, 26.06.2009, 17:04:18 | Сообщение # 13 |
Лейтенант
Группа: Пользователи
Сообщений: 69
Статус: Не в сети
| Quote (egor_haker) А ты поможеш ? Код посмотрел, но там вообще ниче не понятно)) Если это был ZP былоб намного легче. А это какойта тупой мод...
|
|
| |
egor_haker | Дата: Пятница, 26.06.2009, 17:09:18 | Сообщение # 14 |
Майор
Группа: Пользователи
Сообщений: 99
Статус: Не в сети
| Все вроде бы понятно, 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
Статус: Не в сети
| 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(); } Чтото так, но хз где в хазарде регестрируется заражение. Поэтому только убавление при респауне
|
|
| |
| AMX Mod X Russian Community © 2006-2024 | |
|
| |