←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Czy można zablkowoać komende /sklep gdy je...

  • +
  • -
Kaski8 - zdjęcie Kaski8 26.12.2014

Tak jak w temacie jakiś mały plugin czy coś ? 1 gracz na serverze podsadza pake zdobywa kase i w sklepie kupuje exp -.- albo to samo z hostami. Coś anty 'cwaniaczkowego' 

Odpowiedz

  • +
  • -
Mychu - zdjęcie Mychu 26.12.2014

Tak daj sma

Odpowiedz

  • +
  • -
Kaski8 - zdjęcie Kaski8 26.12.2014

#include <amxmodx>
#include <codmod>
#include <engine>
#include <cstrike>
#include <fun>
#include <colorchat>
 
new ibuprofen, fenacetyna, tramal, amfetamina, lotto, doswiadczenie, ruletka, ibuhp, fenhp, tramhp, expmin, expmax;
new Float:gravity;
 
public plugin_init() 
{
register_plugin("CodShop by MieTeK", "1.2", "MieTeK");
 
// Komendy
register_clcmd("say /sklep", "Sklep");
register_clcmd("say /shop", "Sklep");
 
// Cvary
register_cvar("shop_ibuprofen", "4000");
register_cvar("shop_fenacetyna", "3000");
register_cvar("shop_tramal", "6000");
register_cvar("shop_amfetamina", "16000");
register_cvar("shop_lotto", "16000");
register_cvar("shop_doswiadczenie", "16000");
register_cvar("shop_ruletka", "10000");
register_cvar("shop_ibuhp", "10");
register_cvar("shop_fenhp", "25");
register_cvar("shop_tramhp", "50");
register_cvar("shop_gravity", "0.50");
register_cvar("shop_expmin", "25");
register_cvar("shop_expmax", "250");
 
 
}
 
public Sklep(id)
{
 
// Pobieranie cvar
ibuprofen = get_cvar_num("shop_ibuprofen");
fenacetyna = get_cvar_num("shop_fenacetyna");
tramal = get_cvar_num("shop_tramal");
amfetamina = get_cvar_num("shop_amfetamina");
lotto = get_cvar_num("shop_lotto");
doswiadczenie = get_cvar_num("shop_doswiadczenie");
ruletka = get_cvar_num("shop_ruletka");
ibuhp = get_cvar_num("shop_ibuhp");
fenhp = get_cvar_num("shop_fenhp");
tramhp = get_cvar_num("shop_tramhp");
gravity = get_cvar_float("shop_gravity");
expmin = get_cvar_num("shop_expmin");
expmax = get_cvar_num("shop_expmax");
 
new tytul[25], ibu[65], fen[65], tra[65], amf[65], lot[65], dos[65], rul[65];
format(tytul, 24, "\rSklep by \yMieTeK");
formatex(ibu, 64, "Ibuprofen \r[Leczy %i HP] \yKoszt:\r %i$", ibuhp, ibuprofen);
formatex(fen, 64, "Fenacetyna \r[Leczy %i HP] \yKoszt:\r %i$", fenhp, fenacetyna);
formatex(tra, 64, "Tramal \r[Leczy %i HP] \yKoszt:\r %i$", tramhp, tramal);
formatex(amf, 64, "Amfetamina \r[Wyzej skaczesz] \yKoszt:\r %i$", amfetamina);
formatex(lot, 64, "Lotto \r[Losowanie bonusow] \yKoszt:\r %i$", lotto);
formatex(dos, 64, "Doswiadczenie \r[Dostajesz losowy EXP] \yKoszt:\r %i$", doswiadczenie);
formatex(rul, 64, "Ruletka \r[Dostajesz losowy perk] \yKoszt:\r %i$", ruletka);
 
new menu = menu_create(tytul, "Sklep_Handler");
menu_additem(menu, ibu, "1");
menu_additem(menu, fen, "1");
menu_additem(menu, tra, "1");
menu_additem(menu, amf, "1");
menu_additem(menu, lot, "1");
menu_additem(menu, dos, "1");
menu_additem(menu, rul, "1");
menu_display(id, menu);
 
}
 
public Sklep_Handler(id, menu, item)
{
 
if(!is_user_alive(id) || !is_user_connected(id))
return PLUGIN_CONTINUE;
 
new zdrowie = get_user_health(id);
new kasa = cs_get_user_money(id);
new maxzdrowie = cod_get_user_health(id)+100
 
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
 
switch(item)
{
case 0:
{
if(kasa >= ibuprofen)
{
new nowe_zdrowie = (zdrowie+ibuhp);
if(nowe_zdrowie < maxzdrowie)
{
cs_set_user_money(id, kasa-ibuprofen);
set_user_health(id, nowe_zdrowie);
ColorChat(id, GREEN, "[COD:MW] ^x03Uleczono Cie o ^x01%i^x03 hp!", ibuhp);
}
if(nowe_zdrowie > maxzdrowie && zdrowie != maxzdrowie)
{
cs_set_user_money(id, kasa-ibuprofen);
set_user_health(id, maxzdrowie);
ColorChat(id, GREEN, "[COD:MW] ^x03Jestes w pelni uleczony!");
}
 
}
else
ColorChat(id, GREEN, "[COD:MW] ^x03Masz za malo kasy!");
}
case 1:
{
if(kasa >= fenacetyna)
{
new nowe_zdrowie = (zdrowie+fenhp);
if(nowe_zdrowie < maxzdrowie)
{
cs_set_user_money(id, kasa-fenacetyna);
set_user_health(id, nowe_zdrowie);
ColorChat(id, GREEN, "[COD:MW] ^x03Uleczono Cie o ^x01%i^x03 hp!", fenhp);
}
if(nowe_zdrowie >= maxzdrowie && zdrowie != maxzdrowie)
{
cs_set_user_money(id, kasa-fenacetyna);
set_user_health(id, maxzdrowie);
ColorChat(id, GREEN, "[COD:MW] ^x03Jestes w pelni uleczony!");
}
}
else
ColorChat(id, GREEN, "[COD:MW] ^x03Masz za malo kasy!");
}
case 2:
{
if(kasa >= tramal)
{
new nowe_zdrowie = (zdrowie+tramhp);
if(nowe_zdrowie < maxzdrowie)
{
cs_set_user_money(id, kasa-tramal);
set_user_health(id, nowe_zdrowie);
ColorChat(id, GREEN, "[COD:MW] ^x03Uleczono Cie o ^x01%i^x03 hp!", tramhp);
}
if(nowe_zdrowie >= maxzdrowie && zdrowie != maxzdrowie)
{
cs_set_user_money(id, kasa-tramal);
set_user_health(id, maxzdrowie);
ColorChat(id, GREEN, "[COD:MW] ^x03Jestes w pelni uleczony!");
}
}
else
ColorChat(id, GREEN, "[COD:MW] ^x03Masz za malo kasy!");
}
case 3:
{
if(kasa >= amfetamina)
{
cs_set_user_money(id, kasa-amfetamina);
set_user_gravity(id, gravity);
ColorChat(id, GREEN, "[COD:MW] ^x03Skaczesz wyzej!");
}
else
ColorChat(id, GREEN, "[COD:MW] ^x03Masz za malo kasy!");
}
case 4:
{
 
if(kasa >= lotto)
{
cs_set_user_money(id, kasa-lotto);
ColorChat(id, GREEN, "[COD:MW] ^x03Trwa losowanie!");
new totek = random_num(0, 10);
 
switch(totek)
{
case 0:
{
new moneybonus = random_num(500,5000);
ColorChat(id, GREEN, "[COD:MW] ^x03Wygrales kase ^x01%i^x03$!", moneybonus);
cs_set_user_money(id, moneybonus);
}
case 1:
{
new moneybonus = random_num(5000,16000);
ColorChat(id, GREEN, "[COD:MW] ^x03Wygrales super kase ^x01%i^x03$!", moneybonus);
cs_set_user_money(id, moneybonus);
}
case 2:
{
set_user_gravity(id, get_user_gravity(id)-0.3);
ColorChat(id, GREEN, "[COD:MW] ^x03Wygrales nizsza grawitacje!");
}
case 3:
ColorChat(id, GREEN, "[COD:MW] ^x03Niestety nic nie wygrales!");
case 4:
{
new bonusxp = random_num(expmin ,75);
cod_set_user_xp(id, cod_get_user_xp(id)+bonusxp);
ColorChat(id, GREEN, "[COD:MW] ^x03Wygrales ^x01%i^x03 dodatkowego EXP'a !", bonusxp);
}
case 5:
{
cod_set_user_perk(id, -1, -1, 1);
ColorChat(id, GREEN, "[COD:MW] ^x03Wygrales losowy perk!");
}
case 6:
{
new healthbonus = random_num(10,tramal);
set_user_health(id, get_user_health(id)+healthbonus);
ColorChat(id, GREEN, "[COD:MW] ^x03Wygrales ^x01%i^x03 dodatkowego HP!", healthbonus);
}
case 7:
{
new healthbonus = random_num(10,ibuprofen);
set_user_health(id, get_user_health(id)-healthbonus);
ColorChat(id, GREEN, "[COD:MW] ^x03Straciles ^x01%i^x03 HP!", healthbonus);
}
case 8:
ColorChat(id, GREEN, "[COD:MW] ^x03Niestety nic nie wygrales !");
case 9:
{
new xpbonus = random_num(75,expmax);
cod_set_user_xp(id, cod_get_user_xp(id)+xpbonus);
ColorChat(id, GREEN, "[COD:MW] ^x03Wygrales ^x01%i^x03 dodatkowego EXP'a!", xpbonus);
}
case 10:
{
cs_set_user_money(id, lotto);
ColorChat(id, GREEN, "[COD:MW] ^x03Nic nie wygrales, ale kasa sie zwrocila!");
}
 
}
}
else
ColorChat(id, GREEN, "[COD:MW] ^x03Masz za malo kasy!");
}
case 5:
{
if(kasa >= doswiadczenie)
{
new exp = cod_get_user_xp(id);
new losowy = random_num(expmin, expmax);
cs_set_user_money(id, kasa-doswiadczenie);
cod_set_user_xp(id, exp+losowy)
ColorChat(id, GREEN, "[COD:MW] ^x03Dostales ^x01%i^x03 EXP'a!", losowy);
}
else
ColorChat(id, GREEN, "[COD:MW] ^x03Masz za malo kasy!");
}
case 6:
{
if(kasa >= ruletka)
{
cs_set_user_money(id, kasa-ruletka);
cod_set_user_perk(id, -1, -1, 1);
ColorChat(id, GREEN, "[COD:MW] ^x03Kupiles losowy perk!");
}
else
ColorChat(id, GREEN, "[COD:MW] ^x03Masz za malo kasy!");
}
}
 
return PLUGIN_CONTINUE;
}
 


Użytkownik Kaski8 edytował ten post 26.12.2014 22:44
Odpowiedz

  • +
  • -
Mychu - zdjęcie Mychu 26.12.2014

Sprawdź czy działa 

Załączone pliki

Odpowiedz

  • +
  • -
Kaski8 - zdjęcie Kaski8 26.12.2014

coś tam cvary sie nie zgadzają jakieś błędy wywaliło :D

Odpowiedz

  • +
  • -
Mychu - zdjęcie Mychu 26.12.2014

daj mi logi

 

Odpowiedz

  • +
  • -
Kaski8 - zdjęcie Kaski8 26.12.2014

spróbuj pobrać plik amxx :D

Odpowiedz

  • +
  • -
NieWiemMamMac@ - zdjęcie NieWiemMamMac@ 29.12.2014

spróbuj pobrać plik amxx :D

Sciągnij *.sma - edytuj:
dodaj to:

#include <codmod>

Kompiluj loklanie.


Użytkownik NieWiemMamMac@ edytował ten post 29.12.2014 02:23
Odpowiedz

  • +
  • -
Kaski8 - zdjęcie Kaski8 29.12.2014

Niby działa, ale wywala z servera w momencie gdy się wpisze /sklep jak jest 1 osoba na serverze a chce zeby np wyskoczyla informacja "Teraz nie możesz wejsc do sklepu" i tyle :D

 

Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 29.12.2014

Można także napisać mały plugin który zablokuje użycie tej komendy gdy jest 1 gracz. Wstaw ten plugin powyżej pluginu ze sklepem ( w plugins.ini ).

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "speedkill"

new g_MaxPlayers;

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_clcmd("say /sklep", "BlockCommand");
}

public plugin_cfg(){
	g_MaxPlayers = get_maxplayers();
}

public BlockCommand(id){
	if(CountPlayers() > 1){
		return PLUGIN_CONTINUE;
	}
	else{
		return PLUGIN_HANDLED;
	}
	return PLUGIN_CONTINUE;
}

stock CountPlayers(){
	new g_Value;
	for(new i = 1; i <= g_MaxPlayers; i++){
		if(is_user_connected(i)){
			g_Value++;
		}
	}
	return g_Value;
}
Odpowiedz

  • +
  • -
Kaski8 - zdjęcie Kaski8 29.12.2014

I oto mi chodziło ! Nie o modyfikacje pluginu a gotowy inny świetnie + dla cb można zamknąć! 

 

Edit: No ale w sumie chciałbym jeszcze tą  wyświetlającą się komendę żeby gracze nie myśleli ze nie ma sklepu na servie jak sami beda :D


Użytkownik Kaski8 edytował ten post 29.12.2014 23:27
Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 30.12.2014

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "speedkill"

new g_MaxPlayers;

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_clcmd("say /sklep", "BlockCommand");
}

public plugin_cfg(){
	g_MaxPlayers = get_maxplayers();
}

public BlockCommand(id){
	if(CountPlayers() > 1){
		return PLUGIN_CONTINUE;
	}
	else{
		client_print(id, 3, "[ Sklep ] Za malo graczy na serwerze!");
		return PLUGIN_HANDLED;
	}
	return PLUGIN_CONTINUE;
}

stock CountPlayers(){
	new g_Value;
	for(new i = 1; i <= g_MaxPlayers; i++){
		if(is_user_connected(i)){
			g_Value++;
		}
	}
	return g_Value;
}

dasiek (30.12.2014 08:59):
countPlayers zastąpić get_playersnum?
speedkill (30.12.2014 09:27):
Można ;)
Odpowiedz

  • +
  • -
Kaski8 - zdjęcie Kaski8 31.12.2014

Widze tam jakieś dopiski od "obeznanych" ale mam rozumieć, że i tak działa ? wgrywam na serva no i wielkie dzięki ! +

Odpowiedz