Skocz do zawartości

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

zenon - zdjęcie

zenon

Rejestracja: 01.08.2010
Aktualnie: Nieaktywny
Poza forum Ostatnio: 16.04.2014 14:26
-----

#296557 nie trzeba przeładowywać na bb ?

Napisane przez speedkill w 15.09.2011 19:30

Masz
http://amxx.pl/kompi...9&fname=das.sma
  • +
  • -
  • 1


#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;
}

  • +
  • -
  • 1


#296701 nie trzeba przeładowywać na bb ?

Napisane przez Muzzi w 16.09.2011 14:30

Kod pisany na nowo, skopiowanie kilka funkcji.

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);


  • +
  • -
  • 1


#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).
  • +
  • -
  • 1


#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


/* 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);

  • +
  • -
  • 1


#296800 Problem z armorem na bb

Napisane przez diggs w 16.09.2011 18:24

Zamiast twojego set_user_armor() wstaw te 2 linijki
give_item(id, "item_assaultsuit");
cs_set_user_armor(id, 500, CS_ARMOR_VESTHELM);
Da to graczowi 500 kamizelki z hełmem.
  • +
  • -
  • 1


#296824 Problem z armorem na bb

Napisane przez diggs w 16.09.2011 19:22

Nie rozumiem o co teraz chodzi.
  • +
  • -
  • 1


#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ąć.
  • +
  • -
  • 2


#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;
}

  • +
  • -
  • 2


#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


  • +
  • -
  • 1


#296531 Jak zmienić miejsce menu ?

Napisane przez diggs w 15.09.2011 18:33

Przepraszam ale dziś nie dam rady do tego zajrzeć, ale obiecuje zrobić jak najszybciej ;]
  • +
  • -
  • 1


#296344 Jak zmienić miejsce menu ?

Napisane przez diggs w 15.09.2011 10:49

Daj mu plug z zasadami to ci to ładnie zrobię, chyba że ktoś mnie uprzedzi.
  • +
  • -
  • 1


#296251 Jak zmienić miejsce menu ?

Napisane przez sebul w 14.09.2011 19:34

Przecież jak te zasady są zrobione w tzw. starym menu, to nie trzeba ich dodawać do bb, wystarczy zrobić to co napisałem.
  • +
  • -
  • 1


#296236 Jak zmienić miejsce menu ?

Napisane przez sebul w 14.09.2011 19:16

Stare czy nowe menu? Bo jeśli stare, to da się zrobić (jak nowe to nie jestem pewien), chociażby przy menu klas dodać warunek, że jak danemu graczowi będzie wyświetlać menu to wtedy taskiem opóźnić menu klas. Chodzi mi o "get_user_menu".
  • +
  • -
  • 1


#296228 Jak zmienić miejsce menu ?

Napisane przez Muzzi w 14.09.2011 18:55

Ew. wyświetlić menu z klasami po akceptacji regulaminu :)
  • +
  • -
  • 1