←  Poradniki, Łatki oraz Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Stary
Item Działko Orbitalne

  • +
  • -
radim's Photo radim 25.09.2011

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

9. Na koniec sma dodajesz:
Spoiler

I to wszystko !

Attached Files


Edited by radim, 14.11.2012 15:02.
Quote

  • +
  • -
Ciuchcia:D's Photo Ciuchcia:D 25.09.2011

w koncu sie doczekalem tego itemu.


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.
Quote

  • +
  • -
radim's Photo 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!"
Quote

  • +
  • -
Ciuchcia:D's Photo 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.
Quote

  • +
  • -
radim's Photo radim 25.09.2011

Musisz trzymać nóż i trzymać "E"
Quote

  • +
  • -
Ciuchcia:D's Photo Ciuchcia:D 25.09.2011

Kolego ale to w ogóle nie dziala ;/
Quote

  • +
  • -
radim's Photo radim 25.09.2011

Musisz stać w miejscu !
Quote

  • +
  • -
Ciuchcia:D's Photo Ciuchcia:D 25.09.2011

Dobra dziala :)
Edited by Ciuchcia:D, 25.09.2011 17:54.
Quote

  • +
  • -
radim's Photo radim 25.09.2011

Tak, przecież testowanego bym nie dawał !
Quote

MariO ak Killer's Photo MariO ak Killer 06.10.2011

Pólowie serwa działa połowie nie . NIE POLECAM. Pasek w połowie sie zacina.
Quote

BraciiK's Photo BraciiK 09.10.2011

juz to kiedys widzialem . :)
+
Quote

  • +
  • -
Kendzior87's Photo 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
button
i
oldbutton
z małych literek tak jak zdefiniowałeś wcześniej bo nie zadziała.
Edited by Kendzior87, 27.10.2011 18:43.
Quote

  • +
  • -
radim's Photo 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)
Quote

  • +
  • -
Kendzior87's Photo Kendzior87 28.10.2011

Czy mógłbyś jeszcze podpowiedzieć gdzie dodać to:
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.
Quote

  • +
  • -
radim's Photo 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");
Quote

  • +
  • -
dzej-dzej's Photo 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.
Quote

  • +
  • -
radim's Photo radim 29.10.2011

@up
:facepalm: Musisz powiedzieć "Sezamie, otwórz się!". Mnie się otwiera bez problemów.
Quote

  • +
  • -
dzej-dzej's Photo dzej-dzej 29.10.2011

No a mi nie chce:( przez dwie przeglądarki próbuje i nie da rade:(
Quote

  • +
  • -
Kendzior87's Photo 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

Attached Files

Quote

  • +
  • -
dzej-dzej's Photo dzej-dzej 03.11.2011

Mi to nie działa nie wiem dlaczego, a gdy zmienimy na nóż to trzymamy LPM i E czy tylko samo E ??



Posted Image
Edited by dzej-dzej, 03.11.2011 22:25.
Quote