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
 

Zdjęcie

Dobry sposób na blokadę ataku


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
21 odpowiedzi w tym temacie

#1 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 22.08.2013 19:01

*
Popularny

Witam.

Niżej macie kod przy którym łatwo zatrzymać atak a także dodać od siebie parę bajerów typu rakiety itp. (na razie jest dodana tylko animacja dla glock'a, taki ala "fejk szot") :)

Do rzeczy, niżej macie kod, blokuje on pierwszorzędny atak, tzn. że nie zablokuje "prawego" ataku z noża, ale to dodam wkrótce ;)

 

Brawa dla G[o]Q za wykrycie można powiedzieć buga, po którym kod (wg. mnie) musiał wyglądać inaczej.

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

new const g_iBlockedWeaponId = CSW_GLOCK18; //Id broni do zablokowania
new const g_szBlockedWeaponName[] = "weapon_glock18"; //Nazwa broni do zablokowania
new const Float:g_fAttackTime = 1.1; //Czas ataku (tzn. po ilu sekundach od zaatakowania, mozna atakowac znowu :))

new Float:g_fTimeToNextPlayerAttack[33];

public plugin_init()
{
    register_plugin("Fejk szot", "0.1", "d0naciak");
    
    register_forward(FM_CmdStart, "fw_CmdStart_Post", 1);
    
    RegisterHam(Ham_Item_Deploy, g_szBlockedWeaponName, "fw_ItemDeploy_Post", 1);
    
}

public fw_CmdStart_Post(id, iUc)
{
    if(!is_user_alive(id))
        return FMRES_IGNORED;
    
    if(get_user_weapon(id) != g_iBlockedWeaponId)
        return FMRES_IGNORED;
    
    static iButtons, iOldButtons;
    
    iButtons = get_uc(iUc, UC_Buttons);
    iOldButtons = pev(id, pev_oldbuttons);
    
    if(iButtons & IN_ATTACK && !(iOldButtons & IN_ATTACK))
    {
        if(get_gametime() < g_fTimeToNextPlayerAttack[id])
            return FMRES_IGNORED;
                                                //Co sie ma zdarzyc po ataku?
        client_print(id, print_center, "ATAK!") //Tutaj atakujacy dostanie wiadomosc: ATAK!
        g_fTimeToNextPlayerAttack[id] = get_gametime() + g_fAttackTime;
    }
        
    
    return FMRES_IGNORED;
}

public fw_ItemDeploy_Post(iEnt)
    set_pdata_float(iEnt, 46, 999.0, 4);

d0naciak (22.08.2013 19:04):
P.S. Kod blokuje animacje, stratę naboi...wszystko! ;)

Użytkownik d0naciak edytował ten post 03.10.2013 20:00

  • +
  • -
  • 6

#2 Raen

    Wszechwiedzący

  • Power User

Reputacja: 160
Profesjonalista

  • Postów:536
  • GG:
  • Imię:Paweł
  • Lokalizacja:......
Offline

Napisano 22.08.2013 20:16

Dwa razy masz Blokuje atak PPM: :) Napisz które jest które bo nie wiadomo ;]
  • +
  • -
  • 0

angel-little.png


#3 K!113r

    Teraz to chyba Sławek kek

  • Power User

Reputacja: 387
Wszechpomocny

  • Postów:868
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Piotrków Tryb.
Offline

Napisano 22.08.2013 20:38

Przyda mi się, ale będę musiał wywalić moje wypociny, które tworzyłem metodą prób i błędów :(
Jednak mój mod wcale nie będzie taki mój tylko wasz (wasz w sensie grona osób udostępniająca jakieś kody z których korzystam lub wzoruje się na nich. Samo kopiuj wklej, a przynależe do ST, więc muszę więcej sam pisać :D)
  • +
  • -
  • 0

DarkGL to mój autorytet.

skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować


#4 d0naciak

    Godlike

  • Autor tematu
  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 22.08.2013 20:43

Dwa razy masz Blokuje atak PPM: :) Napisz które jest które bo nie wiadomo ;]

