Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Использование плагина одной из команд

Статус пользователя HALBeC
сообщение 28.6.2014, 20:58
Сообщение #1
Стаж: 12 лет

Сообщений: 29
Благодарностей: 4
Полезность: 18

Поскольку разбираюсь в плагинах не очень, то обращаюсь к вам. Что нужно сделать, точнее прописать, чтобы плагин работал только у 1 из команд(CT/T)? Все это конечно в CS.
Вот пример плагина. Если ставишь доступ только администраторам, то администраторы обеих команд могут его использовать.


Пример

Код:
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <zombieplague>

#define PLUGIN "[ZP] Extra : Parachute"
#define VERSION "0.3"
#define AUTHOR "Fry!"

new const parachute_model[] = "models/kriliya.mdl"

new g_item_name[] = "Крылья \r[New]"
new g_itemid_parachute

new bool:has_parachute[33]
new para_ent[33]
new g_para_3rd_view
new g_ppurchase, g_parachute_FallSpeed, g_parachute_Detach

public plugin_init()
{
register_plugin(PLUGIN, VERSION , AUTHOR)

register_cvar("zp_extra_parachute",VERSION,FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY)

g_para_3rd_view = register_cvar("zp_3rd_person_view", "1")
g_parachute_FallSpeed = register_cvar("zp_parachute_fallspeed", "100")
g_parachute_Detach = register_cvar("zp_parachute_detach", "1")
g_ppurchase = register_cvar("zp_parachute_cost", "15")

g_itemid_parachute = zp_register_extra_item(g_item_name, get_pcvar_num(g_ppurchase), 0)

register_event("ResetHUD", "newSpawn", "be")
register_event("DeathMsg", "death_event", "a")

register_forward(FM_PlayerPreThink, "fw_PreThink")
}

public plugin_precache()
engfunc(EngFunc_PrecacheModel, parachute_model)

public client_connect(id)
{
parachute_reset(id)
has_parachute[id] = false
}

public client_disconnect(id)
{
parachute_reset(id)
has_parachute[id] = false
}

public death_event()
{
new i = read_data(2)

parachute_reset(i)
has_parachute[i] = false
set_view(i, CAMERA_NONE)
}

public zp_extra_item_selected(player, itemid)
{
if (itemid == g_itemid_parachute)
{
has_parachute[player] = true
}
}

parachute_reset(id)
{
if (para_ent[id] > 0)
{
if ( pev_valid(para_ent[id]) )
engfunc(EngFunc_RemoveEntity, para_ent[id])
}

has_parachute[id] = false
para_ent[id] = 0
}

public newSpawn(id)
{
parachute_reset(id)
}

public fw_PreThink(id)
{
//parachute.mdl animation information
//0 - deploy - 84 frames
//1 - idle - 39 frames
//2 - detach - 29 frames

if (!is_user_alive(id) || !has_parachute[id] && !zp_get_user_zombie(id))
return

new Float:fallspeed = get_pcvar_float(g_parachute_FallSpeed) * -1.0
new Float:frame

new button = pev(id, pev_button)
new oldbutton = pev(id, pev_oldbuttons)
new flags = pev(id, pev_flags)

if (para_ent[id] > 0 && (flags & FL_ONGROUND))
{
set_view(id, CAMERA_NONE)

if (get_pcvar_num(g_parachute_Detach))
{
if ( pev(para_ent[id],pev_sequence) != 2 )
{
set_pev(para_ent[id], pev_sequence, 2)
set_pev(para_ent[id], pev_gaitsequence, 1)
set_pev(para_ent[id], pev_frame, 0.0)
set_pev(para_ent[id], pev_fuser1, 0.0)
set_pev(para_ent[id], pev_animtime, 0.0)
return
}

pev(para_ent[id],pev_fuser1, frame)
frame += 2.0
set_pev(para_ent[id],pev_fuser1,frame)
set_pev(para_ent[id],pev_frame,frame)

if ( frame > 254.0 )
{
engfunc(EngFunc_RemoveEntity, para_ent[id])
para_ent[id] = 0
}
}
else
{
engfunc(EngFunc_RemoveEntity, para_ent[id])
para_ent[id] = 0
}
return
}

if (button & IN_USE)
{
new Float:velocity[3]
pev(id, pev_velocity, velocity)

if (get_pcvar_num(g_para_3rd_view) == 1)
{
set_view(id, CAMERA_NONE)
}
if (get_pcvar_num(g_para_3rd_view) == 2)
{
set_view(id, CAMERA_3RDPERSON)
}

if (velocity[2] < 0.0)
{
if(para_ent[id] <= 0)
{
para_ent[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))

if(para_ent[id] > 0)
{
set_pev(para_ent[id],pev_classname,"parachute")
set_pev(para_ent[id], pev_aiment, id)
set_pev(para_ent[id], pev_owner, id)
set_pev(para_ent[id], pev_movetype, MOVETYPE_FOLLOW)
engfunc(EngFunc_SetModel, para_ent[id], parachute_model)
set_pev(para_ent[id], pev_sequence, 0)
set_pev(para_ent[id], pev_gaitsequence, 1)
set_pev(para_ent[id], pev_frame, 0.0)
set_pev(para_ent[id], pev_fuser1, 0.0)
}
}

if (para_ent[id] > 0)
{
set_pev(id, pev_sequence, 3)
set_pev(id, pev_gaitsequence, 1)
set_pev(id, pev_frame, 1.0)
set_pev(id, pev_framerate, 1.0)

velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed
set_pev(id, pev_velocity, velocity)

if (pev(para_ent[id],pev_sequence) == 0)
{
pev(para_ent[id],pev_fuser1, frame)
frame += 1.0
set_pev(para_ent[id],pev_fuser1,frame)
set_pev(para_ent[id],pev_frame,frame)

if (frame > 100.0)
{
set_pev(para_ent[id], pev_animtime, 0.0)
set_pev(para_ent[id], pev_framerate, 0.4)
set_pev(para_ent[id], pev_sequence, 1)
set_pev(para_ent[id], pev_gaitsequence, 1)
set_pev(para_ent[id], pev_frame, 0.0)
set_pev(para_ent[id], pev_fuser1, 0.0)
}
}
}
}

else if (para_ent[id] > 0)
{
engfunc(EngFunc_RemoveEntity, para_ent[id])
para_ent[id] = 0
}
}

