Новые плагины для AMX Mod X, которые были добавлены в базу плагинов нашего форума. Плагины еще не утвеждены администратором/модератором.
Модератор: Leonidddd
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.
Данный раздел форума служит для добавления новых плагинов в базу нашего форума. После того, как администратор/модератор утвердит плагин, он будет перемещен в раздел "Утвежденные плагины".
Правила при добавлении новых плагинов:
1. При вставке кода плагина необходимо использовать тег [pawn], в противном случае, если тег [pawn] не отображает ваш код, можно использовать тег [code].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. Обязательно выкладывайте исходник sma плагина. Запрещено выкладывать amxx файл.
4. Обязательно указывайте настоящих авторов плагина, если вы использовали чьи-то наработки или функции, указывайте их авторов в сообщении.
5. Необходимо заполнять детальную информацию о плагине (версию, настройки, используемые модули, список изменений и другую).
MayroN » 28 май 2018, 04:00
Таинственный сундук CS 1.6
Авторы: Sneaky.amxx, kHEDВерсия: 1.0Размер: 110,79 KbОписание: На карте появляються сундуки,при откритии которого,Вы можете получить Рандомное оружие.Полезно,когда игрок на "мили" )
Настройки: Для роботы плагина нужно создать 7 точек спавна на карте.
- Код: Выделить всё
Квар : "mchest_spawn_type", "1" | 0 - нет спавна | 1 - раунд | 2 - по таймеру |
Квар : "mchest_spawn_time", "60" | в секундах
Квар : "mchest_item_disappear_time", "5" | время сундука ( затем исчезнет )
От себя добавлю: Модель в игре немного великовата.Можно по желанию уменьшить,но тогда прейдёться положение оружия опустить немного соответственно
Можете неблагодарить : )
P.S.Если понравиться - выкладу другой вариант плагина с коробкой
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
MayroN
-
- Сообщения: 673
- Зарегистрирован: 10 окт 2010, 18:23
- Откуда: Украина, г. Белая Церковь
- Благодарил (а): 149 раз.
- Поблагодарили: 86 раз.
- Опыт программирования: Около года
- Языки программирования: На которых говорю...
-
borisdanko » 12 окт 2021, 11:21
Майрон привет!хотел добавить свое оружие,ошибка при компиляции.не мог бы подсказать где я допустил ошибку?подскажи пожалуйста как должно быть?и возможно вообще туда добавить например броню,гранату HE?слепу,дым.
- Код: Выделить всё
new const Mileage_Item[MAX_ITEM][] =
{
"models/w_ak47.mdl",
"models/w_m4a1.mdl",
"models/w_galil.mdl",
"models/w_mp5.mdl",
"models/w_p90.mdl",
"models/w_deagle.mdl"
}
new Float:MyOrigin[3], Float:MyAngles[3], g_PressBox[33]
new Float:ChestOrigin[MAX_CHEST][3], Float:ChestAngles[MAX_CHEST][3]
new g_Cvar_SpawnType, g_Cvar_SpawnTime, g_Cvar_ItemDisappear
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("HLTV", "Event_NewRound", "a", "1=0", "2=0")
register_touch(CHEST_CLASSNAME, "player", "fw_Touch")
register_think(CHEST_CLASSNAME, "fw_Think")
g_Cvar_SpawnType = register_cvar("mchest_spawn_type", "1") g_Cvar_SpawnTime = register_cvar("mchest_spawn_time", "60") g_Cvar_ItemDisappear = register_cvar("mchest_item_disappear_time", "5")
set_task(get_pcvar_float(g_Cvar_SpawnTime), "SpawnTime_Check", TASK_SPAWN)
register_clcmd("mileage_chest", "BaseOrigin_Handle", ADMIN_ADMIN)
}
public plugin_precache()
{
precache_model(CHEST_MODEL)
precache_sound(CHEST_SOUND)
precache_sound(CHEST_SOUND2)
for(new i = 0; i < MAX_CHEST; i++)
precache_model(Mileage_Item[i])
Load_MapData()
}
public SpawnTime_Check()
{
if(get_pcvar_num(g_Cvar_SpawnType) == 2)
{
remove_entity_name(CHEST_CLASSNAME)
Create_MileageChest()
}
set_task(get_pcvar_float(g_Cvar_SpawnTime), "SpawnTime_Check", TASK_SPAWN)
}
public Event_NewRound()
{
if(get_pcvar_num(g_Cvar_SpawnType) == 1)
{
remove_entity_name(CHEST_CLASSNAME)
Create_MileageChest()
}
}
public Create_MileageChest()
{
static Chest; Chest = create_entity("info_target")
if(!pev_valid(Chest)) return
static Rand; Rand = random(MAX_CHEST)
set_pev(Chest, pev_origin, ChestOrigin[Rand])
set_pev(Chest, pev_angles, ChestAngles[Rand])
set_pev(Chest, pev_classname, CHEST_CLASSNAME)
engfunc(EngFunc_SetModel, Chest, CHEST_MODEL)
set_pev(Chest, pev_gamestate, 1)
set_pev(Chest, pev_solid, SOLID_BBOX)
set_pev(Chest, pev_movetype, MOVETYPE_NONE)
set_pev(Chest, pev_iuser1, 1) set_pev(Chest, pev_iuser2, 0) set_pev(Chest, pev_iuser3, 0)
fm_set_rendering(Chest, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 250)
new Float:maxs[3] = {30.0, 30.0, 50.0}
new Float:mins[3] = {-30.0, -30.0, 0.0}
engfunc(EngFunc_SetSize, Chest, mins, maxs)
set_pev(Chest, pev_animtime, get_gametime())
set_pev(Chest, pev_framerate, 1.0)
set_pev(Chest, pev_sequence, 0)
set_pev(Chest, pev_nextthink, get_gametime() + 0.1)
drop_to_floor(Chest)
}
public fw_Touch(Ent, id)
{
if(!pev_valid(Ent) || !is_user_alive(id))
return
}
public fw_Think(Ent)
{
if(!pev_valid(Ent))
return
if(!pev(Ent, pev_iuser1) && !pev(Ent, pev_iuser2))
{
static Item; Item = pev(Ent, pev_iuser4)
static User; User = pev(Ent, pev_iuser3)
if(pev_valid(Item))
{
static Float:Time; pev(Ent, pev_fuser2, Time)
if(get_gametime() >= Time)
{
remove_entity(Item)
} else {
static Victim; Victim = -1
static Float:Origin[3]; pev(Ent, pev_origin, Origin)
while((Victim = find_ent_in_sphere(Victim, Origin, 48.0)) != 0)
{
if(!is_user_alive(Victim))
continue
if(Victim != User)
continue
static Button; Button = pev(Victim, pev_button)
if(Button & IN_USE)
{
Obtain_Item(Victim, pev(Item, pev_enemy))
remove_entity(Item)
}
}
}
} else {
if(!pev(Ent, pev_enemy))
{
set_pev(Ent, pev_animtime, get_gametime())
set_pev(Ent, pev_framerate, 1.0)
set_pev(Ent, pev_sequence, 3)
set_pev(Ent, pev_enemy, 1)
set_pev(Ent, pev_nextthink, get_gametime() + 1.5)
return
} else {
static Float:Amount; pev(Ent, pev_renderamt, Amount)
if(Amount > 0.0)
{
set_pev(Ent, pev_rendermode, kRenderTransAlpha)
set_pev(Ent, pev_renderamt, Amount - 10.0)
} else {
remove_entity(Ent)
return
}
set_pev(Ent, pev_nextthink, get_gametime() + 0.1)
return
}
}
set_pev(Ent, pev_nextthink, get_gametime() + 0.1)
return
}
if(pev(Ent, pev_iuser2))
{
static Float:Time; pev(Ent, pev_fuser1, Time)
static Item; Item = pev(Ent, pev_iuser4)
if(get_gametime() >= Time)
{
if(pev_valid(Item))
{
static ID; ID = random(MAX_ITEM)
engfunc(EngFunc_SetModel, Item, Mileage_Item[ID])
set_pev(Item, pev_enemy, ID)
set_pev(Ent, pev_iuser2, 0)
set_pev(Ent, pev_fuser2, get_gametime() + get_pcvar_float(g_Cvar_ItemDisappear))
emit_sound(Ent, CHAN_BODY, CHEST_SOUND2, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
set_pev(Item, pev_velocity, {0.0, 0.0, 0.0})
set_pev(Item, pev_movetype, MOVETYPE_NONE)
}
} else {
if(pev_valid(Item))
{
static ID; ID = pev(Item, pev_enemy)
ID++; if(ID >= MAX_ITEM) ID = 0
engfunc(EngFunc_SetModel, Item, Mileage_Item[ID])
set_pev(Item, pev_enemy, ID)
}
}
set_pev(Ent, pev_nextthink, get_gametime() + 0.25)
return
}
static Victim; Victim = -1
static Float:Origin[3]; pev(Ent, pev_origin, Origin)
while((Victim = find_ent_in_sphere(Victim, Origin, 48.0)) != 0)
{
if(!is_user_alive(Victim))
continue
static Button; Button = pev(Victim, pev_button)
if(Button & IN_USE) Chest_Trigger(Ent, Victim)
}
set_pev(Ent, pev_nextthink, get_gametime() + 0.1)
}
public Obtain_Item(id, ItemID)
{
switch(ItemID)
{
case 0: fm_give_item(id, "weapon_ak47")
case 1: fm_give_item(id, "weapon_m4a1")
case 2: fm_give_item(id, "weapon_galil")
case 3: fm_give_item(id, "weapon_mp5")
case 4: fm_give_item(id, "weapon_p90")
case 5: fm_give_item(id, "weapon_deagle")
}
}
public Chest_Trigger(Ent, id)
{
if(!pev(Ent, pev_iuser1))
return
emit_sound(Ent, CHAN_BODY, CHEST_SOUND, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
set_pev(Ent, pev_iuser1, 0) set_pev(Ent, pev_iuser2, 1) set_pev(Ent, pev_iuser3, id) set_pev(Ent, pev_fuser1, get_gametime() + 6.0)
set_pev(Ent, pev_animtime, get_gametime())
set_pev(Ent, pev_framerate, 1.0)
set_pev(Ent, pev_sequence, 1)
static Item; Item = Create_Item(Ent)
set_pev(Ent, pev_iuser4, Item)
}
public Create_Item(Ent)
{
static Item; Item = create_entity("info_target")
if(!pev_valid(Item)) return -1
static Float:Origin[3]; pev(Ent, pev_origin, Origin)
static Float:Angles[3]; pev(Ent, pev_angles, Angles)
Origin[2] += 6.0
Angles[0] -= 45.0
set_pev(Item, pev_origin, Origin)
set_pev(Item, pev_angles, Angles)
set_pev(Item, pev_classname, "mitem")
engfunc(EngFunc_SetModel, Item, Mileage_Item[0])
set_pev(Item, pev_enemy, 0)
set_pev(Item, pev_gamestate, 1)
set_pev(Item, pev_solid, SOLID_TRIGGER)
set_pev(Item, pev_movetype, MOVETYPE_FLY)
set_pev(Item, pev_gravity, 0.01)
new Float:maxs[3] = {6.0, 6.0, 6.0}
new Float:mins[3] = {-6.0, -6.0, 0.0}
engfunc(EngFunc_SetSize, Item, mins, maxs)
set_pev(Item, pev_nextthink, get_gametime() + 0.1)
static Float:Vel[3];
Vel[2] = 7.5
set_pev(Item, pev_velocity, Vel)
return Item
}
public BaseOrigin_Handle(id)
{
static MenuTitle[32]; formatex(MenuTitle, sizeof(MenuTitle), "\y'Mileage Chest' Menu\w")
new MenuId; MenuId = menu_create(MenuTitle, "MenuHandle_BaseOrigin")
static Data[64], Num[4]
g_PressBox[id] = -1
formatex(Data, 63, "Current Origin/Angles \r[%i %i %i] [%i %i %i]\w^n", floatround(MyOrigin[0]), floatround(MyOrigin[1]), floatround(MyOrigin[2]), floatround(MyAngles[0]), floatround(MyAngles[1]), floatround(MyAngles[2]))
menu_additem(MenuId, Data, "get")
for(new i = 0; i < MAX_CHEST; i++)
{
if(MAX_CHEST - 1 == i) formatex(Data, 63, "\yChest %i:\w Origin/Angles \r[%i %i %i] [%i %i %i]\w^n", i+1, floatround(ChestOrigin[i][0]), floatround(ChestOrigin[i][1]), floatround(ChestOrigin[i][2]), floatround(ChestAngles[i][0]), floatround(ChestAngles[i][1]), floatround(ChestAngles[i][2]))
else formatex(Data, 63, "\yChest %i:\w Origin/Angles \r[%i %i %i] [%i %i %i]\w", i+1, floatround(ChestOrigin[i][0]), floatround(ChestOrigin[i][1]), floatround(ChestOrigin[i][2]), floatround(ChestAngles[i][0]), floatround(ChestAngles[i][1]), floatround(ChestAngles[i][2]))
num_to_str(i, Num, 3)
menu_additem(MenuId, Data, Num)
}
menu_additem(MenuId, "\rSave Data\w", "save")
menu_display(id, MenuId, 0)
}
public MenuHandle_BaseOrigin(id, Menu, Item)
{
if((Item == MENU_EXIT) || !is_user_connected(id))
{
menu_destroy(Menu)
MyOrigin[0] = MyOrigin[1] = MyOrigin[2] = 0.0
MyAngles[0] = MyAngles[1] = MyAngles[2] = 0.0
return
}
static Data[6], Name[64], ItemAccess, ItemCallback
menu_item_getinfo(Menu, Item, ItemAccess, Data, charsmax(Data), Name, charsmax(Name), ItemCallback)
if(equal(Data, "get"))
{
pev(id, pev_origin, MyOrigin)
pev(id, pev_v_angle, MyAngles)
MyAngles[0] = 0.0
} else if(equal(Data, "save")) {
Save_MapData(id)
} else {
static BoxID; BoxID = str_to_num(Data)
if(BoxID >= 0 && BoxID < MAX_CHEST)
{
ChestOrigin[BoxID] = MyOrigin
ChestAngles[BoxID] = MyAngles
}
}
menu_destroy(Menu)
BaseOrigin_Handle(id)
}
public Save_MapData(id)
{
new Path[128]; get_configsdir(Path, charsmax(Path))
new MapName[64]; get_mapname(MapName, 63)
format(Path, 127, "%s/%s/%s.dias", Path, GAME_FOLDER, MapName)
static LineData[128]
for(new i = 0; i < MAX_CHEST; i++)
{
formatex(LineData, 127, "%f %f %f %f %f %f", ChestOrigin[i][0], ChestOrigin[i][1], ChestOrigin[i][2], ChestAngles[i][0], ChestAngles[i][1], ChestAngles[i][2])
write_file(Path, LineData, i)
}
client_print(id, print_chat, "Sneaky.amxx : Your wish is my desire")
}
public Load_MapData()
{
new Path[128]; get_configsdir(Path, charsmax(Path))
new MapName[64]; get_mapname(MapName, 63)
format(Path, 127, "%s/%s/%s.dias", Path, GAME_FOLDER, MapName)
if(file_exists(Path))
{
new LineData[128], Line
new File = fopen(Path, "rt")
new HandleData[6][48]
if(!File) return
while(!feof(File))
{
fgets(File, LineData, 127)
replace(LineData, 127, "^n", "")
if(LineData[0] == ';' || !LineData[0]) continue
parse(LineData, HandleData[0], 47, HandleData[1], 47, HandleData[2], 47, HandleData[3], 47, HandleData[4], 47, HandleData[5], 47)
ChestOrigin[Line][0] = str_to_float(HandleData[0])
ChestOrigin[Line][1] = str_to_float(HandleData[1])
ChestOrigin[Line][2] = str_to_float(HandleData[2])
ChestAngles[Line][0] = str_to_float(HandleData[3])
ChestAngles[Line][1] = str_to_float(HandleData[4])
ChestAngles[Line][2] = str_to_float(HandleData[5])
Line++
}
fclose(File)
}
}
-
borisdanko
-
- Сообщения: 6
- Зарегистрирован: 25 янв 2021, 18:36
- Благодарил (а): 6 раз.
- Поблагодарили: 0 раз.
- Опыт программирования: Меньше недели
- Языки программирования: Я ничего не знаю
RockTheStreet » 12 окт 2021, 11:55
borisdanko писал(а):Майрон привет!хотел добавить свое оружие,ошибка при компиляции.не мог бы подсказать где я допустил ошибку?подскажи пожалуйста как должно быть?и возможно вообще туда добавить например броню,гранату HE?слепу,дым.
- Код: Выделить всё
new const Mileage_Item[MAX_ITEM][] =
{
"models/w_ak47.mdl",
"models/w_m4a1.mdl",
"models/w_galil.mdl",
"models/w_mp5.mdl",
"models/w_p90.mdl",
"models/w_deagle.mdl"
}
new Float:MyOrigin[3], Float:MyAngles[3], g_PressBox[33]
new Float:ChestOrigin[MAX_CHEST][3], Float:ChestAngles[MAX_CHEST][3]
new g_Cvar_SpawnType, g_Cvar_SpawnTime, g_Cvar_ItemDisappear
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("HLTV", "Event_NewRound", "a", "1=0", "2=0")
register_touch(CHEST_CLASSNAME, "player", "fw_Touch")
register_think(CHEST_CLASSNAME, "fw_Think")
g_Cvar_SpawnType = register_cvar("mchest_spawn_type", "1") g_Cvar_SpawnTime = register_cvar("mchest_spawn_time", "60") g_Cvar_ItemDisappear = register_cvar("mchest_item_disappear_time", "5")
set_task(get_pcvar_float(g_Cvar_SpawnTime), "SpawnTime_Check", TASK_SPAWN)
register_clcmd("mileage_chest", "BaseOrigin_Handle", ADMIN_ADMIN)
}
public plugin_precache()
{
precache_model(CHEST_MODEL)
precache_sound(CHEST_SOUND)
precache_sound(CHEST_SOUND2)
for(new i = 0; i < MAX_CHEST; i++)
precache_model(Mileage_Item[i])
Load_MapData()
}
public SpawnTime_Check()
{
if(get_pcvar_num(g_Cvar_SpawnType) == 2)
{
remove_entity_name(CHEST_CLASSNAME)
Create_MileageChest()
}
set_task(get_pcvar_float(g_Cvar_SpawnTime), "SpawnTime_Check", TASK_SPAWN)
}
public Event_NewRound()
{
if(get_pcvar_num(g_Cvar_SpawnType) == 1)
{
remove_entity_name(CHEST_CLASSNAME)
Create_MileageChest()
}
}
public Create_MileageChest()
{
static Chest; Chest = create_entity("info_target")
if(!pev_valid(Chest)) return
static Rand; Rand = random(MAX_CHEST)
set_pev(Chest, pev_origin, ChestOrigin[Rand])
set_pev(Chest, pev_angles, ChestAngles[Rand])
set_pev(Chest, pev_classname, CHEST_CLASSNAME)
engfunc(EngFunc_SetModel, Chest, CHEST_MODEL)
set_pev(Chest, pev_gamestate, 1)
set_pev(Chest, pev_solid, SOLID_BBOX)
set_pev(Chest, pev_movetype, MOVETYPE_NONE)
set_pev(Chest, pev_iuser1, 1) set_pev(Chest, pev_iuser2, 0) set_pev(Chest, pev_iuser3, 0)
fm_set_rendering(Chest, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 250)
new Float:maxs[3] = {30.0, 30.0, 50.0}
new Float:mins[3] = {-30.0, -30.0, 0.0}
engfunc(EngFunc_SetSize, Chest, mins, maxs)
set_pev(Chest, pev_animtime, get_gametime())
set_pev(Chest, pev_framerate, 1.0)
set_pev(Chest, pev_sequence, 0)
set_pev(Chest, pev_nextthink, get_gametime() + 0.1)
drop_to_floor(Chest)
}
public fw_Touch(Ent, id)
{
if(!pev_valid(Ent) || !is_user_alive(id))
return
}
public fw_Think(Ent)
{
if(!pev_valid(Ent))
return
if(!pev(Ent, pev_iuser1) && !pev(Ent, pev_iuser2))
{
static Item; Item = pev(Ent, pev_iuser4)
static User; User = pev(Ent, pev_iuser3)
if(pev_valid(Item))
{
static Float:Time; pev(Ent, pev_fuser2, Time)
if(get_gametime() >= Time)
{
remove_entity(Item)
} else {
static Victim; Victim = -1
static Float:Origin[3]; pev(Ent, pev_origin, Origin)
while((Victim = find_ent_in_sphere(Victim, Origin, 48.0)) != 0)
{
if(!is_user_alive(Victim))
continue
if(Victim != User)
continue
static Button; Button = pev(Victim, pev_button)
if(Button & IN_USE)
{
Obtain_Item(Victim, pev(Item, pev_enemy))
remove_entity(Item)
}
}
}
} else {
if(!pev(Ent, pev_enemy))
{
set_pev(Ent, pev_animtime, get_gametime())
set_pev(Ent, pev_framerate, 1.0)
set_pev(Ent, pev_sequence, 3)
set_pev(Ent, pev_enemy, 1)
set_pev(Ent, pev_nextthink, get_gametime() + 1.5)
return
} else {
static Float:Amount; pev(Ent, pev_renderamt, Amount)
if(Amount > 0.0)
{
set_pev(Ent, pev_rendermode, kRenderTransAlpha)
set_pev(Ent, pev_renderamt, Amount - 10.0)
} else {
remove_entity(Ent)
return
}
set_pev(Ent, pev_nextthink, get_gametime() + 0.1)
return
}
}
set_pev(Ent, pev_nextthink, get_gametime() + 0.1)
return
}
if(pev(Ent, pev_iuser2))
{
static Float:Time; pev(Ent, pev_fuser1, Time)
static Item; Item = pev(Ent, pev_iuser4)
if(get_gametime() >= Time)
{
if(pev_valid(Item))
{
static ID; ID = random(MAX_ITEM)
engfunc(EngFunc_SetModel, Item, Mileage_Item[ID])
set_pev(Item, pev_enemy, ID)
set_pev(Ent, pev_iuser2, 0)
set_pev(Ent, pev_fuser2, get_gametime() + get_pcvar_float(g_Cvar_ItemDisappear))
emit_sound(Ent, CHAN_BODY, CHEST_SOUND2, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
set_pev(Item, pev_velocity, {0.0, 0.0, 0.0})
set_pev(Item, pev_movetype, MOVETYPE_NONE)
}
} else {
if(pev_valid(Item))
{
static ID; ID = pev(Item, pev_enemy)
ID++; if(ID >= MAX_ITEM) ID = 0
engfunc(EngFunc_SetModel, Item, Mileage_Item[ID])
set_pev(Item, pev_enemy, ID)
}
}
set_pev(Ent, pev_nextthink, get_gametime() + 0.25)
return
}
static Victim; Victim = -1
static Float:Origin[3]; pev(Ent, pev_origin, Origin)
while((Victim = find_ent_in_sphere(Victim, Origin, 48.0)) != 0)
{
if(!is_user_alive(Victim))
continue
static Button; Button = pev(Victim, pev_button)
if(Button & IN_USE) Chest_Trigger(Ent, Victim)
}
set_pev(Ent, pev_nextthink, get_gametime() + 0.1)
}
public Obtain_Item(id, ItemID)
{
switch(ItemID)
{
case 0: fm_give_item(id, "weapon_ak47")
case 1: fm_give_item(id, "weapon_m4a1")
case 2: fm_give_item(id, "weapon_galil")
case 3: fm_give_item(id, "weapon_mp5")
case 4: fm_give_item(id, "weapon_p90")
case 5: fm_give_item(id, "weapon_deagle")
}
}
public Chest_Trigger(Ent, id)
{
if(!pev(Ent, pev_iuser1))
return
emit_sound(Ent, CHAN_BODY, CHEST_SOUND, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
set_pev(Ent, pev_iuser1, 0) set_pev(Ent, pev_iuser2, 1) set_pev(Ent, pev_iuser3, id) set_pev(Ent, pev_fuser1, get_gametime() + 6.0)
set_pev(Ent, pev_animtime, get_gametime())
set_pev(Ent, pev_framerate, 1.0)
set_pev(Ent, pev_sequence, 1)
static Item; Item = Create_Item(Ent)
set_pev(Ent, pev_iuser4, Item)
}
public Create_Item(Ent)
{
static Item; Item = create_entity("info_target")
if(!pev_valid(Item)) return -1
static Float:Origin[3]; pev(Ent, pev_origin, Origin)
static Float:Angles[3]; pev(Ent, pev_angles, Angles)
Origin[2] += 6.0
Angles[0] -= 45.0
set_pev(Item, pev_origin, Origin)
set_pev(Item, pev_angles, Angles)
set_pev(Item, pev_classname, "mitem")
engfunc(EngFunc_SetModel, Item, Mileage_Item[0])
set_pev(Item, pev_enemy, 0)
set_pev(Item, pev_gamestate, 1)
set_pev(Item, pev_solid, SOLID_TRIGGER)
set_pev(Item, pev_movetype, MOVETYPE_FLY)
set_pev(Item, pev_gravity, 0.01)
new Float:maxs[3] = {6.0, 6.0, 6.0}
new Float:mins[3] = {-6.0, -6.0, 0.0}
engfunc(EngFunc_SetSize, Item, mins, maxs)
set_pev(Item, pev_nextthink, get_gametime() + 0.1)
static Float:Vel[3];
Vel[2] = 7.5
set_pev(Item, pev_velocity, Vel)
return Item
}
public BaseOrigin_Handle(id)
{
static MenuTitle[32]; formatex(MenuTitle, sizeof(MenuTitle), "\y'Mileage Chest' Menu\w")
new MenuId; MenuId = menu_create(MenuTitle, "MenuHandle_BaseOrigin")
static Data[64], Num[4]
g_PressBox[id] = -1
formatex(Data, 63, "Current Origin/Angles \r[%i %i %i] [%i %i %i]\w^n", floatround(MyOrigin[0]), floatround(MyOrigin[1]), floatround(MyOrigin[2]), floatround(MyAngles[0]), floatround(MyAngles[1]), floatround(MyAngles[2]))
menu_additem(MenuId, Data, "get")
for(new i = 0; i < MAX_CHEST; i++)
{
if(MAX_CHEST - 1 == i) formatex(Data, 63, "\yChest %i:\w Origin/Angles \r[%i %i %i] [%i %i %i]\w^n", i+1, floatround(ChestOrigin[i][0]), floatround(ChestOrigin[i][1]), floatround(ChestOrigin[i][2]), floatround(ChestAngles[i][0]), floatround(ChestAngles[i][1]), floatround(ChestAngles[i][2]))
else formatex(Data, 63, "\yChest %i:\w Origin/Angles \r[%i %i %i] [%i %i %i]\w", i+1, floatround(ChestOrigin[i][0]), floatround(ChestOrigin[i][1]), floatround(ChestOrigin[i][2]), floatround(ChestAngles[i][0]), floatround(ChestAngles[i][1]), floatround(ChestAngles[i][2]))
num_to_str(i, Num, 3)
menu_additem(MenuId, Data, Num)
}
menu_additem(MenuId, "\rSave Data\w", "save")
menu_display(id, MenuId, 0)
}
public MenuHandle_BaseOrigin(id, Menu, Item)
{
if((Item == MENU_EXIT) || !is_user_connected(id))
{
menu_destroy(Menu)
MyOrigin[0] = MyOrigin[1] = MyOrigin[2] = 0.0
MyAngles[0] = MyAngles[1] = MyAngles[2] = 0.0
return
}
static Data[6], Name[64], ItemAccess, ItemCallback
menu_item_getinfo(Menu, Item, ItemAccess, Data, charsmax(Data), Name, charsmax(Name), ItemCallback)
if(equal(Data, "get"))
{
pev(id, pev_origin, MyOrigin)
pev(id, pev_v_angle, MyAngles)
MyAngles[0] = 0.0
} else if(equal(Data, "save")) {
Save_MapData(id)
} else {
static BoxID; BoxID = str_to_num(Data)
if(BoxID >= 0 && BoxID < MAX_CHEST)
{
ChestOrigin[BoxID] = MyOrigin
ChestAngles[BoxID] = MyAngles
}
}
menu_destroy(Menu)
BaseOrigin_Handle(id)
}
public Save_MapData(id)
{
new Path[128]; get_configsdir(Path, charsmax(Path))
new MapName[64]; get_mapname(MapName, 63)
format(Path, 127, "%s/%s/%s.dias", Path, GAME_FOLDER, MapName)
static LineData[128]
for(new i = 0; i < MAX_CHEST; i++)
{
formatex(LineData, 127, "%f %f %f %f %f %f", ChestOrigin[i][0], ChestOrigin[i][1], ChestOrigin[i][2], ChestAngles[i][0], ChestAngles[i][1], ChestAngles[i][2])
write_file(Path, LineData, i)
}
client_print(id, print_chat, "Sneaky.amxx : Your wish is my desire")
}
public Load_MapData()
{
new Path[128]; get_configsdir(Path, charsmax(Path))
new MapName[64]; get_mapname(MapName, 63)
format(Path, 127, "%s/%s/%s.dias", Path, GAME_FOLDER, MapName)
if(file_exists(Path))
{
new LineData[128], Line
new File = fopen(Path, "rt")
new HandleData[6][48]
if(!File) return
while(!feof(File))
{
fgets(File, LineData, 127)
replace(LineData, 127, "^n", "")
if(LineData[0] == ';' || !LineData[0]) continue
parse(LineData, HandleData[0], 47, HandleData[1], 47, HandleData[2], 47, HandleData[3], 47, HandleData[4], 47, HandleData[5], 47)
ChestOrigin[Line][0] = str_to_float(HandleData[0])
ChestOrigin[Line][1] = str_to_float(HandleData[1])
ChestOrigin[Line][2] = str_to_float(HandleData[2])
ChestAngles[Line][0] = str_to_float(HandleData[3])
ChestAngles[Line][1] = str_to_float(HandleData[4])
ChestAngles[Line][2] = str_to_float(HandleData[5])
Line++
}
fclose(File)
}
}
Вы добавляете шестую ячейку в массив, когда максимум их может быть пять.
#define MAX_ITEM 5
Касательно телепатии: если Вы передаете Ваши проблемы телепатическим путем - ответы будут передаваться тоже телепатически.
Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком.
-
RockTheStreet
-
- Сообщения: 97
- Зарегистрирован: 12 авг 2021, 23:13
- Забанен
- Благодарил (а): 7 раз.
- Поблагодарили: 16 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: JS, PHP
borisdanko » 12 окт 2021, 18:14
благодарю)буду тестировать на днях.добавил 9 позиций.компиляция прошла успешно
Добавлено спустя 3 минуты 4 секунды:все же хотел уточнить по поводу добавления грен,будет ли выдавать?
- Код: Выделить всё
case 6: fm_give_item(id, "weapon_flashbang")
case 7: fm_give_item(id, "weapon_hegrenade")
case 8: fm_give_item(id, "weapon_smokegrenade")
-
borisdanko
-
- Сообщения: 6
- Зарегистрирован: 25 янв 2021, 18:36
- Благодарил (а): 6 раз.
- Поблагодарили: 0 раз.
- Опыт программирования: Меньше недели
- Языки программирования: Я ничего не знаю
RockTheStreet » 12 окт 2021, 20:55
Будет.
Касательно телепатии: если Вы передаете Ваши проблемы телепатическим путем - ответы будут передаваться тоже телепатически.
Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком.
-
RockTheStreet
-
- Сообщения: 97
- Зарегистрирован: 12 авг 2021, 23:13
- Забанен
- Благодарил (а): 7 раз.
- Поблагодарили: 16 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: JS, PHP
MayroN » 12 окт 2021, 23:19
borisdanko писал(а):все же хотел уточнить по поводу добавления грен,будет ли выдавать?
- Код: Выделить всё
case 6: fm_give_item(id, "weapon_flashbang")
case 7: fm_give_item(id, "weapon_hegrenade")
case 8: fm_give_item(id, "weapon_smokegrenade")
Стоит учесть,что если в арсенале уже имеется одна из гранат,то при выдачи из Сундука будет добавлятся "пустышка" - тоесть ничего
Не тестировал - но на первый взгляд так и произойдёт
Вот пример добавления грены к уже имеющейся в Арсенале
- Код: Выделить всё
cs_set_user_bpammo(id, CSW_HEGRENADE, cs_get_user_bpammo(id, CSW_HEGRENADE) + 1)
-
MayroN
-
- Сообщения: 673
- Зарегистрирован: 10 окт 2010, 18:23
- Откуда: Украина, г. Белая Церковь
- Благодарил (а): 149 раз.
- Поблагодарили: 86 раз.
- Опыт программирования: Около года
- Языки программирования: На которых говорю...
-
borisdanko » 13 окт 2021, 10:21
MayroN,спасибо что ответил!есть еще не большие вопросы
1.как сделать,что бы сундуки появлялись с 4 раунда?
2.как сделать запрет, что бы игроки с привилегией не могли их подбирать?
Спасибо за ответ!
-
borisdanko
-
- Сообщения: 6
- Зарегистрирован: 25 янв 2021, 18:36
- Благодарил (а): 6 раз.
- Поблагодарили: 0 раз.
- Опыт программирования: Меньше недели
- Языки программирования: Я ничего не знаю
MayroN » 13 окт 2021, 12:24
borisdanko писал(а):MayroN,спасибо что ответил!есть еще не большие вопросы
1.как сделать,что бы сундуки появлялись с 4 раунда?
2.как сделать запрет, что бы игроки с привилегией не могли их подбирать?
Спасибо за ответ!
К сожалению,это уже больше подходит в другой раздел - ну хотя-бы
Вы должны зарегистрироваться, чтобы видеть ссылки.Там создавайте
-
MayroN
-
- Сообщения: 673
- Зарегистрирован: 10 окт 2010, 18:23
- Откуда: Украина, г. Белая Церковь
- Благодарил (а): 149 раз.
- Поблагодарили: 86 раз.
- Опыт программирования: Около года
- Языки программирования: На которых говорю...
-
[N][E][M][E][C] » 13 окт 2021, 16:06
borisdanko,
1. Делаешь глобальную переменную, для посчёта раундов, отлавливаешь старт раунда,плюсуешь еденицу каждый раунд к переменной. Дальше условие там где надо, если переменная равна 4 ,то выполняем код.
2. Делаешь проверку на флаг игрока, если соответсвует выполняешь код.
-
[N][E][M][E][C]
-
- Сообщения: 641
- Зарегистрирован: 14 фев 2021, 10:48
- Благодарил (а): 50 раз.
- Поблагодарили: 89 раз.
- Опыт программирования: Около года
- Языки программирования: Нуждаюсь в помощи
Вернуться в Добавленные новые плагины
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4