←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Tworzenie czegoś na odosobnioną walutę

  • +
  • -
Robiin - zdjęcie Robiin 19.04.2016

Cześć,

chciałem zrobić sklepik, za inną walutę, niż $/JBpacki itp. nie do końca wiem jak się za to zabrać, bo na początku miałem na myśli użycie monet z cod moda, ale nie wiem czy to wypali.

 

 

Dla przykładu (żebym łatwiej zrozumiał, i miał wzór)

Tak na szybko napisane, nawet nie patrze czy działa, załóżmy że waluta jest wykorzystana przez codmoda, czyli monety. chciałbym aby waluta nosiła nazwę kasa_poprawna, ale to już zmienię sam, jeżeli będzie trzeba ^^

 

Prosiłbym tylko o przykładzik ;>

Aha, no i oczywiście jakieś wytłumaczenie, co do zarabiania kasy, a dokładniej za fragi ;>

 

Spoiler

Użytkownik asik edytował ten post 19.04.2016 01:09
Odpowiedz

  • +
  • -
rzeznik9871 - zdjęcie rzeznik9871 19.04.2016

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

new kasa_poprawna[33]
				
public plugin_init()
{
	register_plugin("sklep", "0.8", "aS");
	register_clcmd("say /sklepik", "ShowMenu", _, "sklep");
	
	register_event("DeathMsg", "DeathMsg", "a")
}

public ShowMenu(id, lvl, cid)
{
	if(!cmd_access(id, lvl, cid, 0))
		return PLUGIN_HANDLED;

	new menu = menu_create("sklepik", "menu_poprawne");

	menu_additem(menu, "+10 hp", "", 0); // case 0

	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	menu_setprop(menu, MPROP_BACKNAME, "\r[\wWroc\r]");
	menu_setprop(menu, MPROP_NEXTNAME, "\r[\wDalej\r]");
	menu_setprop(menu, MPROP_EXITNAME, "\r[\wWyjdz\r]");
	menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");

	menu_display(id, menu, 0);

	return PLUGIN_HANDLED;
}

public menu_poprawne(id, menu, item)
{
	if(item == MENU_EXIT)
	{
		menu_cancel(id);
		return PLUGIN_HANDLED;
	}

	new command[6], name[64], access, callback;

	menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);

	switch(item)
	{
		case 0: 
		{
			if(get_user_kasa_poprawna(id)>=1000)
			{
				set_user_health(id, get_user_health(id)+10)
				new name[33];
				get_user_name(id, name, 32)
				new hp = get_user_health(id)
				set_user_kasa_poprawna(id,get_user_kasa_poprawna(id)-1000)
				ColorChat(id, GREEN,"%s,^x01 Twoje HP zostalo zwiekszone o 10. Twoje hp po dodaniu, wynosi %i", name, hp)
			} else {
				new name[33];
				get_user_name(id, name, 32)
				new hp = get_user_health(id)
				ColorChat(id, GREEN,"%s,^x01 Nie masz wystarczajaco kasy. Twoje hp to nadal %i", name, hp)
			}
		}

	}

	menu_display(id, menu, 0);

	return PLUGIN_HANDLED;
}
public DeathMsg()
{
	new kid = read_data(1)	//zabojca
	
	new vid = read_data(2)	// ofiara
	
	//new hs = read_data(3)	// HeadShot (1 == true)
	
	new weapon[64]		
	read_data(4,weapon,63)	//krotka nazwa broni (bez weapon_ / CSW_ )
 
	if(kid==vid) return PLUGIN_CONTINUE
	if(kid==0) return PLUGIN_CONTINUE
	client_print(kid,3,"dostales 10 kasa_poprawna za zabicie przeciwnika")
	set_user_kasa_poprawna(kid,get_user_kasa_poprawna(kid)+10)
	return PLUGIN_CONTINUE
}
public client_disconnect(id) 
{
kasa_poprawna[id]=0 
}
stock set_user_kasa_poprawna(index,ammount) 
{
kasa_poprawna[index]=ammount 
}
stock get_user_kasa_poprawna(index) 
{
return kasa_poprawna[index] 
}

