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.
|
Halucyn
Rejestracja: 27.06.2013Aktualnie: Nieaktywny
Poza forum Ostatnio: 12.05.2016 09:29





Statystyki
- Grupa: Użytkownik
- Całość postów: 43
- Odwiedzin: 1 698
- Tytuł: Pomocny
- Wiek: Wiek nie został ustalony
- Urodziny: Data urodzin nie została podana
-
Imię
Łukasz
-
Płeć
Mężczyzna
-
Lokalizacja
Polska
Kontakt
Narzędzia użytkownika
Znajomi
Halucyn nie posiada znajomych
Ostatnio byli
#636146 [ROZWIĄZANE] Funkcja sprawdzająca mapę
Napisane przez Rivit
w 02.05.2014 19:20
amxx.pl/dokumentacja/f111/get_mapname
#629679 [ROZWIĄZANE] Zmiana broni na główną
Napisane przez ^Grzyboo
w 01.04.2014 20:49
#436926 Tworzenie wlasnego EXP MOD'A nvault
Napisane przez sebul
w 27.07.2012 12:31
#include <amxmodx>
#include <amxmisc>
#include <nvault>
new const CLASSES[][] = {
"None",
"Dog",
"Cat",
"Horse",
"Cow"
}
new const LEVELS[] = {
0,
100,
200,
400,
800,
1600,
3200
}
new PlayerXP[33], PlayerLevel[33], PlayerClass[33];
new XP_Kill, XP_Knife, XP_Hs, SaveXP, g_vault;
public plugin_init() {
register_plugin("XpMod", "1.0", "Fxfighter");
register_event("DeathMsg", "eDeath", "a");
SaveXP = register_cvar("SaveXP", "1");
XP_Kill = register_cvar("XP_per_kill", "20");
XP_Hs = register_cvar("XP_hs_bonus", "20");
XP_Knife = register_cvar("XP_knife_bonus", "20");
g_vault = nvault_open("animod");
register_clcmd("say /class", "ChangeClass");
register_clcmd("say_team /class", "ChangeClass");
register_clcmd("say /xp", "ShowHud");
register_clcmd("say_team /xp", "ShowHud");
}
public eDeath() {
new attacker = read_data(1);
new iVictim = read_data(2);
if(!is_user_connected(attacker) || !is_user_connected(iVictim))
return;
if(attacker == iVictim) // mozna tez dodac sprawdzanie druzyn
return;
new headshot = read_data(3);
new weaponname[32];
read_data(4, weaponname, 31);
if(equal(weaponname, "grenade")) {
format(weaponname, 31, "weapon_he%s", weaponname);
}
else if(!equal(weaponname, "weapon_", 7))
format(weaponname, 31, "weapon_%s", weaponname);
new weapon = get_weaponid(weaponname);
PlayerXP[attacker] += get_pcvar_num(XP_Kill);
if(headshot)
PlayerXP[attacker] += get_pcvar_num(XP_Hs);
if(weapon == CSW_KNIFE)
PlayerXP[attacker] += get_pcvar_num(XP_Knife);
new bool:zdobyl, bool:stracil;
while(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]])
{
++PlayerLevel[attacker];
zdobyl = true;
}
while(PlayerXP[attacker] < LEVELS[PlayerLevel[attacker]])
{
--PlayerLevel[attacker];
stracil = true;
}
if(stracil) {
client_print(attacker, print_chat, "Spadles do %i poziomu!", PlayerLevel[attacker]);
}
else if(zdobyl) {
client_print(attacker, print_chat, "Awansowales do %i poziomu!", PlayerLevel[attacker]);
}
ShowHud(attacker);
SaveData(attacker);
}
public ShowHud(id) {
set_hudmessage(255, 0, 0, 0.75, 0.01, 0, 6.0, 15.0);
show_hudmessage(id, "Level: %i^nXP: %i^nClass: %s", PlayerLevel[id], PlayerXP[id], CLASSES[PlayerClass[id]]);
return PLUGIN_HANDLED;
}
public ChangeClass(id) {
new menu = menu_create("Class Menu", "Class_Handle");
new ile = sizeof(CLASSES);
for(new i=1; i<ile; ++i)
menu_additem(menu, CLASSES[i]);
menu_display(id, menu);
return PLUGIN_HANDLED;
}
public Class_Handle(id, menu, item) {
if(item++ == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
if(PlayerClass[id] != item) {
PlayerClass[id] = item;
client_print(id, print_chat, "You are now a %s", CLASSES[item]);
}
else {
client_print(id, print_chat, "You are alredy a %s", CLASSES[item]);
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public client_authorized(id) {
PlayerXP[id] = 0;
PlayerLevel[id] = 1;
PlayerClass[id] = 0;
if(get_pcvar_num(SaveXP) == 1)
LoadData(id);
}
public client_disconnect(id) {
if(get_pcvar_num(SaveXP) == 1)
SaveData(id);
PlayerXP[id] = 0;
PlayerLevel[id] = 1;
PlayerClass[id] = 0;
}
public SaveData(id) {
if(g_vault == INVALID_HANDLE)
return;
new AuthID[32]; get_user_authid(id, AuthID, 31);
new vaultkey[64], vaultdata[128];
format(vaultkey, 63, "%s-Mod", AuthID);
format(vaultdata, 127, "%i %i", PlayerXP[id], PlayerLevel[id]);
nvault_set(g_vault, vaultkey, vaultdata);
}
public LoadData(id) {
if(g_vault == INVALID_HANDLE)
return;
new AuthID[32]; get_user_authid(id, AuthID, 31);
new vaultkey[64], vaultdata[128];
format(vaultkey, 63, "%s-Mod", AuthID);
if(nvault_get(g_vault, vaultkey, vaultdata, 127)) {
new playerxp[11], playerlevel[11];
parse(vaultdata, playerxp, 10, playerlevel, 10);
PlayerXP[id] = str_to_num(playerxp);
PlayerLevel[id] = str_to_num(playerlevel);
}
}
Według mnie, tak powinna wyglądać całość (mniej niż 200 linijek

#616065 [ROZWIĄZANE] Poświata broni
Napisane przez DarkGL
w 14.02.2014 15:07
#612935 [ROZWIĄZANE] Funkcja wczytująca nick i porównanie
Napisane przez sebul
w 07.02.2014 14:42
#612026 [ROZWIĄZANE] Podkładanie/rozbrajanie event
Napisane przez rydy171
w 02.02.2014 02:16
#611579 Amnestia
Napisane przez DarkGL
w 01.02.2014 09:59
Związku ze zmianą własciciela forum o raz administracji postanowiliśmy ( w sumie już zgodnie z tradycją ) dać możliwość osobom zbanowanym poprawy się i powrotu na forum.
Osoby które zgłoszą się do mnie zostaną odbanowane lub dostaną możliwość stworzenia nowego konta.
Użytkownicy którzy posiadają kilka kont proszeni są o korzystanie tylko z jednego konta i zgłoszenie tego administracji. Konta z które należą do różnych osób a korzysta się z nich na tym samym komputerze np. rodzeństwo też należy zgłaszać.
#610600 [ROZWIĄZANE] Menu z wartościami z tablicy
Napisane przez Rivit
w 29.01.2014 11:28
#609728 [ROZWIĄZANE] Pobranie danych z tablicy
Napisane przez DarkGL
w 27.01.2014 10:52
#609726 [ROZWIĄZANE] Pobranie danych z tablicy
Napisane przez dasiek
w 27.01.2014 10:50
Po pierwsze = to przypisanie wartości. == to sprawdzenie czy jest równe. Poza Tym jak chcesz się odwołać do "abc" z Tablicy Zmienna[] która jest drugim elementem wpiszesz Zmienna[1] gdyż indexowanie tablicy zaczyna się od zera (chcę drugi element więc 2 - 1 = 1 , chcę 1 element więc 1-1 = 0 , chce 100 element tablicy więc 100-1 = 99)
#609196 [ROZWIĄZANE] Z SID'a na Nick
Napisane przez Niide
w 25.01.2014 17:55
#608781 [ROZWIĄZANE] Zmiana modelu broni i jej dodanie
Napisane przez Droso
w 24.01.2014 15:15
1. http://amxx.pl/topic...e-modeli-broni/
2. http://amxx.pl/topic...ive-item-speed/ ( Funkcja: give_item )
P.S Temat lekko podpada pod regulamin, bo nie nazywasz go zgodnie z jego treścią słowo "Broń" dużo nie mówi, zobaczymy jak spojrzy na to moderator.
#608772 [ROZWIĄZANE] Wyświetlanie nicku
Napisane przez DarkGL
w 24.01.2014 14:46
#608062 [ROZWIĄZANE] Czas jakiejś funkcji
Napisane przez DarkGL
w 22.01.2014 12:40
#281413 Tutor - Informacje jak w Condition Zero
Napisane przez DarkGL
w 11.08.2011 18:48
Mamy cztery rodzaje tutorów
- Czerwony - W Condition Zero jest używany gdy terrorysta zginie.
- Niebieski - W Condition Zero jest używany gdy anty terrorysta zginie
- Zielony - W Condition Zero jest używany do przekazania ważnej informacji w kolorze zielonym.
- Żółty - W Condition Zero jest używany do przekazania ważnej informacji w kolorze żółtym.

ale po ponownym wejściu na serwer powinno być już wszystko ok

Pliki do wrzucenia na serwer są na końcu posta archiwum cstrike.rar
Obsługa tutorów :
Na końcu postu znajdziecie download pliku tutor.inc jest to zbiór funkcji który ułatwia pracę z tutorami
plik tutor.inc wrzucamy do folderu include naszego kompilatora
Chcąc użyć w pluginie tej biblioteki pod #include modułów dodajemy
#include <tutor>np.
#include <amxmodx> #include <amxmisc> #include <tutor>
do pluginu musimy dodać wywołanie dwóch funkcji bez nich wyświetlanie nie zadziała
są to tutorInit i tutorPrecache pierwszą dodajemy do plugin_init
np.
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) tutorInit(); }a drugą do plugin_precache
public plugin_precache(){ tutorPrecache() }
Funkcja służąca do wyświetlania tutorów to tutorMake
tutorMake(id,TutorColor:Color,Float:fTime = 0.0,const szText[],any:...)Parametry:
- id - id gracza któremu wyświetlić tutor jeśli podamy 0 zostanie wyświetlony wszystkim
- Color - podajemy tutaj kolor tutora wartości jakie może przyjmować to
- TUTOR_RED - czerwony kolor tutora
- TUTOR_BLUE - niebieski kolor tutora
- TUTOR_YELLOW - zółty kolor tutora
- TUTOR_GREEN - zielony kolor tutora
- fTime - czas wyświetlania tutora jeśli podamy 0.0 tutor będzie wyświetlany ciągle aż nie zastąpi go inny tutor , liczba rzeczywista a nie całkowita
- szText - text wyświetlany w tutorze możemy używać w nim formatowania np. %d %i %s tak jak w np. client_print czy colorchat w dalszych parametrach podajemy zmienne/tablice itp. do formatowanego tekstu
Przykłady:
tutorMake(id,TUTOR_RED,5.0,"Czerwony tutor")
wyświetla jednemu graczowi czerwony tutor o treści "Czerwony tutor" przez 5 sekundtutorMake(0,TUTOR_GREEN,5.0,"Tutor globalny")
wyświetla wszystkim graczom zielony tutor o treści "Tutor globalny" przez 5 sekundtutorMake(id,TUTOR_GREEN,5.0,"formatowany %d %s",1,"string")
tutaj widać formatowanie wiadomości
wyświetla jednemu graczowi zielony tutor o treści "formatowany 1 string" przez 5 sekund
Dla osób które nie wiedzą jak formatować ciąg znaków polecam przeczytać to
Dokumentacja AMXX.pl: Core >> string > format
Tutaj kod pluginu którego używałem do testowania funkcji
#include <amxmodx> #include <amxmisc> #include <tutor> #define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "DarkGL" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) tutorInit(); register_clcmd("say /test","test"); register_clcmd("say /test2","test2"); register_clcmd("say /test3","test3"); register_clcmd("say /test4","test4"); register_clcmd("say /test5","test5") register_clcmd("say /test6","test6") } public plugin_precache(){ tutorPrecache() } public test(id){ tutorMake(id,TUTOR_RED,5.0,"Czerwony tutor") } public test2(id){ tutorMake(id,TUTOR_BLUE,5.0,"Niebieski tutor") } public test3(id){ tutorMake(id,TUTOR_GREEN,5.0,"Zielony tutor") } public test4(id){ tutorMake(id,TUTOR_YELLOW,5.0,"Zolty tutor") } public test5(id){ tutorMake(0,TUTOR_GREEN,5.0,"Tutor globalny") } public test6(id){ tutorMake(id,TUTOR_GREEN,5.0,"formatowany %d %s",1,"string") }
testuje w nim wyświetlanie różnych kolorów , globalne wyświetlanie tutora i formatowanie





- AMXX.pl: Support AMX Mod X i SourceMod
- → Przeglądanie profilu: Reputacja: Halucyn
- Regulamin