else if ((oldbutton & IN_USE) && para_ent[id] > 0 )
{
engfunc(EngFunc_RemoveEntity, para_ent[id])
para_ent[id] = 0
}
}



Отредактировал: Bloo, - 28.6.2014, 21:12
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
voed
сообщение 28.6.2014, 21:08
Сообщение #2
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Тема создана не в том разделе.

Используйте натив cs_get_user_team



CS_TEAM_T - террористы, CS_TEAM_CT - контер-террористы

Отредактировал: voed, - 28.6.2014, 21:14
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 28.6.2014, 21:11
Сообщение #3
Стаж: 12 лет

Сообщений: 1970
Благодарностей: 2423
Полезность: 0

voed,
да вы батенька, наркоман...
команда в коннекте CS_TEAM_UNASSIGNED да и то скорее всего нету команды..

Отредактировал: trollface, - 28.6.2014, 21:12
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 28.6.2014, 21:12
Сообщение #4
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Цитата(trollface @ 28.6.2014, 21:11) *
voed,
да вы батенька, наркоман...
команда в коннекте CS_TEAM_UNASSIGNED

Точно, уже вспомнил, что это ж коннект только
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 28.6.2014, 21:14
Сообщение #5
Стаж: 12 лет

Сообщений: 1970
Благодарностей: 2423
Полезность: 0

voed,
скажу больше, даже в putinserver еще неизвестна команда (CS_TEAM_UNASSIGNED не в счет)=|
проверять команду можно только после jointeam, но никак не раньше

Отредактировал: trollface, - 28.6.2014, 21:19
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 28.6.2014, 21:20
Сообщение #6
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Цитата(trollface @ 28.6.2014, 21:14) *
voed,
скажу больше, даже в putinserver еще неизвестна команда =|
проверять команду можно только после jointeam, но никак не раньше

Да вспомнил я уже, не оффтопим smile.gif
п.с. так должно работать:


Скрытый текст
Код:




public fw_PreThink(id)
{
//parachute.mdl animation information
//0 - deploy - 84 frames
//1 - idle - 39 frames
//2 - detach - 29 frames


new CsTeams:userTeam = cs_get_user_team(id)

if (!is_user_alive(id) || !has_parachute[id] && !zp_get_user_zombie(id) && !(userTeam == CS_TEAM_CT))
return

new Float:fallspeed = get_pcvar_float(g_parachute_FallSpeed) * -1.0
new Float:frame

new button = pev(id, pev_button)
new oldbutton = pev(id, pev_oldbuttons)
new flags = pev(id, pev_flags)

if (para_ent[id] > 0 && (flags & FL_ONGROUND))
{
set_view(id, CAMERA_NONE)

if (get_pcvar_num(g_parachute_Detach))
{
if ( pev(para_ent[id],pev_sequence) != 2 )
{
set_pev(para_ent[id], pev_sequence, 2)
set_pev(para_ent[id], pev_gaitsequence, 1)
set_pev(para_ent[id], pev_frame, 0.0)
set_pev(para_ent[id], pev_fuser1, 0.0)
set_pev(para_ent[id], pev_animtime, 0.0)
return
}

pev(para_ent[id],pev_fuser1, frame)
frame += 2.0
set_pev(para_ent[id],pev_fuser1,frame)
set_pev(para_ent[id],pev_frame,frame)

if ( frame > 254.0 )
{
engfunc(EngFunc_RemoveEntity, para_ent[id])
para_ent[id] = 0
}
}
else
{
engfunc(EngFunc_RemoveEntity, para_ent[id])
para_ent[id] = 0
}
return
}

if (button & IN_USE)
{
new Float:velocity[3]
pev(id, pev_velocity, velocity)

if (get_pcvar_num(g_para_3rd_view) == 1)
{
set_view(id, CAMERA_NONE)
}
if (get_pcvar_num(g_para_3rd_view) == 2)
{
set_view(id, CAMERA_3RDPERSON)
}

if (velocity[2] < 0.0)
{
if(para_ent[id] <= 0)
{
para_ent[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))

if(para_ent[id] > 0)
{
set_pev(para_ent[id],pev_classname,"parachute")
set_pev(para_ent[id], pev_aiment, id)
set_pev(para_ent[id], pev_owner, id)
set_pev(para_ent[id], pev_movetype, MOVETYPE_FOLLOW)
engfunc(EngFunc_SetModel, para_ent[id], parachute_model)
set_pev(para_ent[id], pev_sequence, 0)
set_pev(para_ent[id], pev_gaitsequence, 1)
set_pev(para_ent[id], pev_frame, 0.0)
set_pev(para_ent[id], pev_fuser1, 0.0)
}
}

if (para_ent[id] > 0)
{
set_pev(id, pev_sequence, 3)
set_pev(id, pev_gaitsequence, 1)
set_pev(id, pev_frame, 1.0)
set_pev(id, pev_framerate, 1.0)

velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed
set_pev(id, pev_velocity, velocity)

if (pev(para_ent[id],pev_sequence) == 0)
{
pev(para_ent[id],pev_fuser1, frame)
frame += 1.0
set_pev(para_ent[id],pev_fuser1,frame)
set_pev(para_ent[id],pev_frame,frame)

if (frame > 100.0)
{
set_pev(para_ent[id], pev_animtime, 0.0)
set_pev(para_ent[id], pev_framerate, 0.4)
set_pev(para_ent[id], pev_sequence, 1)
set_pev(para_ent[id], pev_gaitsequence, 1)
set_pev(para_ent[id], pev_frame, 0.0)
set_pev(para_ent[id], pev_fuser1, 0.0)
}
}
}
}

else if (para_ent[id] > 0)
{
engfunc(EngFunc_RemoveEntity, para_ent[id])
para_ent[id] = 0
}
}

else if ((oldbutton & IN_USE) && para_ent[id] > 0 )
{
engfunc(EngFunc_RemoveEntity, para_ent[id])
para_ent[id] = 0
}
}


CS_TEAM_CT и CS_TEAM_T соответственно
Не забываем include cstrike
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя HALBeC
сообщение 28.6.2014, 21:28
Сообщение #7
Стаж: 12 лет

Сообщений: 29
Благодарностей: 4
Полезность: 18

У меня еще 1, последний вопрос)) Вы этому где обучились? В институте/технаре/крусах/ по каким-либо книгам, если по книгам, то прошу написать названия и авторов, буду очень благодарен)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 28.6.2014, 21:33
Сообщение #8
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Цитата(HALBeC @ 28.6.2014, 21:28) *
У меня еще 1, последний вопрос)) Вы этому где обучились? В институте/технаре/крусах/ по каким-либо книгам, если по книгам, то прошу написать названия и авторов, буду очень благодарен)

Для начала изучите любую книгу по основам программирования, желательно C/C++
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 28.6.2014, 23:14
Сообщение #9


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(HALBeC @ 28.6.2014, 23:28) *
У меня еще 1, последний вопрос)) Вы этому где обучились? В институте/технаре/крусах/ по каким-либо книгам, если по книгам, то прошу написать названия и авторов, буду очень благодарен)

чтобы что-то написать на amxx достаточно забытых школьных знаний
это скриптовый язык
почитай http://amxxmodx.ru/
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: