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

Pierwszy pluginruletka


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

#1 MrCma

    Życzliwy

  • Użytkownik

Reputacja: -1
Nowy

  • Postów:25
  • Imię:Mateusz
Offline

Napisano 30.12.2010 14:57

Wiam jestem nowym użytkownikiem na tym forum :)
chce was prosić o pomoc zacząłem sie bawić AmX i zrobiłem ruletkę ale mam do was wielka prośbę :P
1.Jak zrobić blokadę żeby gracz nie mógł używać ruletki cały czas tylko np co 120sekund :)
2.Jak zablokować żeby gracz nie mógł grac jak nie żyje
3. jak zapisać żeby ruletka dawała granat antidotum, zarażający, ammopacki ;>

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




#define PLUGIN "Ruletka_By_Mr.Cma" 
#define VERSION "1.11 BETA" 
#define AUTHOR "Mr.Cma"   


public plugin_init() {
      register_plugin(PLUGIN, VERSION, AUTHOR); 
      register_clcmd("say /ruletka","ruletka");
      register_clcmd("say_team /ruletka","ruletka");
set_task(144.0, "printer", _, _, _, "b");
}
public ruletka(id)
{
switch(random_num(1, 11))
      {
              case 1 :
              { 
                      client_print(0,print_chat,"Dostales kamizelke"); 
                      give_item(id, "item_kevlar"); 
                                              
                      
              }
              case 2:
              { 
                      client_print(0,print_chat,"Otrzymujesz autokampe"); 
                     give_item(id,"ammo_762nato");

                     give_item(id, "weapon_g3sg1");  
              }
              case 3:
              { 
                      client_print(0,print_chat,"Rambo!!"); 
                      give_item(id, "weapon_m249");
                      give_item(id,"ammo_556natobox");
                      give_item(id, "item_kevlar");
                      give_item(id, "weapon_smokegrenade");
                      give_item(id, "weapon_flashbang");
                      give_item(id, "weapon_hegrenade");

              }
              case 4:
              { 
                      client_print(0,print_chat,"Masz 255 HP");
                      set_user_health(id,255);

              }
              case 5:
              { 
                 client_print(0,print_chat,"Masz 10 HP powodzenia <img src='http://images.amxx.pl/public/style_emoticons/<#EMO_DIR#>/tongue.gif' class='bbc_emoticon' alt=':P' />");
                      set_user_health(id,10);

              }
              case 6:
              { 
                client_print(0,print_chat,"Pusto <img src='http://images.amxx.pl/public/style_emoticons/<#EMO_DIR#>/biggrin.gif' class='bbc_emoticon' alt=':D' />");

              }
              case 7:
              { 
                client_print(0,print_chat,"Wolno biegasz <img src='http://images.amxx.pl/public/style_emoticons/<#EMO_DIR#>/biggrin.gif' class='bbc_emoticon' alt=':D' />");
                 set_user_maxspeed (id, 100.0);

              }
              case 8:
              { 
                client_print(0,print_chat,"Dostales flare");
                 give_item(id, "weapon_smokegrenade");  
               
              }
              case 9:
              { 
                 client_print(0,print_chat,"Dostales fosta");
                   give_item(id, "weapon_flashbang");

              }
              case 10:
              { 
                 client_print(0,print_chat,"Dostales granat podpalajacy");
                give_item(id, "weapon_hegrenade");

              }
              case 11:
              {
                     client_print(0,print_chat,"Dostales bazooke");
                    give_item(id, "weapon_bazooka");

}
     }



client_print(id, print_chat, "[Ruletka by Mr.Cma] Zyczymy wielu wygranych.")
 client_print(id, print_chat, "W razie bledow proszę pisac na forum lub GG ******** .")
}

Dodano 30 grudzień 2010 - 15:08:
Sory że pod postem nie szło edit :/
4.Oraz jak zapisać żeby info "Dostałeś kamizelke" widzieli wszyscy i żeby pisało kto wygrał czyli np "Mr.Cma wygrał kamizelke"
  • +
  • -
  • 0

#2 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 30.12.2010 19:48

1.
pod:
public ruletka(id)
{

dodaj:
if (get_systime()-last_used[id]<CZAS_OCZEKIWANIA){
client_print(id, print_chat, "Musisz odczekać jeszcze %d aby użyć ruletki", CZAS_OCZEKIWANIA-get_systime()+last_used[id])
return PLUGIN_HANDLED;
}
last_used[id] = get_systime();


pod:
#define AUTHOR "Mr.Cma"

dodaj:
new last_used[33] = 0


oraz dodaj funkcję:
public client_connect(id) {
last_used[id] = 0;
}


2.
Pod moją poprzednią edycją (pod last_used[id] = get_systime();) dodaj:
if (!is_user_alive(id) {
client_print(id, print_chat, "Nie możesz grać w ruletkę jak nie żyjesz");
return PLUGIN_HANDLED;
}


3. Spodziewam się że jakiś plugin podmienia zwykłe granaty na te, więc po prostu dodaj graczowi granata danego typu (jak np granat zamrażający jest zamiast smoke to daj graczowi smoke), np:
give_item(id, "weapon_hegrenade")

[dokumentacja]give_item[/dokumentacja] tu masz więcej o tym.
Jeśli plugin nie podmienia zwykłych granatów to pokaż mi jaki plugin to jest, bez tego nic nie zrobię, ale z tego co wiem to to jest niemożliwe żeby dodać taki granat

4. pętla for :) najlepiej zrobić sobie taką funkcję:
stock client_no_print(id, type, const message[], any:...)
static msg[512];
vformat(msg, charsmax(msg), message, 4)
new players[32], num;
for (new i=0; i<num; i++) {
new aid = players[i];
if (aid == id)
continue;
client_print(aid, type, msg);
}
}

Funkcja działa bardzo prosto: wysyła wiadomość wszystkim, oprócz gracza o określonym ID. Jeśli jako ID podamy 0 lub jakiś nieistniejący numer (np 666) to wiadomość wyświetli się wszystkim. Jedyny limit, wiadomość może mieć max 512 znaków(właściwie to 511 bo jeden znak zajmuje null), ale można to zmienić prosto w jednym miejscu :)
Następnie upewniasz się że wszystkie client_print w funkcji ruletki wyglądają tak: client_print(id, ................... po to, żeby graczowi wyświetlana była ta wiadomość, następnie pod tym client print gdzie chcesz innych poinformować że dany gracz wylosował to to i to dodajesz:
new nick[36];
get_user_name(id, nick, charsmax(nick));
client_no_print(id, print_chat, "Gracz %s wylosował kupę", nick);

Gdzie kupę sobie zmieniasz na to co aktualnie wylosował :)

Mam nadzieję, że napisałem zrozumiale.
  • +
  • -
  • 2

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#3 PunisheR

    Nowy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:6
  • Lokalizacja:Polska
Offline

Napisano 31.12.2010 11:42

4.
Nie rozumiem tego punktu...

Mam podobny problem co MrCma.

Gdzie wkleić tą funkcję?

Dodano 31 grudzień 2010 - 12:09:
Nie szło edytowac

Jeszcze jedno jak zrobić w tym client_print(id, ...................) wyświetlał na @?

Próbowałem client_print(id,@@ ...................) ale nic nie pomagało
  • +
  • -
  • 0

#4 MrCma

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: -1
Nowy

  • Postów:25
  • Imię:Mateusz
Offline

Napisano 31.12.2010 12:17

2.
Pod moją poprzednią edycją (pod last_used[id] = get_systime();) dodaj:

if (!is_user_alive(id) {
client_print(id, print_chat, "Nie możesz grać w ruletkę jak nie żyjesz");
return PLUGIN_HANDLED;
}


dodałem to i wyskakuje błąd /home/groups/amxmodx/compiler3/core(0) : error 075: input line too long (after substitutions)

x26

:(

Dodano 31 grudzień 2010 - 12:33:
4 punkt tez mam problem nie wiem gdzie to powklejać :/
  • +
  • -
  • 0

#5 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 31.12.2010 12:36

MrCma, wstaw cały plik sma (w załączniku) bo chyba coś źle zrobiłeś.

co do funkcji z podpunktu 4. to popełniłem mały błąd, w pierwszej linii na końcu brakuje otwierającej klamry, powinna ta linia wyglądać tak:
stock client_no_print(id, type, const message[], any:...) {

a funkcję tą wklejasz gdzie chcesz (byleby nie we wnętrzu innej, czyli na przykład na końcu pluginu).

co do wyświetlania na @ nie rozumiem do końca o co chodzi. Chcesz żeby wyświetlało to na środku ekranu? (tak jak tekst admina poprzedzony znakiem @? )

PS. tak się przyglądnąłem i zauważyłem że nie ten dział ;>

Użytkownik GwynBleidD edytował ten post 31.12.2010 12:39

  • +
  • -
  • 0

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#6 MrCma

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: -1
Nowy

  • Postów:25
  • Imię:Mateusz
Offline

Napisano 31.12.2010 12:38

a mógł bys ty dodac to ? bo mi cały czas jakis error wywala :(

Dodano 31 grudzień 2010 - 12:40:

co do wyświetlania na @ nie rozumiem do końca o co chodzi. Chcesz żeby wyświetlało to na środku ekranu? (tak jak tekst admina poprzedzony znakiem @? )



tak ale nie na srodku ^.^ tylko z lewiej strony (say @)
  • +
  • -
  • 0

#7 PunisheR

    Nowy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:6
  • Lokalizacja:Polska
Offline

Napisano 31.12.2010 12:54

Tak właśnie oto mi chodzi

Dodano 31 grudzień 2010 - 13:07:
Zrobiłem 4 punkt tak jak mówiłeś.

Ładnie się skompilowało , wgrałem na serwer , losuje nagrody , ale nie pokazuje mi ani nikomu co wygralem.
  • +
  • -
  • 0

#8 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 31.12.2010 13:10

no dobra, zrobię Wam to, a co do wyświetlania w takim miejscu to musicie za pomocą HUD to robić (i można to w dowolnym miejscu na ekranie zrobić). Spróbujcie sobie sami z tym poradzić, może wam się uda ;)

Załączony plik  jakas_ruletka.sma   3,47 KB  59 Ilość pobrań
  jakas_ruletka.amxx
  • +
  • -
  • 0

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#9 PunisheR

    Nowy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:6
  • Lokalizacja:Polska
Offline

Napisano 31.12.2010 13:21

Wyskakuje error do tej linijki :
if (!is_user_alive(id) {

Error: Expected token: ")", but found "{" on line 38

Mi się wydaje że nie ma takiego znaczka { tylko jest taki ). Usuwam je , dodaje nowe i wyskakuja nowe bledy ;/

Dodano 31 grudzień 2010 - 13:34:
Reszta działa samemu pomyślałem zapiast client_no_print wstawiłem client_print czyli:

client_print(0, print_chat, "Gracz %s wylosował fosta", nick); i działa tak jak należy :) dziękuję bardzo
  • +
  • -
  • 0

#10 MrCma

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: -1
Nowy

  • Postów:25
  • Imię:Mateusz
Offline

Napisano 31.12.2010 13:36

Gniewny dzięki bardzo za pomoc :* xDD

a wiesz jak dodac nieskonczonosc amo ?

Dodano 31 grudzień 2010 - 15:24:
Sory za błąd :P GwynBleidD xD

Użytkownik MrCma edytował ten post 31.12.2010 13:36

  • +
  • -
  • 0




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

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