Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

problem z ruletka wlasnej robotyZabiera kase nawet jak jej nie ma


  • Zamknięty Temat jest zamknięty
8 odpowiedzi w tym temacie

#1 PedoBear

    Nowy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:5
  • Imię:Kamil
  • Lokalizacja:A Co Was To Obchodzi
Offline

Napisano 26.07.2011 22:03

Witam jestem poczatkujacym w temacie pisania pluginów i mam jeden problem , napisalem plugin niby wszystko fajnie , ale chce aby ruletka ktora zrobilem kostowala 8,500$ , ok zrobilem , zabiera graczowi kase tylko zabiera mu nawet jak jej nie ma czyli robi mu kase na - ;/ i chcialbym wiedziec jak to naprawic czyli ze jakn ie ma 8,500 to mu sie pokazuje ze go nie stac dam wam kod , proszę o szybka pomoc Pozdrawiam ;)

Kod:
/* Plugin generated by AMXX-Studio */

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

#define PLUGIN "Ruletka_By_PedoBear"
#define VERSION "1.0"
#define AUTHOR "author"

new koszt

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_clcmd("say /ruletka","ruletka")
	koszt = register_cvar("amx_ruletka_koszt","8500") 
	register_clcmd("say /ruletka","kasa")
	register_clcmd("say /noclip","nc")
	}

public ruletka(id)
{
	new pieniadze = cs_get_user_money(id)
	if(!is_user_alive(id)){

	client_print(id,print_chat,"[Ruletka] Nie mozesz skorzystac z tej uslugi, bo jestes niezywy!")
	return PLUGIN_HANDLED
	
	if(cs_get_user_money(id) < 8500)
{
client_print(id, print_chat, "[Ruletka]Nie mozesz skorzystac z tej uslugi , bo nie masz tyle pieniedzy!!")
return PLUGIN_HANDLED;
}
cs_set_user_money(id, pieniadze - 8500)
}
	client_print(id, print_chat, "Wpisales komende /ruletka ! Powodzenia w losowaniu ! - Koszt 8500$")
	client_print(id, print_chat, "Plugin stworzony przez PedoBear!")
	
	
	switch(random_num(1, 4))
	{
		case 1 :
		{
		client_print(id, print_chat, "Brawo Wylosowales 1500hp <img src='http://img.amxx.pl/public/style_emoticons/<#EMO_DIR#>/smile.gif' class='bbc_emoticon' alt=':)' />")	
		set_user_health(id,1500)
		
		}
		case 2 :
		{
		client_print(id,print_chat, "Twoja grawitacja zostala zmniejszona Gratulacje!!)")
		set_user_gravity(id, 0.5)
		}
		case 3 :
		{
		client_print(id, print_chat, "Wygrales/as granata!")
		switch(random_num(1, 4))
		{
			case 1 :
			{client_print(id ,print_chat, "Dostajesz FlashBanga!!")
			give_item(id, "weapon_flashbang")
			}
			case 2 :
			{client_print(id ,print_chat, "Dostajesz He!")
			give_item(id, "weapon_hegrenade")
			}
			case 3 :
			{client_print(id, print_chat, "Dostajesz smoka!")
			give_item(id, "weapon_smokegrenade")
			}
			case 4 :
			{client_print(id, print_chat, "Dostajesz GRANATEM! I Kill You !!!")
			user_kill(id, 1)
			}
		}
		}
		case 4 :
		{
		client_print(id,print_chat, "Liiipa:) Zostaje Ci 1 hp <img src='http://img.amxx.pl/public/style_emoticons/<#EMO_DIR#>/biggrin.gif' class='bbc_emoticon' alt=':D' />")
		set_user_health(id, 1)
		}
	
	
	}

	cs_set_user_money(id, pieniadze - 8500)
}

	

Co trzeba poprawic? proszę mi wyjasnic zebym nastepnym razem juz wiedzial co i jak zrobic

Użytkownik PedoBear edytował ten post 26.07.2011 22:04

  • +
  • -
  • 0

#2 SeeK

    Wszechobecny

  • Użytkownik

Reputacja: 192
Profesjonalista

  • Postów:438
Offline

Napisano 26.07.2011 22:32

Używaj tabulatur, bo sam się gubisz już w nawiasach klamrowych.

Łap. Powinno działać
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>

#define PLUGIN "Ruletka_By_PedoBear"
#define VERSION "1.0"
#define AUTHOR "author"

new koszt

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_clcmd("say /ruletka","ruletka")
	koszt = register_cvar("amx_ruletka_koszt","8500") 
	register_clcmd("say /ruletka","kasa")
	register_clcmd("say /noclip","nc")
	}

public ruletka(id)
{
	new pieniadze = cs_get_user_money(id)
	if(!is_user_alive(id))
	{
		client_print(id,print_chat,"[Ruletka] Nie mozesz skorzystac z tej uslugi, bo jestes niezywy!")
		return PLUGIN_HANDLED
	}
	
	if(cs_get_user_money(id) < 8500)
	{
		client_print(id, print_chat, "[Ruletka]Nie mozesz skorzystac z tej uslugi , bo nie masz tyle pieniedzy!!")
		return PLUGIN_HANDLED
	}
	
	cs_set_user_money(id, pieniadze - 8500)
	client_print(id, print_chat, "Wpisales komende /ruletka ! Powodzenia w losowaniu ! - Koszt 8500$")
	client_print(id, print_chat, "Plugin stworzony przez PedoBear!")
	
	
	switch(random_num(1, 4))
	{
		case 1 :
		{
			client_print(id, print_chat, "Brawo Wylosowales 1500hp <img src='http://img.amxx.pl/public/style_emoticons/<#EMO_DIR#>/smile.gif' class='bbc_emoticon' alt=':)' />")	
			set_user_health(id,1500)
		}
		
		case 2 :
		{
			client_print(id,print_chat, "Twoja grawitacja zostala zmniejszona Gratulacje!!)")
			set_user_gravity(id, 0.5)
		}
		
		case 3 :
		{
			client_print(id, print_chat, "Wygrales/as granata!")
			switch(random_num(1, 4))
			{
				case 1 :
				{
					client_print(id ,print_chat, "Dostajesz FlashBanga!!")
					give_item(id, "weapon_flashbang")
				}
				case 2 :
				{
					client_print(id ,print_chat, "Dostajesz He!")
					give_item(id, "weapon_hegrenade")
				}
				case 3 :
				{
					client_print(id, print_chat, "Dostajesz smoka!")
					give_item(id, "weapon_smokegrenade")
				}
				case 4 :
				{
					client_print(id, print_chat, "Dostajesz GRANATEM! I Kill You !!!")
					user_kill(id, 1)
				}
			}
		}
		
		case 4 :
		{
			client_print(id,print_chat, "Liiipa:) Zostaje Ci 1 hp <img src='http://img.amxx.pl/public/style_emoticons/<#EMO_DIR#>/biggrin.gif' class='bbc_emoticon' alt=':D' />")
			set_user_health(id, 1)
		}
	}
	return PLUGIN_CONTINUE
}

  • +
  • -
  • 1
https://sklep-sms.pl - Sklep SMS pozwala zarabiać na swoich serwerach gier opartych o silniki AMX Mod X oraz SOURCEMOD
https://nalunch.com - A Ty, gdzie pójdziesz dziś na lunch?

#3 PedoBear

    Nowy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:5
  • Imię:Kamil
  • Lokalizacja:A Co Was To Obchodzi
Offline

Napisano 26.07.2011 23:25

dziekuje za rade zaraz sprawdze czy dziala , a mozesz mi wyjasnic gdzie byl blad , jak to dobrze zrobic oraz dlaczego gdy wylosuje te granaty to nie moge nimi rzucic ?

## Dalej zabiera kase mimo ze jej tyle nie mam ;/

Użytkownik PedoBear edytował ten post 26.07.2011 23:29

  • +
  • -
  • 0

#4 SeeK

    Wszechobecny

  • Użytkownik

Reputacja: 192
Profesjonalista

  • Postów:438
Offline

Napisano 27.07.2011 09:20

