Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Guest Message by DevFuse
zenon
Rejestracja: 01.08.2010Aktualnie: Nieaktywny
Poza forum Ostatnio: 16.04.2014 14:26
Statystyki
- Grupa: Użytkownik
- Całość postów: 74
- Odwiedzin: 3 225
- Tytuł: Pomocny
- Wiek: 29 lat
- Urodziny: Maj 21, 1994
-
Płeć
Mężczyzna
-
Lokalizacja
Poland >Radomsko
Kontakt
-1
Nowy
Narzędzia użytkownika
Znajomi
zenon nie posiada znajomych
#296557 nie trzeba przeładowywać na bb ?
Napisane przez speedkill w 15.09.2011 19:30
#296582 nie trzeba przeładowywać na bb ?
Napisane przez Muzzi w 15.09.2011 20:31
Try
#include <amxmodx>
#include <amxmisc>
#include <ammopacks>
#include <fun>
#include <cstrike>
#define PLUGIN "Un Ammo"
#define VERSION "1.0"
#define AUTHOR "Skull3D"
new item,
koszt,
team;
new bool:gbItem[33];
new CSW_MAXAMMO[33]= {-2, 52, 0, 90, 1, 32, 1, 100, 90, 1, 120, 100, 100, 90, 90, 90, 100, 120, 30, 120, 200, 32, 90, 120, 90, 2, 35, 90, 90, 0, 100, -1, -1}
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
koszt=register_cvar("koszt_ne","500")
team=register_cvar("team_ne","2") //0 - ALL
//1 - ZOMBIE
//2 - HUMAN
new tkoszt=get_pcvar_num(koszt)
new tteam =get_pcvar_num(team)
item=dodaj_extra_item("Unlimited Ammo",tkoszt,tteam) //rejestrujemy nowy item - nazwa - koszt -team(1 - Zombie,2 - Human,0 - All
register_event("CurWeapon", "event_curweapon", "be", "1=1")
register_logevent("PoczatekRundy", 2, "1=Round_Start");
}
public wybrano_item(id,item_id)
{ // co ma sie stac po kupieniu itemy
if(item_id==item){// sprawdzamy czy gracz kupil item zarejestrowany wczesniej
gbItem[id] = true;
}
}
public PoczatekRundy()
{
new iPlayers[32], iNum;
get_players(iPlayers, iNum);
for(new i=0; i<=iNum; i++)
{
gbItem[iPlayers[i]] = false;
}
}
public event_curweapon(id)
{
//Check if the plugin is enabled and player is alive
if(!gbItem[id] || !is_user_alive(id))
return PLUGIN_CONTINUE;
//Get and check weapon ID
new weaponID= read_data(2)
if(weaponID==CSW_C4 || weaponID==CSW_KNIFE || weaponID==CSW_HEGRENADE || weaponID==CSW_SMOKEGRENADE || weaponID==CSW_FLASHBANG)
return PLUGIN_CONTINUE;
if(cs_get_user_bpammo(id, weaponID)!= CSW_MAXAMMO[weaponID])
cs_set_user_bpammo(id, weaponID, CSW_MAXAMMO[weaponID])
return PLUGIN_CONTINUE;
}
#296701 nie trzeba przeładowywać na bb ?
Napisane przez Muzzi w 16.09.2011 14:30
Kod pisany na nowo, skopiowanie kilka funkcji.
Try
Try
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <ammopacks>
#include <fakemeta>
#define PLUGIN "Unlimited Ammo"
#define VERSION "1.0"
#define AUTHOR "Uzytkownik"
new item,
koszt,
team;
new bool:gbHasItem[33];
// CS Offsets
#if cellbits == 32
const OFFSET_CLIPAMMO = 51
#else
const OFFSET_CLIPAMMO = 65
#endif
const OFFSET_LINUX_WEAPONS = 4
// Max Clip for weapons
new const MAXCLIP[] =
{
-1, 13, -1, 10, 1, 7, -1, 30, 30, 1, 30,
20,25, 30, 35, 25, 12, 20,10, 30, 100,
8, 30,30, 20, 2, 7, 30, 30, -1, 50
}
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar("koszt_unammo","100")
register_cvar("team_unammo","2")
koszt = get_cvar_num("koszt_unammo");
team = get_cvar_num("team_unammo");
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_message(get_user_msgid("CurWeapon"), "message_CurWeapon")
item = dodaj_extra_item("Nieskonczona Amunicja", koszt, team)
}
public client_connect(id)
gbHasItem[id] = false
public wybrano_item(id,item_id)
{
if(item_id==item)
{
new name[33];
get_user_name(id, name, charsmax(name));
client_print(id, 3, "%s kupil unlimited ammo", name);
gbHasItem[id] = true
}
}
public event_round_start()
{
new iPlayers[32], iNum;
get_players(iPlayers, iNum);
for (new i; i < iNum; i++)
{
if(!is_user_connected(iPlayers[i]))
continue;
gbHasItem[iPlayers[i]] = false;
}
}
public message_cur_weapon(msg_id, msg_dest, msg_entity)
{
if (!gbHasItem[msg_entity])
return;
if (!is_user_alive(msg_entity) || get_msg_arg_int(1) != 1)
return;
static weapon, clip
weapon = get_msg_arg_int(2)
clip = get_msg_arg_int(3)
if (MAXCLIP[weapon] > 2)
{
set_msg_arg_int(3, get_msg_argtype(3), MAXCLIP[weapon])
if (clip < 2)
{
static wname[32], weapon_ent
get_weaponname(weapon, wname, sizeof wname - 1)
weapon_ent = fm_find_ent_by_owner(-1, wname, msg_entity)
fm_set_weapon_ammo(weapon_ent, MAXCLIP[weapon])
}
}
}
stock fm_find_ent_by_owner(entity, const classname[], owner)
{
while ((entity = engfunc(EngFunc_FindEntityByString, entity, "classname", classname)) && pev(entity, pev_owner) != owner) {}
return entity;
}
stock fm_set_weapon_ammo(entity, amount)
set_pdata_int(entity, OFFSET_CLIPAMMO, amount, OFFSET_LINUX_WEAPONS);
#296766 nie trzeba przeładowywać na bb ?
Napisane przez diggs w 16.09.2011 16:39
Kiedyś coś takiego zrobiłem, niestety usunąłem to bo było całkiem bezsensu (dla mnie). Zrobiłem to za pomocą eventu Cure_Weapon, w nim był jeden if który sprawdzał aktualną ilość naboi w porównaniu z maksymalna i jeśli było 0 naboi to ustawiał ich ilość znów na max. Efekt był taki że jak miałeś 0 pocisków od razu miałeś max (automatyczne przeładowanie).
#297448 nie trzeba przeładowywać na bb ?
Napisane przez Muzzi w 18.09.2011 13:31
Przepraszam mój błąd, źle nazwałem funkcje.
try
try
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <ammopacks>
#include <fakemeta>
#define PLUGIN "Unlimited Ammo"
#define VERSION "1.0"
#define AUTHOR "Uzytkownik"
new item,
koszt,
team;
new bool:gbHasItem[33];
// CS Offsets
#if cellbits == 32
const OFFSET_CLIPAMMO = 51
#else
const OFFSET_CLIPAMMO = 65
#endif
const OFFSET_LINUX_WEAPONS = 4
// Max Clip for weapons
new const MAXCLIP[] =
{
-1, 13, -1, 10, 1, 7, -1, 30, 30, 1, 30,
20,25, 30, 35, 25, 12, 20,10, 30, 100,
8, 30,30, 20, 2, 7, 30, 30, -1, 50
}
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar("koszt_unammo","100")
register_cvar("team_unammo","2")
koszt = get_cvar_num("koszt_unammo");
team = get_cvar_num("team_unammo");
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_message(get_user_msgid("CurWeapon"), "message_CurWeapon")
item = dodaj_extra_item("Nieskonczona Amunicja", koszt, team)
}
public client_connect(id)
gbHasItem[id] = false
public wybrano_item(id,item_id)
{
if(item_id==item)
{
new name[33];
get_user_name(id, name, charsmax(name));
client_print(id, 3, "%s kupil unlimited ammo", name);
gbHasItem[id] = true
}
}
public event_round_start()
{
new iPlayers[32], iNum;
get_players(iPlayers, iNum);
for (new i; i < iNum; i++)
{
if(!is_user_connected(iPlayers[i]))
continue;
gbHasItem[iPlayers[i]] = false;
}
}
public message_CurWeapon(msg_id, msg_dest, msg_entity)
{
if (!gbHasItem[msg_entity])
return;
if (!is_user_alive(msg_entity) || get_msg_arg_int(1) != 1)
return;
static weapon, clip
weapon = get_msg_arg_int(2)
clip = get_msg_arg_int(3)
if (MAXCLIP[weapon] > 2)
{
set_msg_arg_int(3, get_msg_argtype(3), MAXCLIP[weapon])
if (clip < 2)
{
static wname[32], weapon_ent
get_weaponname(weapon, wname, sizeof wname - 1)
weapon_ent = fm_find_ent_by_owner(-1, wname, msg_entity)
fm_set_weapon_ammo(weapon_ent, MAXCLIP[weapon])
}
}
}
stock fm_find_ent_by_owner(entity, const classname[], owner)
{
while ((entity = engfunc(EngFunc_FindEntityByString, entity, "classname", classname)) && pev(entity, pev_owner) != owner) {}
return entity;
}
stock fm_set_weapon_ammo(entity, amount)
set_pdata_int(entity, OFFSET_CLIPAMMO, amount, OFFSET_LINUX_WEAPONS);
#296800 Problem z armorem na bb
Napisane przez diggs w 16.09.2011 18:24
#296824 Problem z armorem na bb
Napisane przez diggs w 16.09.2011 19:22
#296890 Problem z armorem na bb
Napisane przez Muzzi w 16.09.2011 23:44
Oczywiście (chyba), że jest taka opcja. Kiedyś coś takiego robiłem ale dane z pluginu mam gdzieś w koszu.
Łapiesz Hamem event damage i sprawdzasz czy gracz ma kamizelkę, jeżeli ma to od hp odejmujesz damage, jeżeli nie ma armoru to zostawiasz normalnie i na koniec return plugin_handled; oraz plugin dodajesz na sam koniec w plugins.ini
Powinno zadziałać, ale nie dam sobie ręki uciąć.
Łapiesz Hamem event damage i sprawdzasz czy gracz ma kamizelkę, jeżeli ma to od hp odejmujesz damage, jeżeli nie ma armoru to zostawiasz normalnie i na koniec return plugin_handled; oraz plugin dodajesz na sam koniec w plugins.ini
Powinno zadziałać, ale nie dam sobie ręki uciąć.
#296926 Problem z armorem na bb
Napisane przez Muzzi w 17.09.2011 08:58
Sprawdź to, pisane na szybko.
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <fun>
#include <hamsandwich>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Muzzi"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}
public TakeDamage(this, idinflictor, idattacker,Float:damage, damagebits)
{
if(get_user_armor(this) >= 1)
{
new PlayerArmor = get_user_armor(this);
new PlayerDamage = floatround(damage);
if(get_user_armor(this) < floatround(damage))
{
PlayerDamage -= PlayerArmor
set_user_armor(this, PlayerArmor - PlayerDamage)
set_user_health(this, get_user_health(this) - PlayerDamage);
}
else
{
set_user_armor(this, PlayerArmor - PlayerDamage)
}
return HAM_SUPERCEDE;
}
else
{
return HAM_HANDLED;
}
return HAM_HANDLED;
}
#296791 Jak zmienić miejsce menu ?
Napisane przez sebul w 16.09.2011 18:00
No to sprawdź jeszcze teraz, oczywiście jeśli chcesz.
Załączone pliki
-
basebuilder65.sma 82,68 KB 17 Ilość pobrań
basebuilder65.amxx
#296531 Jak zmienić miejsce menu ?
Napisane przez diggs w 15.09.2011 18:33
#296344 Jak zmienić miejsce menu ?
Napisane przez diggs w 15.09.2011 10:49
#296251 Jak zmienić miejsce menu ?
Napisane przez sebul w 14.09.2011 19:34
#296236 Jak zmienić miejsce menu ?
Napisane przez sebul w 14.09.2011 19:16
#296228 Jak zmienić miejsce menu ?
Napisane przez Muzzi w 14.09.2011 18:55
- AMXX.pl: Support AMX Mod X i SourceMod
- → Przeglądanie profilu: Reputacja: zenon
- Regulamin