Skocz do zawartości
Szukaj w
  • Więcej opcji...
Znajdź wyniki, które...
Szukaj wyników w...
ZetDW

cod stary Item Działko Orbitalne

Brak odpowiedzi w tym temacie

Rekomendowane odpowiedzi

1. Rozpoczynamy od tworzenia normalnego itemu. Po ostatnim twoim itemie dodajesz:

"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

 

Źródło amxx.pl

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×