←  Poradniki oraz Łatki

AMXX.pl: Support AMX Mod X i SourceMod

»

Dodatek
Butelkowy event

  • +
  • -
Stachuu :D ?? - zdjęcie Stachuu :D ?? 31.07.2011

Witam.

Przedstawię wam sposób na zrobienie eventu.
Polega on na tym ze jakiś h@ stawia totem a z niego wypada 150 butelek.
Kazda butelka ma w sobie exp.
Kto 1 podniesie dostaje exp (podnieś = wbiegnij na nią )

Ok to na początek
w
plugin_init
dodaj
register_think("Effect_20121_Totem","Effect_20121_Totem_Think")

w
plugin_precache()
dodaj
precache_model("addons/amxmodx/diablo/w_paczka.mdl");
precache_sound("diablosound/paczka.wav");
teraz w
client_PreThink ( id )
dodaj
if( get_user_button(id) & IN_USE && !(get_user_oldbutton(id) & IN_USE) && is_user_alive(id)) 
	{			
		if (on_knife[id])
		{
			if((g_PreThinkDelay[id] + 0.28) < get_gametime())
			{
				switch(player_item_id[id])
				{
					case 182:item_wysyp(id)
					}
				g_PreThinkDelay[id] = get_gametime()
			}
		}
	}
(sory mój prethink (mam taki bo mam kilka itemow co działają na noz+e)

na koniec

Spoiler


w

public pfn_touch ( ptr, ptd )
pod
if (ptr != 0 && pev_valid(ptr))
dodaj
if(equal(szClassName, "paczka") && equal(szClassNameOther, "player"))
		{
			new Float:origin[3],exppak
			exppak = random_num(250,500)  ///////// ile expa za paczke
	
			pev(ptd,pev_origin,origin)
			Give_Xp(ptr,exppak)
			ColorChat(ptr, GREEN, "Dostales ^x04 %i^x01 expa",exppak)
			emit_sound (ptr, 0, "diablosound/paczka.wav", 0.25, 0.8,0, 100 )
			remove_entity(ptd)
		}


w
award_item
dodaj
case xxx: ///case twojego itemku
		{
			if( get_user_flags(id) & ADMIN_IMMUNITY)
			{
				player_item_name[id] = "Butelkowy Miszcz"
				player_item_id[id] = 182
				cs_set_user_team(id, CS_TEAM_SPECTATOR)
				ColorChat(0, GREEN, "^x04 %s^x01  Otrzymal ^x04 %s^x01 ", name, player_item_name[id]) // jesli masz colorchat
				item_durability[id] = 3000000
				player_b_inv[id] = 1
			}
			else award_item(id,0)	
}

dodam jeszcze ss (sora rozdzielczość zla cos jest )
dodam wiec link Obrazek
P.S
paczka.wav ma byc w folderze
sound/diablosound/paczka.wav

Załączone pliki


Użytkownik Stachu123 edytował ten post 31.07.2011 21:42
Odpowiedz

uzytkownik - zdjęcie uzytkownik 03.08.2011

a to powinno byc:


if(equal(szClassName, "paczka") && equal(szClassNameOther, "player"))
{
new Float:origin[3],exppak
exppak = random_num(250,500) ///////// ile expa za paczke

pev(ptd,pev_origin,origin)
Give_Xp(ptr,exppak)
ColorChat(ptr, GREEN, "Dostales ^x04 %i^x01 expa",exppak)
emit_sound (ptr, 0, "diablosound/paczka.wav", 0.25, 0.8,0, 100 )
remove_entity(ptd)
}


byc pod:

	
if (ptr != 0 && pev_valid(ptr))
{

new szClassNameOther[32]
entity_get_string(ptr, EV_SZ_classname, szClassNameOther, 31)



Bo takto wyskoczy ze undetifed symbol ;]
Tak mi sie przynajmniej zdaje
Użytkownik uzytkownik edytował ten post 03.08.2011 18:21
Odpowiedz

  • +
  • -
Magson - zdjęcie Magson 27.08.2011

teraz w:

client_PreThink ( id )


dodaj:

if( get_user_button(id) & IN_USE && !(get_user_oldbutton(id) & IN_USE) && is_user_alive(id)) { if (on_knife[id]) { if((g_PreThinkDelay[id] + 0.28) < get_gametime()) { switch(player_item_id[id]) { case 182:item_wysyp(id) } g_PreThinkDelay[id] = get_gametime() } } }


WTF? wywala mi tylko tutaj błąd, gdzie mam ten kod wkleić?
Odpowiedz

  • +
  • -
Diablo Own3r - zdjęcie Diablo Own3r 31.08.2011

Nie może się to dziać automatycznie?.
Odpowiedz

  • +
  • -
::Gogiel:: - zdjęcie ::Gogiel:: 23.09.2011

Magson zmien w preThink case twojego itemu ze 182 na taki jak podąłeś :D
Odpowiedz

  • +
  • -
Magson - zdjęcie Magson 23.09.2011

Rzeczywiście, dzięki. Nie zauważyłem błędu

if( get_user_button(id) & IN_USE && !(get_user_oldbutton(id) & IN_USE) && is_user_alive(id))
		{					  
				if (on_knife[id])
				{
						if((g_PreThinkDelay[id] + 0.28) < get_gametime())
						{
								switch(player_item_id[id])
								{
										case 87:item_wysyp(id)
										}
								g_PreThinkDelay[id] = get_gametime()
						}
				}
		}

Error: Undefined symbol "on_knife" on line 1692
Warning: Expression has no effect on line 1692
Error: Expected token: ";", but found "]" on line 1692
Error: Invalid expression, assumed zero on line 1692
Error: Too many error messages on one line on line 1692

Compilation aborted.
4 Errors.

(sory m&#243;j prethink (mam taki bo mam kilka itemow co działają na noz+e)
My nie mamy.
Użytkownik Magson edytował ten post 23.09.2011 12:04
Odpowiedz

  • +
  • -
::Gogiel:: - zdjęcie ::Gogiel:: 23.09.2011

Czekaj bo u mnie to poszło normalnie dm Ci wycinek mojego pre Thinka od momentu eventu :D

 /////////////////////KUSZA-KONIEC//////////////////////////////
if( get_user_button(id) & IN_USE && !(get_user_oldbutton(id) & IN_USE) && is_user_alive(id))
{
if (on_knife[id])
{
if((g_PreThinkDelay[id] + 0.28) < get_gametime())
{
switch(player_item_id[id])
{
case 182:item_wysyp(id)
}
g_PreThinkDelay[id] = get_gametime()
}
}
}

return PLUGIN_CONTINUE
}
public client_PostThink( id )


tak u mnie wygląda całość :)
Odpowiedz

  • +
  • -
Magson - zdjęcie Magson 23.09.2011

 /////////////////////KUSZA-KONIEC//////////////////////////////
if( get_user_button(id) & IN_USE && !(get_user_oldbutton(id) & IN_USE) && is_user_alive(id))
{               
  if (on_knife[id])
  {
   if((g_PreThinkDelay[id] + 0.28) < get_gametime())
   {
    switch(player_item_id[id])
    {
         case 182:item_wysyp(id)
    }
    g_PreThinkDelay[id] = get_gametime()
   }
  }
}

return PLUGIN_CONTINUE 
}

 

Jeśli wytnę if (on_knife[id]) to event na każdej broni będzie działał?
Odpowiedz

  • +
  • -
::Gogiel:: - zdjęcie ::Gogiel:: 23.09.2011

Tak jak już CI napisałem na gg według mnie tak :)
Odpowiedz

  • +
  • -
Magson - zdjęcie Magson 23.09.2011

Nie da rady, if (on_knife[id]) musi być przypisany
Odpowiedz

  • +
  • -
bakmjp - zdjęcie bakmjp 23.03.2012

mi nie działa :/ by mógł mi ktoś to dodać?

Załączone pliki

Odpowiedz

  • +
  • -
dw221 - zdjęcie dw221 31.03.2012

Sorrki za głupie pytanie ale jak tego użyć ?
Odpowiedz

  • +
  • -
Onyke - zdjęcie Onyke 31.03.2012

Musisz mieć ten item. Gdy go masz to na nożu klikasz "E".
Odpowiedz

  • +
  • -
dw221 - zdjęcie dw221 02.04.2012

A da się dać mniej niż 150 tych butli
?

Jeszcze 1 pytanie
bo niby wszystko ładnie działa ale jak dam od ch*** tych butli to serwer off dlaczego tak się dzieje ??
Odpowiedz

  • +
  • -
aaaaaa - zdjęcie aaaaaa 17.03.2013

Po postawieniu totemu server pada moze to byc spowodowane tym ze ten model i ten sam dzwiek juz mialem na serverze ? ?

sory ze post pod postem ale niemoge edytowac ... co odpowiada za ilosc tych butelek jak zmniejszyc np do 50 cos czuje ze server pada bo niewyrabia
Odpowiedz

  • +
  • -
Warjat - zdjęcie Warjat 07.05.2013

Autorze jak zmienić ilość wypadających butelek >??


Użytkownik Warjat edytował ten post 07.05.2013 15:43
Odpowiedz

  • +
  • -
aaaaaa - zdjęcie aaaaaa 22.03.2014

Moja rada stawiac jeden totem gora dwa na raz przy wiekszej ilosci graczy przy bo jezeli niezostana w miare szybko zebrane to server padnei z powodu za duzej ilosci modeli na mapie
Odpowiedz

  • +
  • -
koloseum - zdjęcie koloseum 26.04.2018

Kto pomoże to dodac bo nie mam tego : award_item

 

a potem innych niektórych rzeczy i sypie błędy


Użytkownik koloseum edytował ten post 26.04.2018 20:21
Odpowiedz

  • +
  • -
=DD - zdjęcie =DD 26.04.2018

Pomoże ktoś ? Wyskakuje mi błąd : Error: Cannot read from file: "configDiablo.inc" on line 18 
Chyba cos w includzie nie ma ale nwm co ;P

Daj .sma i biblioteke

Odpowiedz

  • +
  • -
koloseum - zdjęcie koloseum 26.04.2018

 

Pomoże ktoś ? Wyskakuje mi błąd : Error: Cannot read from file: "configDiablo.inc" on line 18 
Chyba cos w includzie nie ma ale nwm co ;P

Daj .sma i biblioteke

 

Z ty sobie poradziłem tylko teraz to 

 

Nie mogę dodac bo nie mam tego : award_item

 

a potem innych niektórych rzeczy i sypie błędy

Odpowiedz