Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.
Модераторы: Subb98, liFe iS GoOD
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.
В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.
Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.
dvahitov95 » 27 авг 2017, 18:41
Как здесь? Нашел в интернете
- Код: Выделить всё
new gfwCreateFinish;
new gfwFinished;
new gfwStarted;
new const giColorRun[][3]=
{
{255, 0, 0},
{50, 0, 0},
{10, 0, 0}
};
new const giColorFinished[][3]=
{
{0, 255, 0},
{0, 50, 0},
{0, 10, 0}
}
new const gszFinish[] = "drfinish";
public cmdFinish(id, level, cid)
{
if(!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED;
gbFinished[id] = true;
new Float:fOrigin[3];
pev(id, pev_origin, fOrigin);
createFinish(id, fOrigin);
gbEntityMoved = true;
return PLUGIN_HANDLED;
}
createFinishI(id, x, y, z)
{
if(!x && !y && !z) return;
new Float:fOrigin[3];
fOrigin[0] = float(x);
fOrigin[1] = float(y);
fOrigin[2] = float(z);
createFinish(id, fOrigin);
}
public createFinish(id, const Float:fOrigin[3])
{
if(pev_valid(gEntFinish))
remove_entity(gEntFinish);
gEntFinish = 0;
if(ExecuteForward(gfwCreateFinish, gEntFinish, id, PrepareArray(_:fOrigin, 3), get_pcvar_num(gcvarDrawFinish)) && pev_valid(gEntFinish))
return;
new ent = create_entity("trigger_multiple");
set_pev(ent, pev_classname, gszFinish);
set_pev(ent, pev_origin, fOrigin);
dllfunc(DLLFunc_Spawn, ent);
entity_set_size(ent, Float:{-40.0, -40.0, -20.0}, Float:{40.0, 40.0, 20.0});
set_pev(ent, pev_solid, SOLID_TRIGGER);
set_pev(ent, pev_movetype, MOVETYPE_NONE);
gEntFinish = ent;
set_pev(ent, pev_nextthink, get_gametime()+BLIFE);
}
public fwThink(ent)
{
if(get_pcvar_num(gcvarDrawFinish))
{
for(new id=0;id<33;id++)
is_user_alive(id) && Create_Box(id, ent);
}
set_pev(ent, pev_nextthink, get_gametime()+BLIFE);
}
public fwTouch(ent, id)
{
if(gfStartRun[id] <= 0.0)
return;
if(!gbFinished[id])
{
Create_Box(id, ent);
gbFinished[id] = true;
fwFinished(id);
}
}
public fwTouch2(id, ent)
{
fwTouch(ent, id);
}
stock Create_Box(id, ent)
{
if(gfStartRun[id] <= 0.0) return;
new Float:maxs[3], Float:mins[3];
pev(ent, pev_absmax, maxs);
pev(ent, pev_absmin, mins);
new Float:fOrigin[3];
pev(ent, pev_origin, fOrigin);
new Float:fOff = -5.0;
new Float:z;
for(new i=0;i<3; i++)
{
z = fOrigin[2]+fOff;
DrawLine(id, i, maxs[0], maxs[1], z, mins[0], maxs[1], z);
DrawLine(id, i, maxs[0], maxs[1], z, maxs[0], mins[1], z);
DrawLine(id, i, maxs[0], mins[1], z, mins[0], mins[1], z);
DrawLine(id, i, mins[0], mins[1], z, mins[0], maxs[1], z);
fOff += 5.0;
}
}
public DrawLine(id, i, Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2)
{
new Float:start[3], Float:stop[3];
start[0] = x1;
start[1] = y1;
start[2] = z1;
stop[0] = x2;
stop[1] = y2;
stop[2] = z2;
Create_Line(id, i, start, stop);
}
stock Create_Line(id, num, const Float:start[], const Float:stop[])
{
new iColor[3];
if(gbFinished[id])
{
iColor[0] = giColorFinished[num][0];
iColor[1] = giColorFinished[num][1];
iColor[2] = giColorFinished[num][2];
}
else
{
iColor[0] = giColorRun[num][0];
iColor[1] = giColorRun[num][1];
iColor[2] = giColorRun[num][2];
}
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, _, id)
write_byte(TE_BEAMPOINTS)
engfunc(EngFunc_WriteCoord, start[0])
engfunc(EngFunc_WriteCoord, start[1])
engfunc(EngFunc_WriteCoord, start[2])
engfunc(EngFunc_WriteCoord, stop[0])
engfunc(EngFunc_WriteCoord, stop[1])
engfunc(EngFunc_WriteCoord, stop[2])
write_short(gsprite)
write_byte(1)
write_byte(5)
write_byte(10*BLIFE)
write_byte(50)
write_byte(0)
write_byte(iColor[0])
write_byte(iColor[1])
write_byte(iColor[2])
write_byte(250)
write_byte(5)
message_end()
}
-
dvahitov95
-
- Сообщения: 133
- Зарегистрирован: 07 авг 2017, 17:48
- Благодарил (а): 16 раз.
- Поблагодарили: 1 раз.
- Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#
NEoMASTERR » 27 авг 2017, 18:57
Что то типа:
1. Создаёте прозрачные чек поинты на карте
2. Делаете таймер который каждые 10 (25.5) сек рассылает всем КТ сообщения SVC_TEMPENTITY с уже нормальной моделькой
3. Ловите касания с прозрачными
Вы должны зарегистрироваться, чтобы видеть ссылки. -> TE_MODEL
write_byte(life in 0.1's) полагаю 255 = 25.5 сек
Вместо TE_MODEL можно любой спрайт, или если порыться еще мб еще какие варианты есть.
-
NEoMASTERR
-
- Сообщения: 832
- Зарегистрирован: 05 янв 2015, 16:38
- Благодарил (а): 43 раз.
- Поблагодарили: 188 раз.
- Опыт программирования: Около года
- Языки программирования: Counter-Strike 1.6
-
dvahitov95 » 27 авг 2017, 19:56
Сложно
-
dvahitov95
-
- Сообщения: 133
- Зарегистрирован: 07 авг 2017, 17:48
- Благодарил (а): 16 раз.
- Поблагодарили: 1 раз.
- Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#
Garey » 29 авг 2017, 04:21
Subb98 писал(а):dvahitov95 писал(а):Фуллпак не охота использовать
Нет другой функции, которая бы позволяла скрывать видимость объекта только у определённых игроков.
pev_groupinfo ?
-
Garey
-
- Сообщения: 85
- Зарегистрирован: 24 дек 2010, 03:12
- Благодарил (а): 4 раз.
- Поблагодарили: 37 раз.
Subb98 » 29 авг 2017, 07:44
Garey, гм, ни разу не использовал / не обращал внимания на этот офсет...
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
-
Subb98
-
- Сообщения: 5485
- Зарегистрирован: 24 мар 2011, 19:42
- Откуда: г. Пермь
- Благодарил (а): 1329 раз.
- Поблагодарили: 2343 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: PHP
DeMNiX » 29 авг 2017, 08:15
инфы о ней мало, но тоже интересно стало. Вечером надо глянуть
Работа с моделями для кс 1.6
Telegram @DeMNiX
vk com/sbalburov
-
DeMNiX
-
- Сообщения: 177
- Зарегистрирован: 24 сен 2011, 17:48
- Благодарил (а): 25 раз.
- Поблагодарили: 37 раз.
- Опыт программирования: Около года
- Языки программирования: Counter-Strike 1.6
Garey » 29 авг 2017, 11:36
Пример:
- Код: Выделить всё
set_pev(1, pev_groupinfo, MaskEnt(1));
set_pev(2, pev_groupinfo, MaskEnt(2));
set_pev(3, pev_groupinfo, MaskEnt(1) | MaskEnt(2));
Вроде так если ненапутал
P.S. - чтука очень хорошая но только один плагин может ее во всю мощь использовать что жаль)
-
Garey
-
- Сообщения: 85
- Зарегистрирован: 24 дек 2010, 03:12
- Благодарил (а): 4 раз.
- Поблагодарили: 37 раз.
DeMNiX » 29 авг 2017, 15:15
осязаемость и отображение объекта по отдельности не задается?
Работа с моделями для кс 1.6
Telegram @DeMNiX
vk com/sbalburov
-
DeMNiX
-
- Сообщения: 177
- Зарегистрирован: 24 сен 2011, 17:48
- Благодарил (а): 25 раз.
- Поблагодарили: 37 раз.
- Опыт программирования: Около года
- Языки программирования: Counter-Strike 1.6
Garey » 29 авг 2017, 15:34
данным способом - нет =)
-
Garey
-
- Сообщения: 85
- Зарегистрирован: 24 дек 2010, 03:12
- Благодарил (а): 4 раз.
- Поблагодарили: 37 раз.
fl0wer » 29 авг 2017, 16:38
Что за бред? Групинфо для щита сделан. Чтобы движок игнорил этот хитбокс, если групинфо 0.
-
fl0wer
-
- Сообщения: 1687
- Зарегистрирован: 27 фев 2011, 21:35
- Откуда: Россия, Ижевск
- Благодарил (а): 240 раз.
- Поблагодарили: 508 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: C++, Java, PAWN
-
Вернуться в Скриптинг
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19