Problem z losowaniem
Kaskader
04.02.2010
Jesteście super, że mi pomagacie. Ale po dokładniejszym przyjrzeniu się pluginowi zobaczyłem więcej błędów. To trudniejsze niż myślałem.
Błędy:
1. Gdy zamieniam się w staruszka to jak zmienię na nóż idę już normalnie. Chciałbym aby staruszkiem być przez np 20 sekund i z nożem nadal iść jako staruch.
2. Gdy wpiszę komendą to wyskakuje nie masz tyle kasy ta wiadomość a zaraz po tym, że dostałeś przedmiot i rzeczywiście go mam.
3. Mam np. wartość cvaru 400 a kasy 20 i i tak mogę kupić.
Co do tego w sayu, zobacze potem. I mam pytanie czy dałoby się zrobić, że konkretne rzeczy na określony czas? Chodzi o noclip i staruszka.
Błędy:
1. Gdy zamieniam się w staruszka to jak zmienię na nóż idę już normalnie. Chciałbym aby staruszkiem być przez np 20 sekund i z nożem nadal iść jako staruch.
2. Gdy wpiszę komendą to wyskakuje nie masz tyle kasy ta wiadomość a zaraz po tym, że dostałeś przedmiot i rzeczywiście go mam.
3. Mam np. wartość cvaru 400 a kasy 20 i i tak mogę kupić.
Co do tego w sayu, zobacze potem. I mam pytanie czy dałoby się zrobić, że konkretne rzeczy na określony czas? Chodzi o noclip i staruszka.
Miczu
04.02.2010
1. potrzebujesz zmiennej globalnej od tego, ze jestes dziadkiem (+curwarpon event) i zmiennej globalej lub taska by zakonczyl sie okres spowolnienia
2. albo daj return w if'ach ktore informuja ze nie mozesz wylosowac losu, lub zrob tak jak w oryginale, wszystkie warunki w ostatnim if'ie od losowania
3. patrz punkt 2.
2. albo daj return w if'ach ktore informuja ze nie mozesz wylosowac losu, lub zrob tak jak w oryginale, wszystkie warunki w ostatnim if'ie od losowania
3. patrz punkt 2.
Kaskader
04.02.2010
Hmmm... A można wiedzieć jak to zastosować w kodzie? Znaczy jeżeli możesz dopisz mi to do kodu, bo ja najbardziej załapuję jak mam to w kodzie.
PS. I jeszcze jedna rzecz, dałoby rade zrobić, że używać można komendy tyle razy ile będzie ustawione w specjalnym cvarze. Chodzi mi o to, ze w cvarze ustawiam sobie 1 to tylko raz na rundę mogę wpisać komendę.
PS. I jeszcze jedna rzecz, dałoby rade zrobić, że używać można komendy tyle razy ile będzie ustawione w specjalnym cvarze. Chodzi mi o to, ze w cvarze ustawiam sobie 1 to tylko raz na rundę mogę wpisać komendę.
Owner123
05.02.2010
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#define PLUGIN "Kupon"
#define VERSION "1.0"
#define AUTHOR "Koksik"
new plugin_on
new gravity_on
new speed_on
new noclip_on
new elite_on
new health_on
new kill_on
new money_on
new price
new ilosc
new ilosc2
new bool:dziadek[33] // zmienna globalna sprawdzajaca czy dana osoba jest dziadkiem
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /kupon", "kupon");
plugin_on = register_cvar("amx_kupon_plugin", "1") ;
price = register_cvar("amx_kupon_price", "400") ;
gravity_on = register_cvar("amx_gravity_on", "1") ;
speed_on = register_cvar("amx_speed_on", "1") ;
noclip_on = register_cvar("amx_noclip_on", "1") ;
elite_on = register_cvar("amx_elite_on", "1") ;
health_on = register_cvar("amx_health_on", "1") ;
kill_on = register_cvar("amx_kill_on", "1") ;
money_on = register_cvar("amx_money_on", "1") ;
ilosc = register_cvar("amx_ilosc_kuponow", "1");
set_task(30.0, "printer", _, _, _, "b");
register_event("CurWeapon", "ObecnaBron", "b") // event wywolywany przy kazdej zmianie broni ;f
}
public kupon(id){
if(get_pcvar_num(plugin_on) == 1)
{
new kasa = cs_get_user_money(id)
new zycie = get_user_health(id)
if(kasa < get_pcvar_num(price) )
{
client_print(id, print_chat, "Nie masz kasy, nie losujesz.", get_pcvar_num(price))
return PLUGIN_HANDLED //robimy returna i tym samym kończymy działanie funkcji
}
if(!is_user_alive(id)){
cs_set_user_money(id, kasa - 500)
client_print(id, print_chat, "Nie zyjesz, wiec nie badz taki sprytny. Komenda off. -500 $ Za probe.")
return PLUGIN_HANDLED // j/w
}
if(ilosc2 == get_pcvar_num(ilosc)) // sprawdzenie czy juz wykorzystalismy limit ;f
{
client_print(id, print_chat, "Juz nie ma kuponow <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/sad.gif' class='bbc_emoticon' alt=':(' /> Przykro mi <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/sad.gif' class='bbc_emoticon' alt=':(' />")
return PLUGIN_HANDLED // j/w
}
if(is_user_alive(id) )
{
new rand = random_num(0,6)
switch(rand)
{
case 0: {
if (get_pcvar_num(gravity_on) == 1)
{
cs_set_user_money(id, kasa -get_pcvar_num(price) )
set_user_gravity(id, 0.50)
client_print(id, print_chat, "Otrzymujesz Grawitacje! Gratulacje.") ;
}
else kupon(id)
}
case 1: {
if(get_pcvar_num(elite_on) == 1 )
{
cs_set_user_money(id, kasa - get_pcvar_num(price))
give_item(id, "weapon_elite")
give_item(id, "ammo_9mm")
client_print(id, print_chat, "Otrzymujesz Dual Elite's. Gratulacje.") ;
}
else kupon(id)
}
case 2: {
if (get_pcvar_num(money_on) == 1)
{
cs_set_user_money(id, kasa - get_pcvar_num(price))
cs_set_user_money(id, kasa + 6000)
client_print(id, print_chat, "Wygrales 6000 $. Gratulacje.") ;
}
else kupon(id)
}
case 3: {
if (get_pcvar_num(noclip_on) == 1)
{
cs_set_user_money(id, kasa - get_pcvar_num(price))
set_user_noclip(id, 1)
client_print(id, print_chat, "Otrzymujesz Noclip! Gratulacje.") ;
set_task(20.0, "ZnowNormal", id) // patrz w dol
}
else kupon(id)
}
case 4: {
if (get_pcvar_num(health_on) == 1)
{
cs_set_user_money(id, kasa - get_pcvar_num(price))
set_user_health(id, zycie + 50)
client_print(id, print_chat, "Otrzymujesz 50 HP. Gratulacje.") ;
}
else kupon(id)
}
case 5: {
if (get_pcvar_num(kill_on) == 1)
{
cs_set_user_money(id, kasa - get_pcvar_num(price))
client_cmd(id, "kill", 0)
client_print(id, print_chat, "Popelniles samobojstwo... Najwyrazniej miales problemy...") ;
}
else kupon(id)
}
case 6: {
if (get_pcvar_num(speed_on) == 1)
{
cs_set_user_money(id, kasa - get_pcvar_num(price))
set_user_maxspeed(id, 30.0)
client_print(id, print_chat, "Starosc nie radosc.")
dziadek[id] = true // Dobra jest dziadek
set_task(20.0, "ZnowMlody", id) // Robimy taska dla dziadka, aby przywocic mu speeda.
return PLUGIN_HANDLED
}
else kupon(id)
}
}
client_print(id, print_chat, "Losujesz nie pozalujesz. Cena: %s $",get_pcvar_num(price))
++ilosc2
}
}
return PLUGIN_HANDLED;
}
public ZnowNormal(id)
{
set_user_noclip(id, 0)
}
public ZnowMlody(id)
{
set_user_maxspeed(id, 250.0) /*Przywracamy speeda*/
dziadek[id] = false /*i ustawiamy zmienna na false*/
}
public ObecnaBron(id)
{
if(dziadek[id] == true) // Sprawdzamy czy jest dziadkiem
set_user_maxspeed(id, 30.0)
}
Kaskader
08.02.2010
Dzięki, wszystko styka, oprócz tego, że jak jestem staruszkiem i zmienię na obojętnie jaką broń, to i tak zaczynam biec szybko.
Sorry, że piszę post pod postem, ale owner mały błąd się wkradł oprócz tego dziadka, to komendę można wpisać tyle razy ile jest w cvarze ustawione, ale eda osoba wpisze maxymalną ilość i już żadna inna nie może. Chcę żeby liczyło się an id. Czyli niech limit będzie liczony na jedną osobę.
Sorry, że piszę post pod postem, ale owner mały błąd się wkradł oprócz tego dziadka, to komendę można wpisać tyle razy ile jest w cvarze ustawione, ale eda osoba wpisze maxymalną ilość i już żadna inna nie może. Chcę żeby liczyło się an id. Czyli niech limit będzie liczony na jedną osobę.
Owner123
09.02.2010
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#define PLUGIN "Kupon"
#define VERSION "1.0"
#define AUTHOR "Koksik"
new plugin_on
new gravity_on
new speed_on
new noclip_on
new elite_on
new health_on
new kill_on
new money_on
new price
new ilosc
new ilosc2[33]
new bool:dziadek[33] // zmienna globalna sprawdzajaca czy dana osoba jest dziadkiem
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /kupon", "kupon");
plugin_on = register_cvar("amx_kupon_plugin", "1") ;
price = register_cvar("amx_kupon_price", "400") ;
gravity_on = register_cvar("amx_gravity_on", "1") ;
speed_on = register_cvar("amx_speed_on", "1") ;
noclip_on = register_cvar("amx_noclip_on", "1") ;
elite_on = register_cvar("amx_elite_on", "1") ;
health_on = register_cvar("amx_health_on", "1") ;
kill_on = register_cvar("amx_kill_on", "1") ;
money_on = register_cvar("amx_money_on", "1") ;
ilosc = register_cvar("amx_ilosc_kuponow", "1");
set_task(30.0, "printer", _, _, _, "b");
register_event("CurWeapon", "ObecnaBron", "b", "1=1") // event wywolywany przy kazdej zmianie broni ;f
}
public kupon(id){
if(get_pcvar_num(plugin_on) == 1)
{
new kasa = cs_get_user_money(id)
new zycie = get_user_health(id)
if(kasa < get_pcvar_num(price) )
{
client_print(id, print_chat, "Nie masz kasy, nie losujesz.", get_pcvar_num(price))
return PLUGIN_HANDLED //robimy returna i tym samym kończymy działanie funkcji
}
if(!is_user_alive(id)){
cs_set_user_money(id, kasa - 500)
client_print(id, print_chat, "Nie zyjesz, wiec nie badz taki sprytny. Komenda off. -500 $ Za probe.")
return PLUGIN_HANDLED // j/w
}
if(ilosc2[id] == get_pcvar_num(ilosc)) // sprawdzenie czy juz wykorzystalismy limit ;f
{
client_print(id, print_chat, "Juz nie ma kuponow <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/sad.gif' class='bbc_emoticon' alt=':(' /> Przykro mi <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/sad.gif' class='bbc_emoticon' alt=':(' />")
return PLUGIN_HANDLED // j/w
}
if(is_user_alive(id) )
{
new rand = random_num(0,6)
switch(rand)
{
case 0: {
if (get_pcvar_num(gravity_on) == 1)
{
cs_set_user_money(id, kasa -get_pcvar_num(price) )
set_user_gravity(id, 0.50)
client_print(id, print_chat, "Otrzymujesz Grawitacje! Gratulacje.") ;
}
else kupon(id)
}
case 1: {
if(get_pcvar_num(elite_on) == 1 )
{
cs_set_user_money(id, kasa - get_pcvar_num(price))
give_item(id, "weapon_elite")
give_item(id, "ammo_9mm")
client_print(id, print_chat, "Otrzymujesz Dual Elite's. Gratulacje.") ;
}
else kupon(id)
}
case 2: {
if (get_pcvar_num(money_on) == 1)
{
cs_set_user_money(id, kasa - get_pcvar_num(price))
cs_set_user_money(id, kasa + 6000)
client_print(id, print_chat, "Wygrales 6000 $. Gratulacje.") ;
}
else kupon(id)
}
case 3: {
if (get_pcvar_num(noclip_on) == 1)
{
cs_set_user_money(id, kasa - get_pcvar_num(price))
set_user_noclip(id, 1)
client_print(id, print_chat, "Otrzymujesz Noclip! Gratulacje.") ;
set_task(20.0, "ZnowNormal", id) // patrz w dol
}
else kupon(id)
}
case 4: {
if (get_pcvar_num(health_on) == 1)
{
cs_set_user_money(id, kasa - get_pcvar_num(price))
set_user_health(id, zycie + 50)
client_print(id, print_chat, "Otrzymujesz 50 HP. Gratulacje.") ;
}
else kupon(id)
}
case 5: {
if (get_pcvar_num(kill_on) == 1)
{
cs_set_user_money(id, kasa - get_pcvar_num(price))
client_cmd(id, "kill", 0)
client_print(id, print_chat, "Popelniles samobojstwo... Najwyrazniej miales problemy...") ;
}
else kupon(id)
}
case 6: {
if (get_pcvar_num(speed_on) == 1)
{
cs_set_user_money(id, kasa - get_pcvar_num(price))
set_user_maxspeed(id, 30.0)
client_print(id, print_chat, "Starosc nie radosc.")
dziadek[id] = true // Dobra jest dziadek
set_task(20.0, "ZnowMlody", id) // Robimy taska dla dziadka, aby przywocic mu speeda.
return PLUGIN_HANDLED
}
else kupon(id)
}
}
client_print(id, print_chat, "Losujesz nie pozalujesz. Cena: %s $",get_pcvar_num(price))
++ilosc2[id]
}
}
return PLUGIN_HANDLED;
}
public ZnowNormal(id)
{
set_user_noclip(id, 0)
}
public ZnowMlody(id)
{
set_user_maxspeed(id, 250.0) /*Przywracamy speeda*/
dziadek[id] = false /*i ustawiamy zmienna na false*/
}
public ObecnaBron(id)
{
if(dziadek[id] == true) set_user_maxspeed(id, 30.0)
}Nie wiem :FMoże tera dziadek zadziała :F