Poprawiono :)


  • +
  • -
  • 0

#5 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 22.08.2013 22:13

LPM to primary a PPM to secondary


  • +
  • -
  • 1
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#6 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 23.08.2013 08:18


zawsze używałem a się nie podzieliłem

 

Co za lisek chytrusek. 

 

mam rozumieć że żeby zablokować  dla kilku broni to muszę kilka razy walnać register ham (np w pętli)?


  • +
  • -
  • 0

#7 K!113r

    Teraz to chyba Sławek kek

  • Power User

Reputacja: 387
Wszechpomocny

  • Postów:868
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Piotrków Tryb.
Offline

Napisano 23.08.2013 09:22

Tak
  • +
  • -
  • 1

DarkGL to mój autorytet.

skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować


#8 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 23.08.2013 17:52

Ja tam zawsze używałem
register_forward(FM_CmdStart, "FW_CmdStart");
register_forward(FM_UpdateClientData, "FW_UpdateClientData", 1);
(...)
public FW_CmdStart(id, uc_handle, randseed) {
static buttons; buttons = get_uc(uc_handle, UC_Buttons);
if(buttons & IN_ATTACK) {
set_uc(uc_handle, UC_Buttons, buttons & ~IN_ATTACK);
return FMRES_HANDLED;
}

return FMRES_IGNORED;
}

public FW_UpdateClientData(id, sendweapons, cd_handle) {
set_cd(cd_handle, CD_flNextAttack, get_gametime() + 0.001);

return FMRES_HANDLED;
}

tylko teraz się zastanawiam, że może jednak lepiej by było dać drugą funkcję jako pre, ale nie testowałem tego.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#9 d0naciak

    Godlike

  • Autor tematu
  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 23.08.2013 17:58

sebul, tylko patrząc na wydajność mój kod wydaje się być (a nawet jest) lepszy ^_^


sebul (23.08.2013 18:04):
"wydaje się" bardzo dobre określenie. Wszystko zależy od tego co chcemy zrobić.
dasiek (23.08.2013 18:58):
Skromność podstawą sukcesu ^^

  • +
  • -
  • 1

#10 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 23.08.2013 19:50


(a nawet jest) lepszy

 

i zle opisany


  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#11 d0naciak

    Godlike

  • Autor tematu
  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 23.08.2013 20:04

 


(a nawet jest) lepszy

 

i zle opisany

 

Eh, zignorowałem twój poprzedni post, myślałem że się nie mylę :]

Poprawiono ;>


  • +
  • -
  • 0

#12 Ogen Dogen

    Czempion

  • Power User

Reputacja: 261
Wszechwidzący

  • Postów:837
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Dąbrowa Górnicza
Offline

Napisano 23.08.2013 22:36

+

 

A co jeśli chce wszystkie zablokować ? :] Można to jakoś w miarę w jednym kawałku zrobić ?

Czy muszę osobno każdą ?


  • +
  • -
  • 0

b_350_20_360204_C20008_FFFFFF_000000.png 193.33.176.115:27015

 

94e23d811c.png

 


#13 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 23.08.2013 23:07

tablica z klasami broni i petla w plugin_init


  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#14 Misiaczek ;c

    /dev/null

  • Moderator

Reputacja: 1 678
Godlike

  • Postów:2 496
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Halemba
Offline

Napisano 25.08.2013 19:55

+

 

A co jeśli chce wszystkie zablokować ? :] Można to jakoś w miarę w jednym kawałku zrobić ?

Czy muszę osobno każdą ?

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "MisieQ"

stock const gszWeaponsNames[][] = {
	"weapon_scout", "weapon_mac10", "weapon_aug", "weapon_ump45", 
	"weapon_sg550", "weapon_galil", "weapon_famas", "weapon_awp", 
	"weapon_mp5navy", "weapon_m249", "weapon_m4a1", "weapon_tmp", 
	"weapon_g3sg1", "weapon_sg552", "weapon_ak47", "weapon_p90",
	"weapon_p228", "weapon_shield", "weapon_hegrenade", "weapon_xm1014",
	"weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_usp",
	"weapon_glock18", "weapon_flashbang", "weapon_deagle"
}

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	for( new i = 0; i < 27; i ++ ) {
		RegisterHam(Ham_Item_Deploy, gszWeaponsNames[i], "fw_ItemDeploy");
		RegisterHam(Ham_Weapon_PrimaryAttack, gszWeaponsNames[i], "fw_PrimaryAttack");
		RegisterHam(Ham_Weapon_SecondaryAttack, gszWeaponsNames[i], "fw_SecondaryAttack");
	}
}

public fw_PrimaryAttack(iEnt) {
    set_pdata_float(iEnt, 46, get_gametime() + 0.001, 4);
    return HAM_SUPERCEDE;
}
    
public fw_SecondaryAttack(iEnt) {
    set_pdata_float(iEnt, 47, get_gametime() + 0.001, 4);
    return HAM_SUPERCEDE;
}

public fw_ItemDeploy(iEnt) {
    set_pdata_float(iEnt, 46, get_gametime() + 0.001, 4);
    set_pdata_float(iEnt, 47, get_gametime() + 0.001, 4);
}

Kod nie testowany, może być błąd


Misiaczek ;c (25.08.2013 19:56):
hahah G[o]Q nie zauważyłem twojego posta ;PP

  • +
  • -
  • 0

#15 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 26.08.2013 10:28

+
 
A co jeśli chce wszystkie zablokować ? :] Można to jakoś w miarę w jednym kawałku zrobić ?
Czy muszę osobno każdą ?

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "MisieQ"

stock const gszWeaponsNames[][] = {
	"weapon_scout", "weapon_mac10", "weapon_aug", "weapon_ump45", 
	"weapon_sg550", "weapon_galil", "weapon_famas", "weapon_awp", 
	"weapon_mp5navy", "weapon_m249", "weapon_m4a1", "weapon_tmp", 
	"weapon_g3sg1", "weapon_sg552", "weapon_ak47", "weapon_p90",
	"weapon_p228", "weapon_shield", "weapon_hegrenade", "weapon_xm1014",
	"weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_usp",
	"weapon_glock18", "weapon_flashbang", "weapon_deagle"
}

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	for( new i = 0; i < 27; i ++ ) {
		RegisterHam(Ham_Item_Deploy, gszWeaponsNames[i], "fw_ItemDeploy");
		RegisterHam(Ham_Weapon_PrimaryAttack, gszWeaponsNames[i], "fw_PrimaryAttack");
		RegisterHam(Ham_Weapon_SecondaryAttack, gszWeaponsNames[i], "fw_SecondaryAttack");
	}
}

public fw_PrimaryAttack(iEnt) {
    set_pdata_float(iEnt, 46, get_gametime() + 0.001, 4);
    return HAM_SUPERCEDE;
}
    
public fw_SecondaryAttack(iEnt) {
    set_pdata_float(iEnt, 47, get_gametime() + 0.001, 4);
    return HAM_SUPERCEDE;
}

public fw_ItemDeploy(iEnt) {
    set_pdata_float(iEnt, 46, get_gametime() + 0.001, 4);
    set_pdata_float(iEnt, 47, get_gametime() + 0.001, 4);
}
Kod nie testowany, może być błąd

A bez tablicy
for(new szWeapon[20],i=1; i<=CSW_P90; ++i) {
if(get_weaponname(i, szWeapon, 19)) {
// rejestrowanie
}
}

tylko to zablokuje każdą broń, nawet nóż.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#16 Misiaczek ;c

    /dev/null

  • Moderator

Reputacja: 1 678
Godlike

  • Postów:2 496
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Halemba
Offline

Napisano 26.08.2013 15:01

 

 

+
 
A co jeśli chce wszystkie zablokować ? :] Można to jakoś w miarę w jednym kawałku zrobić ?
Czy muszę osobno każdą ?

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "MisieQ"

stock const gszWeaponsNames[][] = {
	"weapon_scout", "weapon_mac10", "weapon_aug", "weapon_ump45", 
	"weapon_sg550", "weapon_galil", "weapon_famas", "weapon_awp", 
	"weapon_mp5navy", "weapon_m249", "weapon_m4a1", "weapon_tmp", 
	"weapon_g3sg1", "weapon_sg552", "weapon_ak47", "weapon_p90",
	"weapon_p228", "weapon_shield", "weapon_hegrenade", "weapon_xm1014",
	"weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_usp",
	"weapon_glock18", "weapon_flashbang", "weapon_deagle"
}

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	for( new i = 0; i < 27; i ++ ) {
		RegisterHam(Ham_Item_Deploy, gszWeaponsNames[i], "fw_ItemDeploy");
		RegisterHam(Ham_Weapon_PrimaryAttack, gszWeaponsNames[i], "fw_PrimaryAttack");
		RegisterHam(Ham_Weapon_SecondaryAttack, gszWeaponsNames[i], "fw_SecondaryAttack");
	}
}

public fw_PrimaryAttack(iEnt) {
    set_pdata_float(iEnt, 46, get_gametime() + 0.001, 4);
    return HAM_SUPERCEDE;
}
    
public fw_SecondaryAttack(iEnt) {
    set_pdata_float(iEnt, 47, get_gametime() + 0.001, 4);
    return HAM_SUPERCEDE;
}

public fw_ItemDeploy(iEnt) {
    set_pdata_float(iEnt, 46, get_gametime() + 0.001, 4);
    set_pdata_float(iEnt, 47, get_gametime() + 0.001, 4);
}
Kod nie testowany, może być błąd

 

A bez tablicy
for(new szWeapon[20],i=1; i<=CSW_P90; ++i) {
if(get_weaponname(i, szWeapon, 19)) {
// rejestrowanie
}
}

tylko to zablokuje każdą broń, nawet nóż.

 

niby tak, ale gostek pisał że wszystkie :D


  • +
  • -
  • 1

#17 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 01.09.2013 22:30

z jednej strony to dziala ale dziala az za dobrze bo nie mozna nic wykonać zamiast strzału przynajmniej mi sie nie udalo xD

 

 

no i zauwazylem cos takiego ze jak zmieniam na glocka to dostaje nagle przyspieszenie xD


  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#18 d0naciak

    Godlike

  • Autor tematu
  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 02.09.2013 10:40

Jeszcze to sprawdzę, akurat dzisiaj testuje klasę do Cod'a z wykorzystaniem tego kodu ;)


  • +
  • -
  • 0

#19 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 02.09.2013 12:24

to jak sprawdzisz to daj znać bo chce wiedziec czy mam uposledzony server czy nie :D


  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#20 d0naciak

    Godlike

  • Autor tematu
  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 02.09.2013 18:19

Jeszcze popatrzę, ale to raczej zła droga jest :<

Próbowałem nawet najgłupszych sposobów (przykładem jest kod niżej), ale i tak nie chce działać :/

#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>

new const g_szBlockedWeapon[] = "weapon_glock18"; //w tym przypadku będzie to glock18

public plugin_init()
{
    register_plugin("Block Attack", "0.1", "d0naciak")

    RegisterHam(Ham_Weapon_PrimaryAttack, g_szBlockedWeapon, "fw_PrimaryAttack_Post", 1);
    RegisterHam(Ham_Item_Deploy, g_szBlockedWeapon, "fw_ItemDeploy_Post", 1);
}

public fw_PrimaryAttack_Post(iEnt)
{
    client_print(0, print_chat, "tak to dziala C:");
    set_task(0.1, "BlockAttack", iEnt);
    
    return HAM_IGNORED;
}

public fw_ItemDeploy_Post(iEnt)
{
    BlockAttack(iEnt);
    
    return HAM_IGNORED;
}

public BlockAttack(iEnt)
    set_pdata_float(iEnt, 46, get_gametime() + 0.001, 4);

d0naciak (02.09.2013 18:42):
Ew. połączyć mój sposób ze sposobem sebula, innej drogi nie widzę :[

  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych