←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Problem ze sprzedażą perku

  • +
  • -
1stADXionC - zdjęcie 1stADXionC 05.09.2015

Po sprzedaniu perku nie otrzymujemy złota ;)

public sprzedaj_perk(id)
{
if(!is_user_alive(id) || !is_user_connected(id))
return PLUGIN_CONTINUE;


new kasa = cod_get_user_zloto(id);
new cena = get_pcvar_num(zloto_sell);


if(cod_get_user_perk(id))
{
if(kasa+cena)
{
cod_get_user_zloto(id);
}
ColorChat(id, GREEN, "^x04[COD:MW]^x01 Sprzedales swoj perk!");
cod_set_user_perk(id, 0, 0, 0);


}
else
{
ColorChat(id, GREEN, "^x04[COD:MW]^x01 Nie masz zadnego perku!");
}


return PLUGIN_CONTINUE;
}

Nie będę pisał drugie tematu, wiec napisze tutaj.

Czy jest możliwość aby za sprzedasz perku była losowana nagroda, tzn, od 0 do 1 zlota za sprzedaż.

Odpowiedz

  • +
  • -
xenos - zdjęcie xenos 05.09.2015

if(kasa+cena)
{
cod_get_user_zloto(id);
}


Ten fragment jest totalnie z 4 liter.


Po pierwsze warunek? :blink: po kij
po 2gie
cod_set_user_zloto(id, kasa+cena);
Odpowiedz

  • +
  • -
1stADXionC - zdjęcie 1stADXionC 05.09.2015

A ja zrobic zeby losowalo od 0 do 1zlota?
Odpowiedz

  • +
  • -
vanillah - zdjęcie vanillah 05.09.2015

public sprzedaj_perk(id)
{
if(!is_user_alive(id) || !is_user_connected(id))
return PLUGIN_CONTINUE;


new kasa = cod_get_user_zloto(id);
new cena = get_pcvar_num(zloto_sell);


if(cod_get_user_perk(id))
{
if(kasa+cena)
{
new losowy = random_num(0, 1);
cod_set_user_zloto(id, kasa+losowy); 
}
ColorChat(id, GREEN, "^x04[COD:MW]^x01 Sprzedales swoj perk!");
cod_set_user_perk(id, 0, 0, 0);


}
else
{
ColorChat(id, GREEN, "^x04[COD:MW]^x01 Nie masz zadnego perku!");
}


return PLUGIN_CONTINUE;
} 

coś takiego

 

 


Użytkownik Trikolos edytował ten post 05.09.2015 16:05
Odpowiedz

  • +
  • -
1stADXionC - zdjęcie 1stADXionC 06.09.2015

Teraz nie otrzymujemy nic za sprzedaż
Odpowiedz

  • +
  • -
GoldenKill - zdjęcie GoldenKill 10.09.2015

Spróbuj tego :)

public sprzedaj_perk(id)
{
if(!is_user_alive(id) || !is_user_connected(id))
return PLUGIN_CONTINUE;

new cena = get_pcvar_num(zloto_sell);

if(cod_get_user_perk(id))
{
cod_set_user_perk(id, 0, 0, 0);
cod_get_user_zloto(id + cena);
ColorChat(id, GREEN, "^x04[COD:MW]^x01 Sprzedales swoj perk!");
}
else
{
ColorChat(id, GREEN, "^x04[COD:MW]^x01 Nie masz zadnego perku!");
}

return PLUGIN_CONTINUE;
}
Odpowiedz

  • +
  • -
1stADXionC - zdjęcie 1stADXionC 10.09.2015

L 09/10/2015 - 14:50:52: Invalid CVAR pointerL 09/10/2015 - 14:50:52: [AMXX] Displaying debug trace (plugin "cod_zloto.amxx")
L 09/10/2015 - 14:50:52: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 09/10/2015 - 14:50:52: [AMXX]    [0] cod_zloto.sma::sprzedaj_perk (line 147)
L 09/10/2015 - 14:50:52: [AMXX]    [1] cod_zloto.sma::targowisko_handle (line 

Załączone pliki

Odpowiedz

  • +
  • -
GoldenKill - zdjęcie GoldenKill 10.09.2015

Źle zrobiłeś cvar, usunąłem ci go całkowicie i w tej linijce zmieniasz wartość złota, jaką dostajemy :)

	new cena = 5;

