Item Działko Orbitalne
radim
25.09.2011
1. Rozpoczynamy od tworzenia normalnego itemu. Po ostatnim twoim itemie dodajesz:
2. Następnym krokiem jest opis tego przedmiotu. Po ostatnim opisie itemu, dodajesz opis działka:
UWAGA ! Pamiętaj, że ostatni item oraz jego opis nie może mieć przecinka na końcu !
3. Dodajesz pod includami:
4. Następnie nad public plugin_initD() dodajesz:
5. W public plugin_init() dodajemy:
6. W public plugin_precache() dodajemy:
7. Szukamy public CmdStart i tam dodajemy:
8. Szukasz public ResetHUD(id) i tam dodajesz:
9. Na koniec sma dodajesz:
Edited by radim, 14.11.2012 15:02.
"Działko Orbitalne"
2. Następnym krokiem jest opis tego przedmiotu. Po ostatnim opisie itemu, dodajesz opis działka:
"Po uzyciu zostaje wystrzelona wiazka laserowa niszczaca wszystkich wrogow w zasiegu 5,000u. Item mozna uzyc tylko raz na runde"
UWAGA ! Pamiętaj, że ostatni item oraz jego opis nie może mieć przecinka na końcu !
3. Dodajesz pod includami:
#define MAKE_ENTITY 564
4. Następnie nad public plugin_initD() dodajesz:
new const W_MODEL[] = "models/w_battery.mdl"; new const SOUND_APPROACH[] = "ioncannon/ic_approaching.wav" new const SOUND_BEACON[] = "ioncannon/ic_beacon_set.wav" new const SOUND_STOP[] = "vox/_comma.wav" new const SOUND_BEEP[] = "ioncannon/ic_beacon_beep.wav" new const SOUND_ATTACK[] = "ioncannon/ic_attack.wav" new const SOUND_READY[] = "ioncannon/ic_ready.wav" new const SOUND_PLANT[] = "ioncannon/ic_beacon_plant.wav" new BlueFire, LaserFlame, IonBeam, Shockwave, BlueFlare ; new IonShake; new bool:g_bUsed[33]; new Float:g_fBeamOrigin[33][8][3], Float:g_fBeamMidOrigin[33][3], Float:g_fRotationSpeed[33], Float:g_fDegrees[33][8], Float:g_fDistance[33], Float:g_fBeaconTime[33] ; new g_iEnt[33], g_iPitch[33], g_iIonState[33] ; enum { NONE = 0, PLANTING, PLANTED };
5. W public plugin_init() dodajemy:
IonShake = get_user_msgid("ScreenShake")
6. W public plugin_precache() dodajemy:
LaserFlame = precache_model("sprites/ioncannon/ic_laserflame.spr"); IonBeam = precache_model("sprites/ioncannon/ic_ionbeam.spr"); Shockwave = precache_model("sprites/shockwave.spr") BlueFlare = precache_model("sprites/ioncannon/ic_bflare.spr") engfunc(EngFunc_PrecacheSound, SOUND_APPROACH) engfunc(EngFunc_PrecacheSound, SOUND_BEACON) engfunc(EngFunc_PrecacheSound, SOUND_BEEP) engfunc(EngFunc_PrecacheSound, SOUND_STOP) engfunc(EngFunc_PrecacheSound, SOUND_ATTACK) engfunc(EngFunc_PrecacheSound, SOUND_READY) engfunc(EngFunc_PrecacheSound, SOUND_PLANT) precache_model(W_MODEL)
7. Szukamy public CmdStart i tam dodajemy:
if(informacje_przedmiotu_gracza[id][0] == xx) // xx - numer twojego itemu { if(g_iIonState[id] == NONE && !g_bUsed[id] && (Button & IN_USE) && !(OldButton & IN_USE) && get_user_weapon(id) == CSW_KNIFE) { g_iPitch[id] = 97 g_fBeaconTime[id] = 1.12 emit_sound(id, CHAN_WEAPON, SOUND_BEACON, VOL_NORM, ATTN_NORM, 0, PITCH_NORM) message_begin(MSG_ONE, get_user_msgid("BarTime"), {0, 0, 0}, id) write_byte(5) write_byte(0) message_end() g_iIonState[id] = PLANTING set_task(5.0, "MakeTransmiter", id+MAKE_ENTITY) return FMRES_IGNORED } if(g_iIonState[id] == PLANTING && (Button & (IN_ATTACK | IN_ATTACK2 | IN_BACK | IN_FORWARD | IN_CANCEL | IN_JUMP | IN_MOVELEFT | IN_MOVERIGHT | IN_RIGHT))) { remove_task(id+MAKE_ENTITY) message_begin(MSG_ONE, get_user_msgid("BarTime"), {0, 0, 0}, id) write_byte(0) write_byte(0) message_end() g_iIonState[id] = NONE emit_sound(id, CHAN_WEAPON, SOUND_BEACON, VOL_NORM, ATTN_NORM, (1<<5), PITCH_NORM) return FMRES_IGNORED } }
8. Szukasz public ResetHUD(id) i tam dodajesz:
g_bUsed[id] = false
9. Na koniec sma dodajesz:
Spoiler
I to wszystko !
Attached Files
Edited by radim, 14.11.2012 15:02.
Ciuchcia:D
25.09.2011
w koncu sie doczekalem tego itemu.
Mam problem nie moge skomplikowac ;/
takie cos pisze
Dobra znalazlem przyczyne powinno byc tak public CmdStart
A tu link do modeli
www.speedyshare.com/files/30190122/download/cstrike.zip
Edited by Ciuchcia:D, 25.09.2011 15:31.
Mam problem nie moge skomplikowac ;/
takie cos pisze
Welcome to the AMX Mod X 1.8.1-300 Compiler. Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team QTM_CodMod.sma(1262) : warning 217: loose indentation QTM_CodMod.sma(1283) : warning 217: loose indentation QTM_CodMod.sma(1285) : error 017: undefined symbol "Button" QTM_CodMod.sma(1302) : error 017: undefined symbol "Button" QTM_CodMod.sma(1315) : warning 217: loose indentation QTM_CodMod.sma(1600) : warning 217: loose indentation QTM_CodMod.sma(4267) : warning 209: function "msgScreenFade" should return a value QTM_CodMod.sma(4999) : warning 203: symbol is never used: "perk_desc" QTM_CodMod.sma(4999) : warning 203: symbol is never used: "perk_name" 2 Errors. Could not locate output file QTM_CodMod.amxx (compile failed).
Dobra znalazlem przyczyne powinno byc tak public CmdStart
if(informacje_przedmiotu_gracza[id][0] == xx) // xx - numer twojego itemu { if(g_iIonState[id] == NONE && !g_bUsed[id] && (button & IN_USE) && !(oldbutton & IN_USE) && get_user_weapon(id) == CSW_KNIFE) { g_iPitch[id] = 97 g_fBeaconTime[id] = 1.12 emit_sound(id, CHAN_WEAPON, SOUND_BEACON, VOL_NORM, ATTN_NORM, 0, PITCH_NORM) message_begin(MSG_ONE, get_user_msgid("BarTime"), {0, 0, 0}, id) write_byte(5) write_byte(0) message_end() g_iIonState[id] = PLANTING set_task(5.0, "MakeTransmiter", id+MAKE_ENTITY) return FMRES_IGNORED } if(g_iIonState[id] == PLANTING && (button & (IN_ATTACK | IN_ATTACK2 | IN_BACK | IN_FORWARD | IN_CANCEL | IN_JUMP | IN_MOVELEFT | IN_MOVERIGHT | IN_RIGHT))) { remove_task(id+MAKE_ENTITY) message_begin(MSG_ONE, get_user_msgid("BarTime"), {0, 0, 0}, id) write_byte(0) write_byte(0) message_end() g_iIonState[id] = NONE emit_sound(id, CHAN_WEAPON, SOUND_BEACON, VOL_NORM, ATTN_NORM, (1<<5), PITCH_NORM) return FMRES_IGNORED } }
A tu link do modeli
www.speedyshare.com/files/30190122/download/cstrike.zip
Edited by Ciuchcia:D, 25.09.2011 15:31.
radim
25.09.2011
Kasujesz to:
new const perk_name[] = "Dzialo Orbitalne" new const perk_desc[] = "Po uzyciu zostaje wystrzelona wiazka laserowa niszczaca wszystkich wrogow w zasiegu 20,000u. Perk niczy sie po jednym uzyciu!"
Ciuchcia:D
25.09.2011
To ja wiem, ale nie wiem jak to sie uzywa wszystko zrobilem wgralem na serwer wciskam klawisz E i nic nie reaguje.
MariO ak Killer 06.10.2011
Pólowie serwa działa połowie nie . NIE POLECAM. Pasek w połowie sie zacina.
Kendzior87
27.10.2011
mam problem z pkt nr 8. w moim cod nie ma public ResetHUD(id) i nie wiem gdzie dodać wartość z tego punktu...
public ResetHUD(id) występuje chyba w nowym codzie.
dodatkowo w punkcie 7 powinno byc
Edited by Kendzior87, 27.10.2011 18:43.
public ResetHUD(id) występuje chyba w nowym codzie.
dodatkowo w punkcie 7 powinno byc
buttoni
oldbuttonz małych literek tak jak zdefiniowałeś wcześniej bo nie zadziała.
Edited by Kendzior87, 27.10.2011 18:43.
radim
28.10.2011
Zależy kto ma jak "podpisaną funkcje" ja mam:
new Button = get_uc(uc_handle, UC_Buttons) new OldButton = pev(id, pev_oldbuttons)
Kendzior87
28.10.2011
Czy mógłbyś jeszcze podpowiedzieć gdzie dodać to:
public ResetHUD(id) nie występuje standardowo w starym cod mod.
Nie dodałem tego wpisu i można stawiać bombę / baterię ale znika po wybuchu tylko leży aż do zmiany mapy. Nie wiem do końca czy ten jeden wpisik jest tego przyczyną, ale domyślam się też że przez to można użyć broni raz na mapę
Opisałem ten problem w tym temacie -> http://amxx.pl/topic...alko-orbitalne/
Edited by Kendzior87, 28.10.2011 14:28.
g_bUsed[id] = false
public ResetHUD(id) nie występuje standardowo w starym cod mod.
Nie dodałem tego wpisu i można stawiać bombę / baterię ale znika po wybuchu tylko leży aż do zmiany mapy. Nie wiem do końca czy ten jeden wpisik jest tego przyczyną, ale domyślam się też że przez to można użyć broni raz na mapę
Opisałem ten problem w tym temacie -> http://amxx.pl/topic...alko-orbitalne/
Edited by Kendzior87, 28.10.2011 14:28.
radim
28.10.2011
Jak nie ma ResetHUD to gdzieś w sma:
public ResetHUD(id) { if(!is_user_connected(id)) return PLUGIN_HANDLED; g_bUsed[id] = false return PLUGIN_HANDLED }I w plugin_init:
register_event("ResetHUD", "ResetHUD", "abe");
dzej-dzej
29.10.2011
Jeszcze jak by w pkt 9 spoiler się otwierał było by fajnie. Czy naprawisz to radim był bym bardzo wdzięczny.
radim
29.10.2011
@up
Musisz powiedzieć "Sezamie, otwórz się!". Mnie się otwiera bez problemów.
Musisz powiedzieć "Sezamie, otwórz się!". Mnie się otwiera bez problemów.
Kendzior87
29.10.2011
Masz plik txt ze spoilerem.
Ja mam inne pytanie - ten item zadaje 60dmg. Nic nie zmieniałem podczas dodawania. Testowałem wielokrotnie. Czy ktoś może mi wskazać która/które linie odpowiadają za zadawany dmg?
Pozdrawiam
Ja mam inne pytanie - ten item zadaje 60dmg. Nic nie zmieniałem podczas dodawania. Testowałem wielokrotnie. Czy ktoś może mi wskazać która/które linie odpowiadają za zadawany dmg?
Pozdrawiam