←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Jak zabrać komus kille :)

Frezzi's Photo Frezzi 01.09.2014

Witam.

 

 

Mam pytanie jak po wybraniu opcji  np : Zwiększ Hp +1 (koszt 15 killi) .

To jaki jest kod na zabranie tych kili?

Quote

  • +
  • -
Wielkie Jol's Photo Wielkie Jol 01.09.2014

set_user_frags(index, get_user_frags(index)-ilosc_killi);
Quote

Frezzi's Photo Frezzi 01.09.2014

a mógłbyś dodać to tego , masz podane komendy , bo ja nie mam bladego pojęcia :D

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Upgrade"
#define VERSION "1.0"
#define AUTHOR "Frezzi"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /upgrade", "upgrade");..
}
 
public upgrade(id)
{
new menu = menu_create("UpGrade menu","by Frezzi")
menu_additem(menu,"Zwiększ HP +1hp (koszt 15 killi)","1",0)
menu_additem(menu,"Zwiększ Dmg +1hp (koszt 20 killi)","2",0)
menu_additem(menu,"Zmiejsz Widoczność (koszt 30 killi)","3",0)
menu_setprop(menu,MPROP_NUMBER_COLOR,"\r")	
menu_setprop(menu,MPROP_EXITNAME,"Wyjscie")
menu_setprop(menu,MPROP_NEXTNAME,"Nastepne")
menu_setprop(menu,MPROP_BACKNAME,"Wstecz")
menu_display(id,menu,0)
}
 
public cos_tam2(id,menu,item)
{
if(item==MENU_EXIT)
{
menu_destroy(menu)
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 1 :
{
//opcja 1
}
case 2:
{
//opcja 2
}
case 3:
{
//opcja 3
}
}
}


Quote

  • +
  • -
radim's Photo radim 01.09.2014

Wielkie Jol
Może i zabierze kille ale nie będą widoczne w tablicy wyników, dlatego po ustawieniu fragów należy ją "odświeżyć".

new gmsgScoreInfo

gmsgScoreInfo = get_user_msgid("ScoreInfo")

set_user_frags(id,get_user_frags(id)-ilosc_fragow)
message_begin(MSG_ALL,gmsgScoreInfo) 
write_byte(user) 
write_short(frags) 
write_short(cs_get_user_deaths(id)) 
write_short(0) 
write_short(get_user_team(id)) 
message_end()
get_user_msgid do plugin_init
Quote

Frezzi's Photo Frezzi 01.09.2014

Możecie podać cały kod a nie rozpisywać to na części :D

Quote

  • +
  • -
radim's Photo radim 01.09.2014

A podałem nie cały kod, brakuje czegoś?
Zmienną 'gmsgScoreInfo' dodajesz na plugin_init, gmsgScoreInfo = get_user_msgid("ScoreInfo") dodajesz w plugin_init, a resztę kodu umieszczasz w odpowiednim case po wyborze opcji z menu.

Quote

Frezzi's Photo Frezzi 01.09.2014

Możesz ty to dodać bo ja zielony jestem :)

Quote

  • +
  • -
radim's Photo radim 01.09.2014

/* Plugin generated by AMXX-Studio */
 
#include <amxmodx>
#include <amxmisc>
 
#define PLUGIN "Upgrade"
#define VERSION "1.0"
#define AUTHOR "Frezzi"
 
new gmsgScoreInfo
 
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
 
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /upgrade", "upgrade")
gmsgScoreInfo = get_user_msgid("ScoreInfo")
}
 
public upgrade(id)
{
new menu = menu_create("UpGrade menu","by Frezzi")
menu_additem(menu,"Zwiększ HP +1hp (koszt 15 killi)","1",0)
menu_additem(menu,"Zwiększ Dmg +1hp (koszt 20 killi)","2",0)
menu_additem(menu,"Zmiejsz Widoczność (koszt 30 killi)","3",0)
menu_setprop(menu,MPROP_NUMBER_COLOR,"\r") 
menu_setprop(menu,MPROP_EXITNAME,"Wyjscie")
menu_setprop(menu,MPROP_NEXTNAME,"Nastepne")
menu_setprop(menu,MPROP_BACKNAME,"Wstecz")
menu_display(id,menu,0)
}
 
public cos_tam2(id,menu,item)
{
if(item==MENU_EXIT)
{
menu_destroy(menu)
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 1 :
{
new ilosc_fragow = 15
set_user_frags(id,get_user_frags(id)-ilosc_fragow)
message_begin(MSG_ALL,gmsgScoreInfo) 
write_byte(id) 
write_short(frags) 
write_short(cs_get_user_deaths(id)) 
write_short(0) 
write_short(get_user_team(id)) 
message_end()
}
case 2:
{
//opcja 2
}
case 3:
{
//opcja 3
}
}
}

Jeżeli jesteś zielony, nie bierz się od razu za tak 'zaawansowany' plugin skoro i tak nic w nim nie pojmujesz. Polecam zajrzeć do działu "Tutoriale" i tam się czegoś poduczyć
Quote

Frezzi's Photo Frezzi 02.09.2014

Już trochę poczytałem ^^ , ale co ci da skoro ja chce aby  1. zabierało 15 kill 2. 30 a 3.50?
 

Quote

  • +
  • -
GoldenKill's Photo GoldenKill 02.09.2014

Sprawdź 

public UTIL_Buyforkille(id,amount)
{
	if (get_user_frags(id) >= amount)
	{
		set_user_frags(id,get_user_frags(id)-amount)
		message_begin(MSG_ALL,gmsgScoreInfo) 
		write_byte(id) 
		write_short(frags) 
		write_short(cs_get_user_deaths(id)) 
		write_short(0) 
		write_short(get_user_team(id)) 
		message_end()
		return true
	}
	else
	{
		client_print(id,print_chat,"Nie masz tyle killi !")
		return false
	}
	
	return false
}


Przykład 

case 1:
{
	if (!UTIL_Buyforkille(id,15))
		return PLUGIN_HANDLED
	Moc 1
	return PLUGIN_HANDLED
}
case 2:
{
	if (!UTIL_Buyforkille(id,30))
		return PLUGIN_HANDLED
	Moc 2
	return PLUGIN_HANDLED
}
case 3:
{
	if (!UTIL_Buyforkille(id,50))
		return PLUGIN_HANDLED
	Moc 3
	return PLUGIN_HANDLED
}
Quote

Frezzi's Photo Frezzi 02.09.2014

okej za chwile wgram na serwer sek

 

Quote

Frezzi's Photo Frezzi 02.09.2014

errory przy kompilacji


pliki.sma(14) : error 029: invalid expression, assumed zero
pliki.sma(15) : warning 217: loose indentation
pliki.sma(17) : error 029: invalid expression, assumed zero
pliki.sma(20) : error 029: invalid expression, assumed zero
pliki.sma(20) : error 017: undefined symbol "upgrade"
pliki.sma(30) : error 017: undefined symbol "id"
pliki.sma(30) : warning 215: expression has no effect
pliki.sma(30) : warning 215: expression has no effect
pliki.sma(30) : error 001: expected token: ";", but found ")"
pliki.sma(30) : error 029: invalid expression, assumed zero
pliki.sma(30) : fatal error 107: too many error messages on one line

Kod wygląda tak:

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Upgrade"
#define VERSION "1.0"
#define AUTHOR "Frezzi"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /upgrade", "upgrade");..
}
 
public upgrade(id)
{
new menu = menu_create("UpGrade menu","by Frezzi")
menu_additem(menu,"Zwiększ HP +1hp (koszt 15 killi)","1",0)
menu_additem(menu,"Zwiększ Dmg +1hp (koszt 20 killi)","2",0)
menu_additem(menu,"Zmiejsz Widoczność (koszt 30 killi)","3",0)
menu_setprop(menu,MPROP_NUMBER_COLOR,"\r")	
menu_setprop(menu,MPROP_EXITNAME,"Wyjscie")
menu_setprop(menu,MPROP_NEXTNAME,"Nastepne")
menu_setprop(menu,MPROP_BACKNAME,"Wstecz")
menu_display(id,menu,0)
}
 
public byFrezzi(id,menu,item)
{
if(item==MENU_EXIT)
{
menu_destroy(menu)
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 1:
public UTIL_Buyforkille(id,amount)
{
	if (get_user_frags(id) >= amount)
	{
		set_user_frags(id,get_user_frags(id)-amount)
		message_begin(MSG_ALL,gmsgScoreInfo) 
		write_byte(id) 
		write_short(frags) 
		write_short(cs_get_user_deaths(id)) 
		write_short(0) 
		write_short(get_user_team(id)) 
		message_end()
		return true
	}
	else
	{
		client_print(id,print_chat,"Nie masz tyle killi !")
		return false
	}
	
	return false
}

{
	if (!UTIL_Buyforkille(id,15))
		return PLUGIN_HANDLED
	Moc 1
	return PLUGIN_HANDLED
}
case 2:
{
	if (!UTIL_Buyforkille(id,30))
		return PLUGIN_HANDLED
	Moc 2
	return PLUGIN_HANDLED
}
case 3:
{
	if (!UTIL_Buyforkille(id,50))
		return PLUGIN_HANDLED
	Moc 3
	return PLUGIN_HANDLED
}


Quote

  • +
  • -
GoldenKill's Photo GoldenKill 02.09.2014

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>

#define PLUGIN "Upgrade"
#define VERSION "1.0"
#define AUTHOR "Frezzi"

new gmsgScoreInfo

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_clcmd("say /upgrade", "upgrade")
	gmsgScoreInfo = get_user_msgid("ScoreInfo")
}

public UTIL_Buyforkille(id,amount)
{
	if (get_user_frags(id) >= amount)
	{
		set_user_frags(id,get_user_frags(id)-amount)
		message_begin(MSG_ALL,gmsgScoreInfo) 
		write_byte(id) 
		write_short(frags) 
		write_short(cs_get_user_deaths(id)) 
		write_short(0) 
		write_short(get_user_team(id)) 
		message_end()
		return true
	}
	else
	{
		client_print(id,print_chat,"Nie masz tyle killi !")
		return false
	}
	
	return false
}

public upgrade(id)
{
	new menu = menu_create("UpGrade menu","by Frezzi")
	menu_additem(menu,"Zwiększ HP +1hp (koszt 15 killi)","1",0)
	menu_additem(menu,"Zwiększ Dmg +1hp (koszt 20 killi)","2",0)
	menu_additem(menu,"Zmiejsz Widoczność (koszt 30 killi)","3",0)
	menu_setprop(menu,MPROP_NUMBER_COLOR,"\r") 
	menu_setprop(menu,MPROP_EXITNAME,"Wyjscie")
	menu_setprop(menu,MPROP_NEXTNAME,"Nastepne")
	menu_setprop(menu,MPROP_BACKNAME,"Wstecz")
	menu_display(id,menu,0)
}

public cos_tam2(id,menu,item)
{
	if(item==MENU_EXIT)
	{
		menu_destroy(menu)
	}
	new data[6], iName[64]
	new access, callback
	menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
	new key = str_to_num(data)
	switch(key)
	{
		case 1:
		{
			if (!UTIL_Buyforkille(id,15))
				return PLUGIN_HANDLED
			Moc 1
			return PLUGIN_HANDLED
		}
		case 2:
		{
			if (!UTIL_Buyforkille(id,30))
				return PLUGIN_HANDLED
			Moc 2
			return PLUGIN_HANDLED
		}
		case 3:
		{
			if (!UTIL_Buyforkille(id,50))
				return PLUGIN_HANDLED
			Moc 3
			return PLUGIN_HANDLED
		}
	}
	return PLUGIN_HANDLED
}

Zamiast Moc 1/Moc 2/Moc 3 dajesz swoją moc

Quote

Frezzi's Photo Frezzi 02.09.2014

wezmę do kompilacji  :)  i zmodyfikuje plugin o dodatki :) thx wielkie :D

Quote