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
 

Saymo0n - zdjęcie

Saymo0n

Rejestracja: 23.12.2012
Aktualnie: Nieaktywny
Poza forum Ostatnio: 08.05.2013 15:28
-----

#522605 Diablo Mod By Stachuu? :D edit by 0ne.

Napisane przez he1st w 07.03.2013 20:10

Witajcie. Chciałbym wam przedstawić Diablo Mod By Stachuu?? :D mojej edycji. Nie jest to jeszcze dopracowane diablo, lecz staram się wprowadzać nowości.


Co nowego??:
-opisy klas są od razu w *.sma
-opis gildii zrobiony w *.sma
-Nowe 3 klasy premium (Vithar, Myzrael, Berserker)
-Małe poprawki związane z edycją kodu
-Poprawione Bugi

Co do naprawy/poprawy?:
-Menu dla Xardasa(dzisiaj zacząłem, myślę, że jutro skończę)
-Optymalizacja kodu
-Dodanie czegoś zupeeeełnie nowego. (pracuje nad modelami i eventami w Diablo Mod)


Po prostu najważniejsze, że wszystko jest na swoim miejscu i nie ma z nim problemów. ;)

PS. Edycja miała miejsce 31.12.2012r. - 03.01.2013r. lecz wrzucam teraz, bo zapomniałem, że to się wala gdzieś na kompie :P

Instalacja:

Standard. ;)

Załączone pliki


  • +
  • -
  • 9


#523188 Diablo Mod By Stachuu? :D edit by 0ne.

Napisane przez he1st w 09.03.2013 17:47

Co do itemów to nie ma problemu, będę aktualizował temat, więc z czasem można tu zaglądać.

PS. Rep + za pomysł.
  • +
  • -
  • 2


#525094 Diablo Mod By Stachuu? :D edit by 0ne.

Napisane przez he1st w 16.03.2013 14:56

Nie mogę zaktualizować pierwszego posta, więc trzeba sobie jakoś radzić ;)

Co aktualnie znajduje się w Diablo Modzie??:

- Nowa Statystyka ~~> Grawitacja
- Mentalność daje niewidzialność
- Zaradność daje kasę na początku rundy
- Brak wszelkich błędów przy kompilacji.
- 121 Itemów!
- 31 Klas w tym 3 premium!
- 4 punkty za 1 lvl
- 201 lvl ( Hard Exp)
- 100 pkt w statystykę
- Poprawione opisy klas
- wszelkie opisy w *.sma
- w sklepie (/rune) znajdziecie EXP !! Mały, Średni oraz Mega
- Dodany i działający w 100% ~~> Dagon I ;)
- Dodano extrastats ( dostajesz X punktów do statystyki)

Co i jak:

sprites do cstrike\sprites
models do cstrike\models
sound do cstrike\sound
newdiablo.sma do cstrike\addons\amxmodx\scripting i skompilować lokalnie ;)
Prosiłbym o zaktualizowanie pierwszego posta przez moderatora ;)

Załączone pliki


  • +
  • -
  • 4


#525110 Diablo Mod By Stachuu? :D edit by 0ne.

Napisane przez he1st w 16.03.2013 15:50

Dagon to czerwony piorun ( Tak jak w wersjach 5.4h-5.9l). Został nazwany Dagonem i ja też go tak nazywam ;)
  • +
  • -
  • 3


#526200 Diablo Mod By Stachuu? :D edit by 0ne.

Napisane przez he1st w 19.03.2013 16:38

Aktualizejszyn :D

Był bug w drugiej misji u ninjy ( wystarczyło raz trafić nożem i misja zakończona) - poprawiony
U meriala był za szybki piorun, który zadawał za dużo dmg ;) - poprawiony

Załączone pliki


  • +
  • -
  • 2


#527984 Diablo Mod By Stachuu? :D edit by 0ne.

Napisane przez he1st w 25.03.2013 14:32

Aktualizejszyyyyn!!!! VERY IMPORTANT


-Dodano questy do klas premium - działają
-Poprawiłem bug z szybkością strzelania amazonki i innych klas - Jest OK.!


CO do błędów to po prostu usuńcie starą tabelę i zróbcie nową ;)

Załączone pliki


  • +
  • -
  • 2


#520597 Problem z kompilacją Diablo

Napisane przez Syki w 01.03.2013 09:09

A więc tak. Ten błąd z nvault_util oznacza, że nie masz tego include. Wpisz w google "nvault_util.inc" - pobierz go i wrzuć do compiler/includes o ile masz ten kompilator, jeśli nie to go pobierz z
http://amxx.pl/topic...ilowac-pluginy/ .
  • +
  • -
  • 1


#24082 Real flashbang

Napisane przez Batonpl93 w 16.11.2008 21:03

Łap
W załączniku...

Załączone pliki


  • +
  • -
  • 3


#348071 Paczka FFA by MattLoki aka. Tekon

Napisane przez NUkz w 11.01.2012 20:07

Witam

Dziś zaprezentuje moją pierwszą paczkę na serwer FreeForAll .


Proszę o wyrozumiałość .


Plugin służący do robienia Screen Shotów nie został wgrany celowo .





Plugins.ini
ad_manager.amxx ; Widoczne reklamy na czacie .
admin_check.amxx ; Gdy wpiszemy na say /admin pojawi sie lista administratorow online .
admin_freelook.amxx ; Administrator widzi wszystko .
admin_spec_esp.amxx ; ESP dla administratora by lepiej wykrywalo sie cheaterow .
adminlisten.amxx ; Administrator widzi wszystkie rozmowy na czacie .
bulletdamage.amxx ; Widoczne obrazenia obok celownika .
bcd_hudtimer.amxx ; Czas wyswietlany w HUD do wybuchu bomby .
parachute.amxx ; Spadochron dla kazdego gracza .
unbanmenu.amxx ; Menu do odbanowywania gracza .
mutemenu.amxx ; Menu dla gracza by mogl wyciszyc innego gracza /mute .
ReasonKicker.amxx ; Powody przy wykopaniu gracza z serwera .
runplanting.amxx ; Podkladanie bomby w ruchu .
polski_cs.amxx ; Wszystkie napisy po polsku .
afkbombtransfer.amxx ; Jezeli gracz jest AFK dostaje pake najblizszy aktywny gracz .
realnadedrops.amxx ; Po smierci wypadaja z ciebie wszystkie bronie razem z granatami .
flash.amxx ; Wyswietla informacje kto cie oslepil .
sillyc4.amxx ; Umozliwia podkladanie paki na scianie .
auto_reload.amxx ; W nowej rundzie masz preladowana bron .
hpk.amxx ; Automatyczne wyrzycanie z serwera za ping +120 .
wybor_interpu.amxx ; Wybor interpu bez opcji EXIT .
Allow_round_finish.amxx ; Daje dokaczyc runde .
ptb.amxx ; Przerzuca graczy do innych teamow .
galileo.amxx ; System zmiany mapy .

Amxx.cfg :

// AMX Mod X Configuration File
echo Executing AMX Mod X Configuration File

// Default access for all non admin players (see users.ini for access details)
//
// Default value: "z"
amx_default_access "z"

// Name of setinfo which should store a password on a client (you should change this)
// Note: Always prefix the field with an underscore (aka: "_")
// (Example: setinfo _pw "password")
//
// Default value: "_pw"
amx_password_field "_pw"

// Mode of logging to a server
// 0 - disable logging, players won't be checked (and access won't be set)
// 1 - normal mode which obey flags set in accounts
// 2 - kick all players not on list
//
// Default value: 1
amx_mode 1

// Show admins activity
// 0 - disabled
// 1 - show without admin name
// 2 - show with name
//
// Default value: 2
amx_show_activity 2

// Frequency in seconds and text of scrolling message
//
// Default value: "Welcome to %hostname% -- This server is using AMX Mod X" 600
amx_scrollmsg "Welcome to %hostname% -- This server is using AMX Mod X" 600

// Center typed colored messages (last parameter is a color in RRRGGGBBB format)
//
// Default values: "Welcome to %hostname%" "000255100"
//				 "This server is using AMX ModX\nVisit http://www.amxmodx.org" "000100255"
amx_imessage "Welcome to %hostname%" "000255100"
amx_imessage "This server is using AMX Mod X\nVisit http://www.amxmodx.org" "000100255"

// Frequency in seconds of colored messages
//
// Default value: 180
amx_freq_imessage 180

// Ban times for the main ban menu (amx_banmenu)
// Use 0 for permanent ban
// Default values: 0 5 10 15 30 45 60
amx_plmenu_bantimes 0 5 10 15 30 45 60

// Slap damage amounts for the main slap menu (amx_slapmenu)
// Slay is automaticall inserted as the first option
// Default values: 0 1 5
amx_plmenu_slapdmg 0 1 5

// Set in seconds how fast players can chat (chat-flood protection)
//
// Default value: 0.75
amx_flood_time 0.75

// Amount of slots to reserve.
//
// Default value: 0
amx_reservation 0

// If you set this to 1, you can hide slots on your server.
// If server "full" of public slots and slots hidden, you must manually connect with connect console command
//
// Default value: 0
amx_hideslots 0

// Displaying of time remaining
// a - display white text on bottom
// b - use voice
// c - don't add "remaining" (only in voice)
// d - don't add "hours/minutes/seconds" (only in voice)
// e - show/speak if current time is less than this set in parameter
//
// Default value: "ab 1200" "ab 600" "ab 300" "ab 180" "ab 60" "bcde 11"
amx_time_display "ab 1200" "ab 600" "ab 300" "ab 180" "ab 60" "bcde 11"

// Announce "say thetime" and "say timeleft" with voice, set to 0 to disable.
//
// Default value: 1
amx_time_voice 1

// Minimum delay in seconds between two voting sessions
//
// Default value: 10
amx_vote_delay 10

// How long voting session goes on
//
// Default value: 10
amx_vote_time 10

// Display who votes for what option, set to 0 to disable, 1 to enable.
//
// Default value: 1
amx_vote_answers 1

// Some ratios for voting success

// Default value: 0.40
amx_votekick_ratio 0.40

// Default value: 0.40
amx_voteban_ratio 0.40

// Default value: 0.40
amx_votemap_ratio 0.40

// Default value: 0.02
amx_vote_ratio 0.02

// Max. time to which map can be extended
//
// Default value: 90
amx_extendmap_max 90

// Step for each extending
//
// Default value: 15
amx_extendmap_step 15

// If you set this to 0, clients cannot chose their language, instead they use
// whatever language the server is configured to use.
//
// Default value: 1
amx_client_languages 1

// Plugin Debug mode
// 0 - No debugging (garbage line numbers)
// 1 - Plugins with "debug" option in plugins.ini are put into debug mode
// 2 - All plugins are put in debug mode
// Note - debug mode will affect JIT performance
//
// Default value: 1
amx_debug 1

// Plugin MultiLingual Debug
// To debug a language put its 2 letter code between quotes ("en", "de", etc)
// "" means disabled
//
// Default value: ""
amx_mldebug ""

//
// Beginning of Counter-Strike package specific configurations.
//

// Rank mode
// 0 - by nick
// 1 - by authid
// 2 - by ip
//
// Default value: 1
csstats_rank 1

// Max size of the stats file
//
// Default value: 3500
csstats_maxsize 3500

// Whether or not to rank bots with csstats - set to 1 to rank bots, 0 otherwise.
//
// Default value: 0
csstats_rankbots 0

// Duration of HUD-statistics
//
// Default value: 12.0
amx_statsx_duration 12.0

// HUD-statistics display limit relative round freeze end
// Negative time will clear the HUD-statstics before the round freeze time has ended
//
// Default value: -2.0
amx_statsx_freeze -2.0

Reason Kicker

amx_kick_r1 "Kampisz"
amx_kick_r2 "Obrazasz"
amx_kick_r3 "Kultura"
amx_kick_r4 "Utrudnianie gry innym"
amx_kick_r5 "Nie krzyc przez mikrofon"
amx_kick_r6 "Cele Mapy!"
amx_kick_r7 "Opanuj swoje emocje"

Mini Bans

amx_minibans_forum "LINK DO STORNY SERWERA" // okresla forum na ktorym mozna zlozyc zazalenie
amx_minibans_hudmsg "1" // okresla czy pokazywac zielony napis na hud
amx_minibans_moreinfo "0" // dla developerow, loguje wiecej informacji
amx_minibans_logs "1" // wlacza / wylacza logi
amx_minibans_logstype "1" // rodzaj logow, 1 - loguje w logach amxx, 2 - loguje w oddzielnym pliku
amx_minibans_kickdelay "10.0" // czas, po jakim od odtrzymaniu bana gracz zostanie wykopany
amx_minibans_bantype "0" // na co banować graczy? 0 - wykryj automatycznie, 1 - na ip, 2 - na steamid
amx_minibans_bantimes 0 15 30 45 60 180 1440 10080

amx_minibans_reason "Wrzuc Screeny!"
amx_minibans_reason "Cheatujesz"
amx_minibans_reason "Kampisz"
amx_minibans_reason "Obrazasz"
amx_minibans_reason "Cele Mapy"
amx_minibans_reason "Kultura"
amx_minibans_reason "Mikrofon 16+/mutacja"

Bullet Damage

amx_bulletdamage_recieved "1"  // 1 - włącza, 0 - wyłacza pokazywanie otrzymanych obrażeń.
amx_bulletdamage "2"  // 0 - plugin wyłączony, 1 - pokazuje zadane obrażenia, 2 - pokazuje zadane obrażenia, ale nie przez ściane

Reload

amx_autoreload 1/0 - włączenie/wyłączenie pluginu.

Galileo

amx_extendmap_max 90 //Maksymalny czas jaki mapa może być grana. Jeśli gracze będą wybierać przedłużenie mapy. Tylko do tego czasu będzie to możliwe.

amx_extendmap_step 15 //ile mapa ma być przedłużana jeśli gracze wybiorą ta opcje (w minutach)

gal_cmd_votemap 0 // Jaki powinny działac wzykłe komendy HL dotyczące Vota 1- Wyłączone 0- wyłączone

gal_cmd_listmaps 2 // Jak ma się zachowywać komenda listmaps
// 0 - disable
// 1 - behave normally
// 2 - behave the same as the "gal_listmaps" command (galileo default)
gal_banrecent 3 // Ile map ostatnio granych jest niedozwolonych w Vote


gal_banrecentstyle 1 // jak maja być wyświetlane mapy po wpisaniu recentmaps
// 1 - all maps on one line
// 2 - each map on a separate line

gal_rtv_commands 3 // na jak komenda ma reagować plugin przy rtv
//1- Rockthevote
//2-rtv
//3 dynamiczna

gal_rtv_wait 10
//ile czasu po starcie mapy może być rozpoczęte rtv

gal_rtv_ratio 0.60
//Ile % graczy musi wpisać rtv żeby zostało odpalone.

gal_nom_playerallowance 2 //ile nominacji może zrobić każdy gracz

gal_nom_mapfile mapcycle.txt// skąd maja być sczytywane mapy

gal_nom_prefixes 0
// prefix przy mapie wymagany?

gal_nom_qtyused 0 // ile nominacji ma być używanych w następnym głosowaniu.

//Glosowanie rozstrzygające następuje wtedy kiedy żadna z map nie otrzyma 50% w normalnym glosowaniu. Wtedy dawane są dwie z największym %

gal_runoff_enabled 1
//Mozliwe glosowanie rozstrzygające

gal_runoff_duration 15
//po ilu sekundach ma się rozpaczać

gal_vote_weight 1
//Czy ma być większa waga głosu admina?

gal_vote_weightflags y
//Flaga z jaka admin ma większy głos (dowolna)

gal_endonround 1
//Ma czekać do skończenia rundy ze zmianą mapy?

gal_vote_showstatus 1
// postęp głosowania ma być pokazywany gracza?
//0-nigdy
//1- po zagłosowaniu
//2- zawsze

gal_vote_showstatustype 2
//Jak ma być to przedstawiane gracza
//1- liczba
//2- procenty na mapie


gal_srv_start 3
// jeśli serwer się zrestartuje lub będzie miał krasza jak ma reagować plugin
//0- nic nie robi
//1- zmienia mapę na ta przed restartem
//2- zmienia mapę na ta która powinna być wybrana
//3- robi Vote
//4- zmienia na jedna z nominowanych

gal_endofmapvote 1

gal_listmaps_paginate 10 // ile map na stronie ma być pokazywanych po użyciu gal_listmaps

gal_vote_mapchoices 5
//Ile map ma być dawanych do vote

gal_vote_duration 15 // ile sekund powinien trwać vote

gal_vote_mapfile mapcycle.txt // skąd ma pobierać mapy

gal_vote_expirationcountdown 1
gal_vote_uniqueprefixes 0

gal_vote_announcechoice 1 //pokazuje jaka mapę wybrał gracz?
//1- tak
//0- Nie

gal_emptyserver_wait 0
// ile sekund ma czekać zanim uruchomi emptyserwer mapcykle,

gal_emptyserver_mapfile emptycycle.txt
// Plik z którego czyta empty serwer mapcyke

gal_sounds_mute 0
// wycisza dane dźwięki
// 1 - "get ready to choose a map"
// 2 - "7", "6", "5", "4", "3", "2", "1"
// 4 - "time to choose"
// 8 - "runoff voting is required"


Pobierz :

http://www66.zippysh...77474/file.html

http://www.multiupload.com/PMWT79ZDNR


Dziękuję za poświęcenie czasu na moją paczkę .
  • +
  • -
  • 17


#41466 Jak napisac plugin ?

Napisane przez rS. w 07.02.2009 17:10

Serdecznie witam wszystkich , tak więc zaczynamy .



Pierwsze Kroki jakie musimy zrobic to:

AMXx Studio - program do kompilacji, przerabiania i pisania własnych pluginów (można go pobrać z http://www.amxmodx.org , znajduje się w packu AMX Mod X Full Installer, lub można go pobrać samodzielnie AMX Mod X Studio)


Tutaj opiszę jak skonfigurować AMXx Studio aby można było kompilować pluginy:

Po otworzeniu AMXx Studio widzimy taki ekran:

screen1.jpg - Rozmiar oryginalny - Fotosik.pl

Wchodzimy w Tools-->Settings (F12)

screen2.jpg - Rozmiar oryginalny - Fotosik.pl

Następnie Compiler Settings w pierwszym białym polu podajemy adres do naszego pliku (amxxpc.exe - to kompilator znajduje sie w folderze tam gdzie masz CS addons/amxmodx/scripting)


screen3.jpg - Rozmiar oryginalny - Fotosik.pl


Klikamy ok i od tej pory kompilowanie pluginów nie powinno stwarzać problemu tylko otwieram i klikamy compile.

Ciekawostka:
Wybrałem amx studio ponieważ uczyłem się na nim od początku od kolegi


Tak więc zaczynamy:

Otwieramy program AMX Mod X Studio
Co gdzie i jak?:
Dołączona grafika

W tych 3 okienkach będziemy widzieć :

a/1 - W tym okienku, po zaznaczeniu danego fragmentu kodu, zobaczymy, jak zostaje sklasyfikowana poszczególna jego część (czy jest to funkcja, metoda, etc.).
b/2 - W tym okienku zobaczymy (po kliknięciu na dany folder) ile razy użyliśmy danej funkcji, metody, zmiennej, etc.
c/3 - Główne okno programu. To w nim piszemy kod plugin'u.


Teraz musimy podać ścieżkę do kompilatora. W tym celu klikamy F12.
Pojawi sie nam to :

Dołączona grafika

W Compiler (amxxpc.exe) podajemy ścieżkę do kompilatora. Znajdziesz ją w :

addons/amxmodx/scripting

W Default Output Directory podajemy miejsce, gdzie będą zapisywały się skompilowane pliki.


Tak więc przygotowaliśmy amxstudio do pracy więc można zaczynac :)

Zmienne: Zmienne są to struktury, które mają przechowywać pewne informacje przez jakiś okres czasu.

Jakie może mieć typy zmiennych:

•|1Zmienne logiczne.
•|2Integer'y.
•|3Liczby dziesiętne.


Zmienne Logiczne: Zmienne logiczne są bardzo proste wy wykonaniu i obsłudze. Można im nadać jedynie dwie wartości a mianowicie:

"true"
"false"

new bool:
CzyJestWlączone // Tworzę nową zmienną "CzyJestWlaczone", która jest automatycznie ustawiona na "false"

new bool:
JestWlaczone=true //Tworzę nową zmienną JestWlaczone i nadaje jej wartość "true".


Integer'y Są to najprostsze struktury w języku skryptowym Pawn , aby umieścić taką zmienną w kodzie, musimy użyć instrukcji new nazwa_zmiennej.


new c=5.0
//Ta zmienna jest niewłaściwa

new a
//Tworzymy pustą zmienną "a"

new b=5
//Tworzymy nową zmienną "b" i ustawiamy jej wartość na 5.

new d="siema"
//"siema" nie jest liczbą, dlatego ta zmienna też jest niewłaściwa.


Liczby dziesiętne Jeżeli chcemy w kodzie plugin'u umieścić liczbę dziesiętną, musimy określić typ zmiennej jako "float". By to wykonać musimy zrobić to w następujący sposób :

new Float
nazwa_zmiennej

new d="siema"
//Ta zmienna nadal nie jest właściwa

new Float:c=5.0
//Ta zmienna była niewłaściwa. Teraz, gdy określiliśmy typ zmiennej na "float" stała się właściwa <img src='http://img.amxx.pl/public/style_emoticons/default/wink.gif' class='bbc_emoticon' alt=';)' />.

new Float:b=5.1
//Tworzymy nową zmienną "b" i ustawiamy jej wartość na 5.1.

Teraz będzie sporo czytania ze zrozumieniem musicie wszystko po kolei ładnie przeczytaj to jest najgłówniejsza rzecz , będziemy się uczyć jak działa plugin , i budową pluginu:

Włączamy AMX MOD X Studio i klikamy CTRL + N.
Otworzy nam się nowe okno z plugin'em, który wygląda tak :

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plugin"
#define VERSION "1.0"
#define AUTHOR "Author"


public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
   
    // Add your code here...
}

Teraz o budowie pluginu .

Instrukcje w pluginie zawierają się w funkcjach. Owe funkcje można porównać to spiętych kartek w zeszycie (oryginalne porównanie by Seba :] ) - instrukcje są po kolei wykonywane (tak jak zapisujemy kartki w zeszycie). Każdą funkcję w plugin'ie musimy zarejestrować w kodzie. Robimy to tak :

public nazwa_funkcji(wartości_jakie_przyjmuje_funkcja)
{
//Tutaj będzie nasz kod
}

Kod w funkcji zapisujemy między nawiasami klamrowymi. Funkcje mogą być wywoływane przez gracza (gracz zrobił coś, np. otrzymał obrażenia - nasza funkcja się wykonuje) lub przez inne funkcje.
Wiem, że możecie tego nie zrozumieć, ale przeczytajcie to jeszcze kilka razy i obraz Wam się rozjaśni. Zabieramy się za nasz plugin :) .
Na początku musimy pod nasz plugin podpiąć odpowiednie moduły.
Co to są moduły? Są to zbiory instrukcji. Jeżeli w pluginie użyjemy instrukcji, która wymaga zadeklarowania odpowiedniego modułu - plugin się nie skompiluje.
Otwórzmy okno z AMX MOD X Studio.

#include <amxmodx>
#include <amxmisc>

dopiszmy :

#include <fun>

oraz :

#include <cstrike>

Fun jest to moduł, który zawiera instrukcje związane z "zabawą" (zmienianiem HP oraz armor'a gracza, wyrzucaniem jego wszystkich broni, itp.).
Cstrikezawiera instrukcje, które pozwalają nam np. na zmienianie ilości pieniędzy gracza oraz także na zmienianie jego armor'a (jak w fun'ie) z tym, że tutaj możemy dodatkowo określić rodzaj kamizelki (sama kamizelka czy z hełmem).
Następną czynnością, jaką musimy wykonać jest zadeklarowanie zmiennej do naszej pcvark'i ( jeżeli nie wiecie jak to się robi - odsyłam Was do poprzedniej lekcji). Pcvark'i są szybsze od zwykłych cvar'ek, ale czym różni się deklarowanie pcvarek od deklarowania cvar'ek?
Pcvark'i muszą zostać przypisane do zmiennej, więc zadeklarujmy takową.
Nasza pcvark'a będzie odpowiadać za koszt skorzystania z usługi zmiany HP, więc nadajmy jej nazwę (na przykład) hp_koszt.
Zadeklarujmy zmienną. Dla czystości kodu robimy to pod :

#define PLUGIN "New Plugin"
#define VERSION "1.0"
#define AUTHOR "Author"

new hp_koszt

Teraz musimy zadeklarować naszą pcvarkę.
Robimy to w funkcji plugin_inti(). W funkcji ten deklarujemy wszystkie event'y, cvarki, itp.
Pod :

register_plugin(PLUGIN, VERSION, AUTHOR)

dopisujemy :

hp_koszt = register_cvar("hp_koszt","6000")

Instrukcja register_cvar("nazwa_cvarki","jaką_domyślną_wartość_przypisujemy") odpowiada za rejestrowanie cvar'ek. W nawiasie musimy podać nazwę cvarki oraz domyślną wartość. Domyślny koszt skorzystania z usługi zmiany HP ustawiłem na 6000.
Teraz zarejestrujemy co musi wpisać gracz, aby mógł skorzystać z usługi zmiany HP.
Umożliwia nam to instrukcja register_clcmd("jaką_komendę_musi_wpisać_gracz","którą_funkcję_wywołuje_wpisana_komenda")
Dopisujemy w plugin_init() :

register_clcmd("say /hpme","hp")

/hpmejest to komenda, którą gracz musi wpisać w say'u. Owa komenda wywołuje funkcję hp. Musimy tą funkcję teraz stworzyć.
Za ostatnim nawiasem klamrowym w naszym pluginie (za nawiasem zamykającym funkcję plugin_init()) dopisujemy :