No to nie powinno zabierać... U mnie wszystko działa cacy. Tutaj masz jeszcze raz poprawiony kod. Skompiluj go i wrzuć na serwer.

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

#define PLUGIN "Ruletka_By_PedoBear"
#define VERSION "1.0"
#define AUTHOR "author"

new koszt

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_clcmd("say /ruletka","ruletka")
	register_cvar("amx_ruletka_koszt","8500") 
	register_clcmd("say /ruletka","kasa")
	register_clcmd("say /noclip","nc")
	}

public ruletka(id)
{
	koszt = get_cvar_num("amx_ruletka_koszt")
	new pieniadze = cs_get_user_money(id)
	if(!is_user_alive(id))
	{
		client_print(id,print_chat,"[Ruletka] Nie mozesz skorzystac z tej uslugi, bo jestes niezywy!")
		return PLUGIN_HANDLED
	}
	
	if(pieniadze < koszt)
	{
		client_print(id, print_chat, "[Ruletka]Nie mozesz skorzystac z tej uslugi , bo nie masz tyle pieniedzy!!")
		return PLUGIN_HANDLED
	}
	
	cs_set_user_money(id, pieniadze - koszt)
	client_print(id, print_chat, "Wpisales komende /ruletka ! Powodzenia w losowaniu ! - Koszt 8500$")
	client_print(id, print_chat, "Plugin stworzony przez PedoBear!")
	
	
	switch(random_num(1, 4))
	{
		case 1 :
		{
			client_print(id, print_chat, "Brawo Wylosowales 1500hp <img src='http://img.amxx.pl/public/style_emoticons/<#EMO_DIR#>/smile.gif' class='bbc_emoticon' alt=':)' />")	
			set_user_health(id,1500)
		}
		
		case 2 :
		{
			client_print(id,print_chat, "Twoja grawitacja zostala zmniejszona Gratulacje!!)")
			set_user_gravity(id, 0.5)
		}
		
		case 3 :
		{
			client_print(id, print_chat, "Wygrales/as granata!")
			switch(random_num(1, 4))
			{
				case 1 :
				{
					client_print(id ,print_chat, "Dostajesz FlashBanga!!")
					give_item(id, "weapon_flashbang")
				}
				case 2 :
				{
					client_print(id ,print_chat, "Dostajesz He!")
					give_item(id, "weapon_hegrenade")
				}
				case 3 :
				{
					client_print(id, print_chat, "Dostajesz smoka!")
					give_item(id, "weapon_smokegrenade")
				}
				case 4 :
				{
					client_print(id, print_chat, "Dostajesz GRANATEM! I Kill You !!!")
					user_kill(id, 1)
				}
			}
		}
		
		case 4 :
		{
			client_print(id,print_chat, "Liiipa:) Zostaje Ci 1 hp <img src='http://img.amxx.pl/public/style_emoticons/<#EMO_DIR#>/biggrin.gif' class='bbc_emoticon' alt=':D' />")
			set_user_health(id, 1)
		}
	}
	return PLUGIN_CONTINUE
}

Błędy:
- W złym miejscu umieściłeś sprawdzanie, czy gracz nie ma odpowiedniej liczby gotówki. Zrobiłeś coś takiego
if(!is_user_alive(id))
{
	client_print(id,print_chat,"[Ruletka] Nie mozesz skorzystac z tej uslugi, bo jestes niezywy!")
	return PLUGIN_HANDLED

	if(cs_get_user_money(id) < 8500)
	{
		client_print(id, print_chat, "[Ruletka]Nie mozesz skorzystac z tej uslugi , bo nie masz tyle pieniedzy!!")
		return PLUGIN_HANDLED;
	}
	cs_set_user_money(id, pieniadze - 8500)
}
Z tego wynika: Jeżeli gracz jest nieżywy, to wyświetl wiadomość(jesteś nieżywy) i przerwij działanie pluginu, więc reszta kodu nigdy nie mogła działać. Trzeba ją było umieścić poza tym warunkiem.

- Błędne jest pobranie wartości cvara w ten sposób
koszt = register_cvar("amx_ruletka_koszt","8500")

