Jump to content

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

Posted Image Posted Image

Guest Message by DevFuse
 

Photo

Szansa na otrzymanie broni. TMP+Granat


  • This topic is locked This topic is locked
11 replies to this topic

#1 Blood Angel

    Wszechwiedzący

  • Zbanowany

Reputacja: 130
Zaawansowany

  • Postów:540
  • Steam:steam
  • Lokalizacja:Dom
Offline

Posted 02.01.2011 16:21

Witam

Chciałbym zrobić VIP Plugin na serwer.

Potrzebuję tylko pomocy przy:
1. 30% szansy na wylosowanie TMP z 10 Ammo. (W magazynku 0)
2. 50% na wylosowanie HE, 2x Flash, Smoke.
3. 200HP i 100 Armor na start.

Każdą pomoc nagrodzę Dołączona grafika!

Znany jako oeN.


#2 R3X

    Godlike

  • Przyjaciel

Reputacja: 2,987
Godlike

  • Postów:4,248
  • Lokalizacja:Nie
Offline

Posted 02.01.2011 16:48

dawanie broni najłatwiej zrobić z < fun >

Jak dodasz do kodu to
#include <fun>
to masz dostęp do funkcji give_item();

CS Weapons Information - AlliedModders Wiki tu masz listę broni i ammo, dając wybraną broń skopiuj jej nazwę z kolumny NAME (weapon_tucos)

give_item zwraca id entu, więc możesz od razu zmienić zawartość magazynku, potrzebujesz też biblioteki cstrike
#include <cstrike>

i teraz możesz dać TMP z 10 nabojami
new ent = give_item(id, "weapon_tmp");
cs_set_weapon_ammo(ent, 10);//10 w magazynku
cs_set_user_bpammo(id, CSW_TMP, 0); //0 w plecaku, więc nie przeładuje


żeby dać granat bierzesz z listy he
give_item(id, "weapon_hegrenade");

żeby dać kilka HE musisz najpierw dać 1, a potem ustawić w plecaku
cs_set_user_bpammo(id, CSW_HEGRENADE, kilka);



do losowania użyj random_num()

30% szans możesz uzyskać losując liczbę z przedzialu 1-100 i sprawdzić czy jest mniejsza lub równa 30

if(random_num(1, 100) <= 30){
    //daj bron
}

50 procent tak samo, tylko <= 50



hp ustawiasz set_user_health
  • +
  • -
  • 1

#3 Dimni

    Zaawansowany

  • Użytkownik

Reputacja: 46
Pomocny

  • Postów:88
  • Lokalizacja:eLWuO City
Offline

Posted 02.01.2011 16:50

if (random_num(1, 10) <= 3)   	
{
give_item(id, "weapon_tmp");
new weapon_id = find_ent_by_owner(-1, "weapon_tmp", id);
if(weapon_id) cs_set_weapon_ammo(weapon_id, 10);
}

if (random_num(1, 10) <= 5)
{ give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_smokegrenade");
}

give_item(id, "item_assaultsuit");
set_user_health(id, 200);


Wrzuć to w jakiś event na starcie rundy / po wklepaniu komendy / inne.
Nie zapomnij o sprawdzaniu czy gracz jest vipem :)

EDIT: Choinka, był 1.

Edited by Dimni, 02.01.2011 16:51.

  • +
  • -
  • 1

#4 byCZUS

    Listonosz

  • Support Team

Reputacja: 752
Guru

  • Postów:459
  • GG:
  • Steam:steam
  • Lokalizacja:GW
Offline

Posted 02.01.2011 17:42

Moim zdaniem lepiej jest użyć switcha z przedziałami niż bawić się w ify:

switch(random_num(1, 10))
{
case 1..3: {
//..............
}
case 5..10: {
//..............
}
}


Używając kodu R3X'a i Dimni wyglądało by to tak:

public szanse(id)
{
// Tutaj warunek ktory sprawdzi czy gracz jest vipem np. flaga t
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
return PLUGIN_CONTINUE;

switch(random_num(1, 10))
{
case 1..3: {
new ent = give_item(id, "weapon_tmp");
cs_set_weapon_ammo(ent, 10);
cs_set_user_bpammo(id, CSW_TMP, 0);
}
case 5..10: {
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_smokegrenade");
}
}
give_item(id, "item_assaultsuit");
set_user_health(id, 200);

return PLUGIN_CONTINUE;
}


Nie użyłem dawania broni którego użył Dimni ponieważ potrzebna jest dodatkowa biblioteka engine.

Edited by byQQ, 02.01.2011 17:42.

  • +
  • -
  • 2

Dziękuje, dobranoc.


#5 Blood Angel

    Wszechwiedzący

  • Autor tematu
  • Zbanowany

Reputacja: 130
Zaawansowany

  • Postów:540
  • Steam:steam
  • Lokalizacja:Dom
Offline

Posted 02.01.2011 19:28

Dzięki wszystkim.

Dodano 02 styczeń 2011 - 21:04:
byQQ, to twoje nie działa :/

Znany jako oeN.


#6 byCZUS

    Listonosz

  • Support Team

Reputacja: 752
Guru

  • Postów:459
  • GG:
  • Steam:steam
  • Lokalizacja:GW
Offline

Posted 02.01.2011 22:13

Mi działa =] Jeśli wylosowana liczba będzie 1,2,3 to ma tmp, a jeśli 5,6,7,8,9,10 to granaty. Dodałem coś by sprawdzić jaka zostaje wylosowana liczba i wszystko się zgadza. Możliwe że źle wywołujesz.
  • +
  • -
  • 1

Dziękuje, dobranoc.


#7 Blood Angel

    Wszechwiedzący

  • Autor tematu
  • Zbanowany

Reputacja: 130
Zaawansowany

  • Postów:540
  • Steam:steam
  • Lokalizacja:Dom
Offline

Posted 03.01.2011 17:27

Ale ja nawet HP nie dostaje ...

Znany jako oeN.


#8 byCZUS

    Listonosz

  • Support Team

Reputacja: 752
Guru

  • Postów:459
  • GG:
  • Steam:steam
  • Lokalizacja:GW
Offline

Posted 04.01.2011 15:16

Człowieku a masz flagę "t" !?
  • +
  • -
  • 0

Dziękuje, dobranoc.


#9 Blood Angel

    Wszechwiedzący

  • Autor tematu
  • Zbanowany

Reputacja: 130
Zaawansowany

  • Postów:540
  • Steam:steam
  • Lokalizacja:Dom
Offline

Posted 06.01.2011 10:09

A czemu bym miał nie mieć... Jestem H@ więc mam wszystkie flagi dane.

Znany jako oeN.


#10 Gufinsky

    Wszechwiedzący

  • Power User

Reputacja: 267
Wszechwidzący

  • Postów:591
  • Imię:Kuba
  • Lokalizacja:localhost
Offline

Posted 06.01.2011 19:36

byQQ u Ciebie jest

if(!(get_user_flags(id) & ADMIN_LEVEL_H))



czyli dla wszystkich prócz gracza z flagą T.


Jeśli napisałem bzdurę to sorry nie znam się ;D
  • +
  • -
  • 0

#11 byCZUS

    Listonosz

  • Support Team

Reputacja: 752
Guru

  • Postów:459
  • GG:
  • Steam:steam
  • Lokalizacja:GW
Offline

Posted 06.01.2011 23:35

A zauważyłeś że niżej jest return ?
@dla Ciebie 2 rozwiązanie:

public szanse(id)
{
// Tutaj warunek ktory sprawdzi czy gracz jest vipem np. flaga t
if(get_user_flags(id) & ADMIN_LEVEL_H)
{
switch(random_num(1, 10))
{
case 1..3: {
new ent = give_item(id, "weapon_tmp");
cs_set_weapon_ammo(ent, 10);
cs_set_user_bpammo(id, CSW_TMP, 0);
}
case 5..10: {
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_smokegrenade");
}
}
give_item(id, "item_assaultsuit");
set_user_health(id, 200);

}
return PLUGIN_CONTINUE;
}

Edited by byQQ, 06.01.2011 23:36.

  • +
  • -
  • 0

Dziękuje, dobranoc.


#12 Blood Angel

    Wszechwiedzący

  • Autor tematu
  • Zbanowany

Reputacja: 130
Zaawansowany

  • Postów:540
  • Steam:steam
  • Lokalizacja:Dom
Offline

Posted 09.01.2011 20:04

Też nie działa... Ktoś ma jakieś propozycje?

Dodano 16 styczeń 2011 - 11:39:
To jak? Ktoś coś wymyśli?

Edited by Blood Angel, 16.01.2011 11:41.

Znany jako oeN.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users