public hp(id){
}

Wartość id w nawiasie jest to unikalny identyfikator gracza. Można go oczywiście nazwać inaczej, jak player lub gracz, ale id jest najtrafniejsze :) .
Dodamy teraz pierwszą instrukcję warunkową, która uniemożliwi skorzystanie z usługi zmiany HP gdy gracz jest nieżywy.
W funkcji hp(id) dopisujemy :

if(!is_user_alive(id)){
}

Wykrzyknik przed instrukcją is_user_alive(id) sprawia, że dana instrukcja zostanie wykonana tylko wtedy, gdy gracz nie jest żywy. !można przetłumaczyć jako nie,a całą instrukcję jako jeżeli gracz nie jest żywy wykonaj
Teraz przydałoby się zawiadomić gracza, że nie może skorzystać z naszej usługi.
W tym celu przyda nam się instrukcja client_print(), czyli wypisz graczowi.

Wygląda ona tak :

code_print(id,rodzaj_wypisanej_wiadomości (print_chat - wypisuje ją tak jak say lub print_center - wypisuje ją tam, gdzie wiadomości "Counter Terrorist win, itp.","Co_chcemy_wypisać")

Dopiszmy w naszej instrukcji warunkowej (za nawiasem klamrowym naszej instrukcji warunkowej) instrukcję :

client_print(id,print_chat,"[Zmiana HP] Nie mozesz skorzystac z tej uslugi ziom, bo jestes niezywy ;-(")

Przydałoby się teraz zastopować plugin. Dlaczego?
Dlatego, że nasza instrukcja nie została spełniona i nie chcemy, aby to co jest po niej wykonało się.
W naszej instrukcji warunkowej dopisujemy :

return PLUGIN_HANDLED

co oznacza - zwróć zastopowany plugin lub nie wykonuj dalej.
Teraz kolejna instrukcja warunkowa, uniemożliwiająca skorzystanie z usługi gdy nasze HP już wynosi 200.
Deklarujemy kolejną instrukcję warunkową. Do sprawdzenia życia gracza przyda nam się instrukcja get_user_health(id).

    if(get_user_health(id)>=200)){
       
    }

Teraz wzorem poprzedniej funkcji zaalarmujmy użytkownika, że nie może wykonać danej czynności. Tak jak wtedy posłuży nam do tego client_print().

client_print(id,print_chat,"[Zmiana HP] Juz skorzystales z tej uslugi!")

Standardowo dodajemy też zastopowanie plugin'u :

return PLUGIN_HANDLED

Dotychczas nasz kod powinien wyglądać tak :

/* Plugin generated by AMXX-Studio */

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

#define PLUGIN "New Plugin"
#define VERSION "1.0"
#define AUTHOR "Author"

new hp_koszt

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_cvar("hp_koszt","6000")
    register_clcmd("/say hpme","hp")
}

public hp(id){
    if(!is_user_alive(id)){
        client_print(id,print_chat,"[Zmiana HP] Nie mozesz skorzystac z tej uslugi ziom, bo jestes niezywy ;-(")
        return PLUGIN_HANDLED
    }
    if(get_user_health(id)>=200){
        client_print(id,print_chat,"[Zmiana HP] Juz skorzystales z tej uslugi!")
        return PLUGIN_HANDLED
    }
}

Teraz w końcu dodamy zmianę HP :) .
Umożliwi nam to instrukcja set_user_health(id,ile_HP).
Za klamrą zamykającą ostatnią instrukcję warunkową dopisujemy :

set_user_health(id,200)

Teraz pozostaje nam tylko odjęcie odpowiedniej ilości pieniędzy.
Posłuży nam do tego instrukcja cs_set_user_money(id,ilosc_pieniedzy) oraz
cs_get_user_money(id).
Pierwsza umożliwia ustawienie ilości pieniędzy a druga pobranie ilości pieniędzy posiadanej przez gracza.
Potrzebujemy jeszcze teraz instrukcji, która pobierze z pcvark'i hp_koszt koszt naszej usługi. Posłuży nam do tego get_pcvar_num(nazwa_cvarki).Pobiera ona wartość liczbową zapisaną w cvarc'e.
Dopisujemy pod instrukcją ustawiania życia :

cs_set_user_money(id,cs_get_user_money(id)-get_pcvar_num(hp_koszt))

Teraz dla czystej kosmetyki i poprawnego działania plugin'u dodajemy jeszcze pod ostatnią instrukcją :

return PLUGIN_HANDLED

No tak własnie ty , to koniec! CONGRATULATION . Jeżeli coś zle wypaliło napisz mi jeżeli masz z czymś problem . Jeżeli jest jakiś błąd w poradniku .

Teraz pozostaje Wam tylko skompilowanie plugin'u i zainstalowanie go na serwerze.
Finałowy kod powinien wyglądać tak :

/* Plugin generated by AMXX-Studio */

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

#define PLUGIN "New Plugin"
#define VERSION "1.0"
#define AUTHOR "Author"

new hp_koszt

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_cvar("hp_koszt","6000")
    register_clcmd("/say hpme","hp")
}

public hp(id){
    if(!is_user_alive(id)){
        client_print(id,print_chat,"[Zmiana HP] Nie mozesz skorzystac z tej uslugi ziom, bo jestes niezywy ;-(")
        return PLUGIN_HANDLED
    }
    if(get_user_health(id)>=200){
        client_print(id,print_chat,"[Zmiana HP] Juz skorzystales z tej uslugi!")
        return PLUGIN_HANDLED
    }
    set_user_health(id,200)
    cs_set_user_money(id,cs_get_user_money(id)-get_pcvar_num(hp_koszt))
    return PLUGIN_HANDLED
}



Poradnik wykonany w całości przez Paweł
  • +
  • -
  • 51


#35733 FakeFull Original v1.7.6

Napisane przez Abes Mapper w 18.01.2009 13:31

FakeFull Original v1.7.6
by (current) JTP10181, (oryginal) Freecode


Dołączona grafika
Plugin daje na serwer fikcyjne boty. Po prostu siedzą sobie na serwerze (na spec).
Jak wchodzi jakiś gracz to jeden bot wychodzi.

Dołączona grafika
amx_addfake <X | @FILL> - Dodaj X botów (X - ilość botów) albo zapełnij serwer (@FILL)
amx_removefake <X | @ALL> - Skasuj X botów (X - ilość botów) albo skasuj wszystkie (@ALL)

Dołączona grafika
Dodaj całość do amxx.cfg

// ****************** FakeFull Settings ******************
//Włącz plugin automatycznie.
//ff_players musi być większe niż 0.
//<1 = ON || 0 = OFF>
ff_automode 1

//Minimum botów które wbiją na serwer.
//Nie wolno ustawiać większej wartości niż taką
//jaką twój serwer może pomieścić graczy bo nikt nie będzie mógł wejść.
//Wymagana wartość powyżej 0 dla ff_automode 1.
ff_players 2

//Opóźnienie kiedy bot wchodzi lub wychodzi.
//Wymagane powyżej 0 dla ff_automode 1 lub ręczne dodawanie botów.
ff_delay 1


Dołączona grafika
Standardowa [ http://amxx.pl/viewtopic.php?t=20 ]
Plik botnames.txt dodajemy do addons/amxmodx/configs
Tam edytujemy nazwy botów.

Dołączona grafika
Fakemeta
Fun

Załączone pliki


  • +
  • -
  • 32


#1215 Automatic knife duel

Napisane przez Libre w 15.02.2008 20:24

Gdy zostaje 2 graczy po potarciu nożem pyta się o pojedynek na noże...

Instalacja tak jak w zwykłym, standardowym pluginie...

Pozdro

Załączone pliki


  • +
  • -
  • 23


#246163 Jak zmienić/dodać flagę do pluginu?

Napisane przez Goliath w 05.05.2011 20:00

Trzymaj. Flagę zmieniasz tu:
#define BH_FLAG ADMIN_LEVEL_H

Załączone pliki


  • +
  • -
  • 3


#492965 Problem z zapisem BF2 na SQL

Napisane przez Na 5tyk w 23.12.2012 18:39

W host wpisz: 10.10.0.101 lub 79.133.192.36
  • +
  • -
  • 1


#493475 Problem z zapisem BF2 na SQL

Napisane przez GwynBleidD w 25.12.2012 12:14

Żeś wyjaśnił...

Prawdopodobnie plugin nie widzi CVARu. Spróbuj te cvary dopisać do sql.cfg i sprawdź, czy na pewno dobrze je napisałeś, czy nie zrobiłeś jakiegoś byka, literówki...
  • +
  • -
  • 1


Logowanie


  • Potrzebujesz konta? Zarejestruj się!