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

Szansa na otrzymanie broni. TMP+Granat


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

#1 Blood Angel

    Wszechwiedzący

  • Zbanowany

Reputacja: 130
Zaawansowany

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

Napisano 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

Napisano 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

Napisano 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.

Użytkownik Dimni edytował ten post 02.01.2011 16:51

  • +
  • -
  • 1

#4 byCZUS

    Listonosz

  • Support Team

Reputacja: 752
Guru

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

Napisano 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.

Użytkownik byQQ edytował ten post 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

Napisano 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

Napisano 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

Napisano 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

Napisano 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

Napisano 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

Napisano 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

Napisano 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;
}

Użytkownik byQQ edytował ten post 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

Napisano 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?

Użytkownik Blood Angel edytował ten post 16.01.2011 11:41

Znany jako oeN.





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

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