Musisz zastosować funkcję get_cvar_num, wygląda to tak
koszt = get_cvar_num("amx_ruletka_koszt")

Chyba jeszcze gdzieś był błąd, ale nie jestem pewien. Zresztą sam porównaj jeden i drugi i zobacz jakie są różnice.

Może masz jakiś plugin, który to ogranicza? W moim przypadku wszystko działa poprawnie. Nie pobiera kasy, gdy jest za mało, odejmuje poprawną wartość, oraz normalnie mogę rzucać granatami.
  • +
  • -
  • 0
https://sklep-sms.pl - Sklep SMS pozwala zarabiać na swoich serwerach gier opartych o silniki AMX Mod X oraz SOURCEMOD
https://nalunch.com - A Ty, gdzie pójdziesz dziś na lunch?

#5 PedoBear

    Nowy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:5
  • Imię:Kamil
  • Lokalizacja:A Co Was To Obchodzi
Offline

Napisano 27.07.2011 10:00

dziala , kasy juz nie bierze , a nastepnym razem jak zrobic z ta kasa ? jest jakas jedna komenda ktora to robi?
bo ja to wszystko z innych pluginów bralem ;P granaty zaraz zobacze a jbc to juz masz + i moje podziekowania
  • +
  • -
  • 0

#6 SeeK

    Wszechobecny

  • Użytkownik

Reputacja: 192
Profesjonalista

  • Postów:438
Offline

Napisano 27.07.2011 10:13

To znaczy co? Żeby nie zabierało gdy ktoś ma mniej niż potrzeba? To Ci wyjasniłem w moim poście powyżej. Chyba że o coś innego Ci chodzi, albo tamto jest wciąż niezrozumiałe, to powiedz, a spróbuję wytłumaczyć.
  • +
  • -
  • 0
https://sklep-sms.pl - Sklep SMS pozwala zarabiać na swoich serwerach gier opartych o silniki AMX Mod X oraz SOURCEMOD
https://nalunch.com - A Ty, gdzie pójdziesz dziś na lunch?

#7 PedoBear

    Nowy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:5
  • Imię:Kamil
  • Lokalizacja:A Co Was To Obchodzi
Offline

Napisano 27.07.2011 10:54

Wiec chodzi mi o to jak napisac ,zeby plugin sprawdzil najpierw czy gracz jest zywy a potem czy ma tyle kasy ile trzeba
  • +
  • -
  • 0

#8 SeeK

    Wszechobecny

  • Użytkownik

Reputacja: 192
Profesjonalista

  • Postów:438
Offline

Napisano 27.07.2011 11:20

Cała magia jest zawarta w tym kawałku kodu ;]

if(!is_user_alive(id))
{
	client_print(id,print_chat,"[Ruletka] Nie mozesz skorzystac z tej uslugi, bo jestes niezywy!")
	return PLUGIN_HANDLED
}

if(pieniadze < koszt)
{
	client_print(id, print_chat, "[Ruletka]Nie mozesz skorzystac z tej uslugi , bo nie masz tyle pieniedzy!!")
	return PLUGIN_HANDLED
}

Tłumacząc to na język ludzki.
Jeżeli gracz nie jest żywy, to wyświetl napis(jesteś nieżywy) oraz przerwij działanie pluginu.
Jeżeli pieniadze(cs_get_user_money(id)) są mniejsze od koszt(get_cvar_num("amx_ruletka_koszt")), to wyświetl napis(nie masz pieniedzy) oraz przerwij działanie pluginu

Użytkownik SeeK edytował ten post 27.07.2011 11:23

  • +
  • -
  • 1
https://sklep-sms.pl - Sklep SMS pozwala zarabiać na swoich serwerach gier opartych o silniki AMX Mod X oraz SOURCEMOD
https://nalunch.com - A Ty, gdzie pójdziesz dziś na lunch?

#9 PedoBear

    Nowy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:5
  • Imię:Kamil
  • Lokalizacja:A Co Was To Obchodzi
Offline

Napisano 27.07.2011 11:44

Wielkie dzięki juz rozumiem ;)

Do zamkniecia .
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych