Witam.
Tak jak w temacie. Jak takie coś zrobić? Daje +.
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.
|
Napisano 12.05.2014 14:33
Witam.
Tak jak w temacie. Jak takie coś zrobić? Daje +.
Napisano 12.05.2014 15:28
Kod na natychmiastowe jednorazowe przeładowanie:
new bool:Reload[33] new const ReloadWeapon = ~((1<<21)|(1<<5)|(1<<2)|(1<<4)|(1<<9)|(1<<25)|(1<<29)|(1<<6)) public plugin_init() { RegisetrHam(Ham_CS_RoundRespawn,"player","Spawn") new szWeapon[17] for(new i=1; i<=CSW_P90; i++) { if( ReloadWeapon & (1<<i) && get_weaponname(i, szWeapon, charsmax(szWeapon)) ) { RegisterHam(Ham_Weapon_Reload, szWeapon, "Weapon_Reload_Post", 1) } } } public Spawn(id) { Reload[id] = false } public Weapon_Reload_Post(iEnt) { new id = get_pdata_cbase(iEnt, m_pPlayer, 4) if(!reload[id]) { if( get_pdata_int(iEnt, 54) ) { set_pdata_float(id, 83, 0.0, 5) set_pdata_float(iEnt, 48, 0.0) reload[id] = true } } }
Wrzuć sobie to do pluginu z czystą klasą
Napisano 12.05.2014 19:35
Tam gdzie jest CSW_P90 to mam podać wybraną broń?
Która liczba odpowiada za ilość przeładowań na rundę?
Dodatkowo mam takie oto błędy:
codclass_mccall.sma(37) : error 017: undefined symbol "RegisetrHam" codclass_mccall.sma(159) : error 017: undefined symbol "m_pPlayer" codclass_mccall.sma(160) : error 017: undefined symbol "reload" codclass_mccall.sma(160) : warning 215: expression has no effect codclass_mccall.sma(160) : error 001: expected token: ";", but found "]" codclass_mccall.sma(160) : error 029: invalid expression, assumed zero codclass_mccall.sma(160) : fatal error 107: too many error messages on one line
Użytkownik Lamka edytował ten post 12.05.2014 19:40
Napisano 12.05.2014 19:50
Tam gdzie jest CSW_P90 to mam podać wybraną broń?
Nie, CSW_P90 jest po prostu bronią o największym indexie dlatego to tam jest. Tzn. to działa na all bronie (no prawie bo na m3 xm04 czy jak to się nazywa nie działa)
Która liczba odpowiada za ilość przeładowań na rundę?
Aktualnie można przeładować tylko jednorazowo na rundę bo tego chciałeś ale jest za to odpowiedzialna zmienna:
Reload
Błędy:
1. - Moja literówka
2. - Moje przyzwyczajenie że zawsze mam załączoną bibloteke z danymi bytu
3. - r powinno być z dużej litery
Ja i ta moja pisownia wybacz. Łap kod bez literówek i z możliwością przeładowania tyle razy ile chcesz.
new bool:Reload[33] new const ReloadWeapon = ~((1<<21)|(1<<5)|(1<<2)|(1<<4)|(1<<9)|(1<<25)|(1<<29)|(1<<6)) #define MAX_RELOAD 5 // Teraz mozesz 5 razy przeładowac natychmiastowo public plugin_init() { RegisterHam(Ham_CS_RoundRespawn,"player","Spawn") new szWeapon[17] for(new i=1; i<=CSW_P90; i++) { if( ReloadWeapon & (1<<i) && get_weaponname(i, szWeapon, charsmax(szWeapon)) ) { RegisterHam(Ham_Weapon_Reload, szWeapon, "Weapon_Reload_Post", 1) } } } public Spawn(id) { Reload[id] = MAX_RELOAD } public Weapon_Reload_Post(iEnt) { new id = get_pdata_cbase(iEnt, 41, 4) if(Reload[id]) { if( get_pdata_int(iEnt, 54) ) { set_pdata_float(id, 83, 0.0, 5) set_pdata_float(iEnt, 48, 0.0) Reload[id]-- } } }
Napisano 12.05.2014 19:57
Ok. Skompilowało tylko jest jeden warning:
public Spawn(id) { Reload[id] = MAX_RELOAD } public Weapon_Reload_Post(iEnt) { new id = get_pdata_cbase(iEnt, 41, 4) if(Reload[id]) { if( get_pdata_int(iEnt, 54) ) { set_pdata_float(id, 83, 0.0, 5) set_pdata_float(iEnt, 48, 0.0) Reload[id]-- } } }
Public spawn to jest 153 linijka
codclass_mccall.sma(155 -- 156) : warning 213: tag mismatch
Użytkownik Lamka edytował ten post 12.05.2014 19:59
Napisano 12.05.2014 20:23
Zmieniłem. Nie ma warningów, ale nie działa tak czy siak.
Podsyłam plugin.
Napisano 12.05.2014 20:36
new bool:Reload[33]->new Reload[33]
Dzięki za pomniałem o tym
Zmieniłem. Nie ma warningów, ale nie działa tak czy siak.
Podsyłam plugin.
w ogóle nie sprawdzasz czy dany gracz posiada klase (co do natychmiastowego przeładowania) a poza tym przed chwilą testowałem wszystko pięknie działa
Napisano 12.05.2014 20:50
Nie wiem czemu, ale nie działa nadal. O co chodzi, ze sprawdzaniem, czy dany gracz posiada klasę?
Napisano 12.05.2014 20:57
Sprawdź czy plugin nie brudzi konsoli logami bo widziałem że dodałeś tam troszkę kodu i przez to może nie działać.
O co chodzi, ze sprawdzaniem, czy dany gracz posiada klasę?
O to że ta moc aktualnie nie jest pod klasę a dla każdego gracza.
Kod co ci wysłałem działa w 100% poprawnie.
Napisano 12.05.2014 22:02
Zrobiłem to samo czystej, nowej klasie i nadal nie działa. Co robię nie tak?
#include <amxmodx> #include <amxmisc> #include <codmod> #include <hamsandwich> #include <fakemeta> new Reload[33] new const ReloadWeapon = ~((1<<21)|(1<<5)|(1<<2)|(1<<4)|(1<<9)|(1<<25)|(1<<29)|(1<<6)) #define MAX_RELOAD 3 // Teraz mozesz 5 razy przeładowac natychmiastowo new const nazwa[] = "TEST "; new const opis[] = "TEST"; new const bronie = (1<<CSW_DEAGLE); new const zdrowie = 11; new const kondycja = 11; new const inteligencja = 11; new const wytrzymalosc = 11; public plugin_init() { register_plugin(nazwa, "1.0", "amxx.pl"); cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); RegisterHam(Ham_CS_RoundRespawn,"player","Spawn") new szWeapon[17] for(new i=1; i<=CSW_P90; i++) { if( ReloadWeapon & (1<<i) && get_weaponname(i, szWeapon, charsmax(szWeapon)) ) { RegisterHam(Ham_Weapon_Reload, szWeapon, "Weapon_Reload_Post", 1) } } } public Spawn(id) { Reload[id] = MAX_RELOAD } public Weapon_Reload_Post(iEnt) { new id = get_pdata_cbase(iEnt, 41, 4) if(Reload[id]) { if( get_pdata_int(iEnt, 54) ) { set_pdata_float(id, 83, 0.0, 5) set_pdata_float(iEnt, 48, 0.0) Reload[id]-- } } }
Napisano 12.05.2014 22:35
Mam pytanie na jakim os'ie ci nie działa bo chyba pomyliłem linuxdiff
Sory ziom bo normalnie linuxdiff jest ustawiane na 5:
public Weapon_Reload_Post(iEnt) { new id = get_pdata_cbase(iEnt, 41, 4) if(Reload[id]) { if( get_pdata_int(iEnt, 54, 4) ) { set_pdata_float(id, 83, 0.0, 5) set_pdata_float(iEnt, 48, 0.0, 4) Reload[id]-- } } }
Napisano 12.05.2014 23:21
version : 48/1.1.2.7/Stdio 6027 secure (10)
Nadal nie działa.
Napisano 13.05.2014 00:11
na jakim os'ie ci nie działa
version : 48/1.1.2.7/Stdio 6027 secure (10)
http://en.wikipedia....perating_system
No pojęcia nie mam gdzie jest błąd (o ile jest)
Napisano 13.05.2014 19:55
Zmieniłem i dodałem to:
public cod_class_enabled(id) { ma_klase[id] = true; } public cod_class_disabled(id) { ma_klase[id] = false; } public Spawn(id) { if(ma_klase[id]) Reload[id] = MAX_RELOAD }
Czyli dodałem tylko if(ma_klase[id]) i teraz działa.
Dzięki wielkie za pomoc.
Klasa
Klasa wampirNapisany przez Rafii, 16.03.2025 ![]() |
|
![]() |
|||
CoD Nowy
Moc Medyka - problemPugin mocmedyka włącza się w klasie w której nie powinien Napisany przez scythe1, 09.02.2023 ![]() |
|
![]() |
|||
![]() |
Klasa
[ROZWIĄZANE] poźba o klase odrodzenieNapisany przez Anonimowy09, 03.02.2023 ![]() |
|
![]() |
||
Klasa
Poszukuje KlasNapisany przez Aquamarina, 03.01.2023 ![]() |
|
![]() |
|||
![]() |
Klasa
[KOSZ] klasaklasa Napisany przez Anonimowy09, 30.12.2022 ![]() |
|
![]() |
0 użytkowników, 0 gości, 0 anonimowych