Załączone pliki

Odpowiedz

  • +
  • -
1stADXionC - zdjęcie 1stADXionC 10.09.2015

hm, teraz za sprzedaż perka nie otrzymujemy złota, moze to być spowodowane losowaniem?

Odpowiedz

  • +
  • -
Linux' - zdjęcie Linux' 10.09.2015

1. Jaki jest sens pobierania natywow w pluginie ktory go tworzy?

2. Jaki jest sens by mozna bylo sprzedawac przedmiot tylko gdy sie zyje?

3. Jaki jest sens wczytywania zlota przy podloczeniu gracza oraz autoryzacji?

4. Jaki jest sens tworzenia nowej zmiennej "cena", jezeli jej wartosc mialby byc pobierana tylko w jednym miejscu?

 

Widze same bystrzaki w tym temacie haha :D. Sprawdz.

Załączone pliki

Odpowiedz

  • +
  • -
1stADXionC - zdjęcie 1stADXionC 10.09.2015

A jak zrobić, że gracz ma 50% szansy czy dostanie złoto czy też i nie.

Odpowiedz

  • +
  • -
Linux' - zdjęcie Linux' 10.09.2015

if(random_num(1,2) == 1)
{
    // kod 1
}
else
{
   // kod 2
}
Odpowiedz

  • +
  • -
1stADXionC - zdjęcie 1stADXionC 10.09.2015

Czyli kod będzie wyglądał tak:

 

public sprzedaj_perk(id)
{
if(!is_user_connected(id))
return PLUGIN_CONTINUE;


if(cod_get_user_perk(id))
{
if(random_num(1,2) == 1)
{
cod_set_user_perk(id, 0, 0, 0);
zloto[id] += 5;
ColorChat(id, GREEN, "^x04[COD:MW]^x01 Sprzedales swoj perk!");
}
else
{
    cod_set_user_perk(id, 0, 0, 0);
ColorChat(id, GREEN, "^x04[COD:MW]^x01 Sprzedales swoj perk!");
}
}
else
{
ColorChat(id, GREEN, "^x04[COD:MW3]^x01 Nie masz zadnego perku!");
}


return PLUGIN_CONTINUE;
}

 

Odpowiedz

  • +
  • -
Linux' - zdjęcie Linux' 16.09.2015

 

Czyli kod będzie wyglądał tak:

 

public sprzedaj_perk(id)
{
if(!is_user_connected(id))
return PLUGIN_CONTINUE;


if(cod_get_user_perk(id))
{
if(random_num(1,2) == 1)
{
cod_set_user_perk(id, 0, 0, 0);
zloto[id] += 5;
ColorChat(id, GREEN, "^x04[COD:MW]^x01 Sprzedales swoj perk!");
}
else
{
    cod_set_user_perk(id, 0, 0, 0);
ColorChat(id, GREEN, "^x04[COD:MW]^x01 Sprzedales swoj perk!");
}
}
else
{
ColorChat(id, GREEN, "^x04[COD:MW3]^x01 Nie masz zadnego perku!");
}


return PLUGIN_CONTINUE;
}

 

 

Nie ma sensu wykonywania dwa razy tych samych funkcji dla roznych opcji

if(cod_get_user_perk(id))
{
	if(random_num(1,2) == 1)
		zloto[id] += 5;

	cod_set_user_perk(id, 0, 0, 0);
	ColorChat(id, GREEN, "^x04[COD:MW]^x01 Sprzedales swoj perk!");
}
else
{
	ColorChat(id, GREEN, "^x04[COD:MW3]^x01 Nie masz zadnego perku!");
}
Odpowiedz

  • +
  • -
1stADXionC - zdjęcie 1stADXionC 18.09.2015

A zmianne jakieś trzeba utworzyć? 

Odpowiedz