dobrze zrozumialem?

Odpowiedz

  • +
  • -
Robiin - zdjęcie Robiin 19.04.2016

Chodziło mi o samą zasadę tworzenia waluty, i przy okazji żeby można było ją zarobić, to trzeba kogoś zabić.

Inną walutę, niż dolary.

Odpowiedz

  • +
  • -
rzeznik9871 - zdjęcie rzeznik9871 19.04.2016

no to tak zrobilem ???? 

 

masz zmienna globalna 

kasa_poprawna[33]

ktora reprezentuje nasza walute 

nastepnie tworzysz stocki takie jak nizej 

}
stock set_user_kasa_poprawna(index,ammount) 
{
kasa_poprawna[index]=ammount 
}
stock get_user_kasa_poprawna(index) 
{
return kasa_poprawna[index] 
}

raczej rozumiesz jak to dziala ew mozesz robic to bez stockow stosujac kasa_poprawna[id]+=10 (dziala tak samo jak (set_... itp))

rejestrujesz event smierci

	register_event("DeathMsg", "DeathMsg", "a")

a w nim dodajesz hajs dla gracza ktory zabil + wyswietlasz mu wiadomosc tak jak nizej...

public DeathMsg()
{
	new kid = read_data(1)	//zabojca
	
	new vid = read_data(2)	// ofiara
	
	//new hs = read_data(3)	// HeadShot (1 == true)
	
	new weapon[64]		
	read_data(4,weapon,63)	//krotka nazwa broni (bez weapon_ / CSW_ )
 
	if(kid==vid) return PLUGIN_CONTINUE
	if(kid==0) return PLUGIN_CONTINUE
	client_print(kid,3,"dostales 10 kasa_poprawna za zabicie przeciwnika")
	set_user_kasa_poprawna(kid,get_user_kasa_poprawna(kid)+10)
	return PLUGIN_CONTINUE
}

na koniec 

public client_disconnect(id) 
{
kasa_poprawna[id]=0 
}

aby ktos kto wejdzie nie mial kasy gracza ktory wyszedl

 

zrozumiale?

Odpowiedz

  • +
  • -
Robiin - zdjęcie Robiin 19.04.2016

Mogę dodać komendę /kasa, i set_user_kasa_poprawna(id, get_user_kasa_poprawna(id)+10), i zadziała?  ;>

Odpowiedz

  • +
  • -
rzeznik9871 - zdjęcie rzeznik9871 19.04.2016

Mogę dodać komendę /kasa, i set_user_kasa_poprawna(id, get_user_kasa_poprawna(id)+10), i zadziała?  ;>

tak

Odpowiedz

  • +
  • -
Robiin - zdjęcie Robiin 19.04.2016

 

Mogę dodać komendę /kasa, i set_user_kasa_poprawna(id, get_user_kasa_poprawna(id)+10), i zadziała?  ;>

tak

 

 

A info o kasie na hudzie? Bo mi nie działa ;>

		set_hudmessage(0, 255, 0, -1.0, 0.78, 0, 6.0, 1.0)
		show_hudmessage(id, "Kasa: %i", get_user_kasa_poprawna(id))
Odpowiedz

  • +
  • -
rzeznik9871 - zdjęcie rzeznik9871 19.04.2016

gdzie dokladnie tego huda wyswietlasz tzn w jakiej funkcji bo mi wszystko dziala elegancko

Odpowiedz

  • +
  • -
Robiin - zdjęcie Robiin 19.04.2016

Osobnym publiciem, z taskiem w init

Odpowiedz

  • +
  • -
rzeznik9871 - zdjęcie rzeznik9871 19.04.2016

public client_putinserver(id)
Odpowiedz

  • +
  • -
Robiin - zdjęcie Robiin 19.04.2016

Nie działa w putinserver ;>

Odpowiedz