
Zamiast standardowej bomby mamy dziewczynę, która przy rozbrajaniu zaczyna tańczyć na rurze.



To równanie zostało stworzone przy pomocy kodu LaTeX:
Edytor LaTeX online: CodeCogs.com/latex/eqneditor.php
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.
|
Napisane przez White
w 18.02.2019 19:50
Napisane przez Rivit
w 17.02.2019 13:00
Z racji, że dużo osób ma problemy z tym błędem to postanowiłem napisać coś na szybko o co chodzi w tym wszystkim.
1. Skąd się bierze ten błąd?
Błąd się pojawia, gdy wersja AMXX na serwerze jest niezgodna z wersją kompilatora, którym są skompilowane nasze pluginy.
Przykład:
Mamy sobie AMXX 1.8.1 i wszystko działa. Postanawiamy zrobić update do 1.8.2, no więc wgrywamy pliki nowego AMXX'a, odpalamy serwer i? No i dużo pluginów sypie błędami Load error 17 (invalid file format or version).
2. Jak żyć? Co robić?
Otóż sprawa jest prosta. Najpierw należy się zorientować jaką wersje AMXX posiadamy na serwerze.
Służą do tego komendy:
Przykładowy output z komendy 'meta list'. W tym przypadku wersja to 1.8.2
Currently loaded plugins: description stat pend file vers src load unlod [ 1] AMX Mod X RUN - amxmodx_mm.dll v1.8.2 ini Start ANY [ 2] POD-Bot mm RUN - podbot_mm.dll vV3B22 ini Chlvl ANY [ 3] Fun RUN - fun_amxx.dll v1.8.2 pl1 ANY ANY [ 4] CStrike RUN - cstrike_amxx.dll v1.8.2 pl1 ANY ANY [ 5] CSX RUN - csx_amxx.dll v1.8.2 pl1 ANY ANY [ 6] Engine RUN - engine_amxx.dll v1.8.2 pl1 ANY ANY 6 plugins, 6 running
'amxx version'
] amxx version AMX Mod X 1.8.2 (http://www.amxmodx.org) Authors: David "BAILOPAN" Anderson, Pavol "PM OnoTo" Marko Felix "SniperBeamer" Geyer, Jonny "Got His Gun" Bergstrom Lukasz "SidLuke" Wlasinski, Christian "Basic-Master" Hammacher Borja "faluco" Ferrer, Scott "DS" Ehlert Compiled: Feb 14 2013, 00:56:37 Build ID: 1.8.2 61:2ae84f7c0a97 Core mode: JIT+ASM32
Gdy ustalimy już wersje czas na kompilacje. Można użyć kompilatora online, który jest na http://amxx.pl, ale sugerowałbym użycie kompilatora lokalnego.
W tym celu wchodzimy sobie na stronke https://www.amxmodx.org/ tam mamy AMXX'y 1.8.2 i 1.9 (reszty wersji trzeba pogrzebać sobie gdzieś w necie czy coś, te najpopularniejsze obecnie). Pobieramy sobie AMX Mod X Base windows/linux (zależy jakiego systemu używasz, mowa tu o twoim systemie, nie tym na serwerze).
Pliczek pobrany, należy go wypakować i przejść do folderu scripting. Tam znajduje się nasz kompilator. Głowne jego pliki to te widoczne na screenie:
Pamiętajcie, aby wrzucić pliki .inc do folderu include, jeżeli jakiś plugin korzysta z własnych.
Teraz gdy mamy nasz kompilator wystarczy przekompilować nasze pluginy z serwera. W tym celu należy wrzucić nasze pliki .sma do folderu z kompilatorem, a później uruchomić plik compile.exe (bądź compile.sh, gdy jesteśmy na linuxie). Wyskoczy okienko, a pluginy się skompilują i będą w folderze 'compiled'. Stamtąd pozostaje nam je wgrać na nasz serwer oraz zmienić mape/zrestartować serwer. Błędy powinny ustąpić. Aby sprawdzić, które pluginy działają bądź nie wystarczy użyć komendy 'amxx plugins' albo 'amx_plugins'
3. Uwagi
1. Pluginy standardowe, czyli:
admin.amxx adminchat.amxx admincmd.amxx adminhelp.amxx adminslots.amxx adminvote.amxx admin_sql.amxx amxmod_compat.amxx antiflood.amxx cmdmenu.amxx csstats.amxx imessage.amxx mapchooser.amxx mapsmenu.amxx menufront.amxx miscstats.amxx multilingual.amxx nextmap.amxx pausecfg.amxx plmenu.amxx pluginmenu.amxx restmenu.amxx scrollmsg.amxx statscfg.amxx statsx.amxx stats_logging.amxx telemenu.amxx timeleft.amxx
należy wgrywać wraz z aktualizacją AMXX (są w folderze plugins), z wersji na wersje są zmieniane (dodają jakieś łatki do nich czy nowe ficzery). Nie ma potrzeby ich ponownej kompilacji, gdyż w paczce są one już skompilowane.
2. Błędy przy kompilacji pluginów
Może się tak zdarzyć, że niektóre pluginy będą się kompilowały z błędem na nowszym kompilatorze. Wynika to ze zmian w kolejnych wersjach AMXX. Wtedy należy albo samemu pokombinować coś (zwykle błędy są proste w naprawie), albo napisać na forum temat w odpowiednim dziale. (może będę doklejac do tego tematu listy popularnych błędów itp)
Lista typowych błędów/ostrzeżeń kompilatora:
warning 233: symbol "client_disconnect" is marked as deprecated: Use client_disconnected() instead.
Naprawa:
- szukamy w naszym pluginie client_disconnect i zamieniamy na client_disconnected, po czym kompilujemy plugin ponownie i ma śmigać.
3. Dla leniwych kompilator w wersji 1.8.2 na windowsa znajduje się w załączniku.
Napisane przez Robiin
w 14.02.2019 19:06
Odświeżyłem nieco kod; teraz działa on tylko na AMXX >= 1.9. Dodałem:
Kod wrzucam do pierwszego posta z nazwą rangi_AMXX19.sma
Napisane przez Paweł.
w 14.02.2019 18:14
Load fails: Plugin uses an unknown function (name "GetUserRank") - check your modules.ini.
Rangi.sma 5,76 KB 290 Ilość pobrań
Rangi.amxx
Napisane przez Troche Wstydzioch ;D
w 11.02.2019 17:08
Napisane przez Rivit
w 24.01.2019 11:54
Napisane przez Paweł.
w 21.01.2019 18:44
ACP Wygląd
Style i szablony
Edytuj HTML CSS
Zakładka Szablony
Wyszukujemy: staffMembers
I dodajemy pod (u mnie linijka 16)
{expression="\IPS\Member\Group::load( $user->member()->member_group_id )->formattedName" raw="true"}
Dodajemy to:
{{if $user->member()->last_activity}} <div class="cWidgetContainer " data-controller="core.front.widgets.area" data-role="widgetReceiver" data-orientation="vertical" data-widgetarea="sidebar"> <ul class="ipsList_reset"> <li class="ipsPos_left"> {lang="members_last_visit"} {{if $user->member()->isOnline()}}<i class="fa fa-circle ipsOnlineStatus_online" data-ipsTooltip title="{lang="online_now" sprintf="$user->member()->name"}"></i>{{endif}} {{if $user->member()->last_activity}}{datetime="$user->member()->last_activity" short="TRUE"}{{endif}} </li> {{endif}}
Dodajemy pod (u mnie to linijka 51)
{expression="\IPS\Member\Group::load( $user->member()->member_group_id )->formattedName" raw="true"}
Dodajemy to:
{{if $user->member()->last_activity}} <div class="cWidgetContainer " data-controller="core.front.widgets.area" data-role="widgetReceiver" data-orientation="vertical" data-widgetarea="sidebar"> <ul class="ipsList_reset"> <li class="ipsPos_left"> {lang="members_last_visit"} {{if $user->member()->isOnline()}}<i class="fa fa-circle ipsOnlineStatus_online" data-ipsTooltip title="{lang="online_now" sprintf="$user->member()->name"}"></i>{{endif}} {{if $user->member()->last_activity}}{datetime="$user->member()->last_activity" short="TRUE"}{{endif}} </li> {{endif}}
Wygląd całego kodu:
{{if $orientation == 'vertical'}} {{foreach $users as $user}} {{if $user->member()->isOnline()}} <li class='ipsDataItem {{if $orientation == 'horizontal'}}ipsGrid_span3{{endif}}'> <div class='ipsDataItem_icon ipsPos_top'> {template="userPhoto" app="core" group="global" params="$user->member(), 'tiny'"} </div> <div class="ipsDataItem_main"> <h3 class='ipsType_sectionHead'>{{if \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_name_{$user->id}" )}}<a href='{$user->member()->url()}'>{lang="core_staff_directory_name_{$user->id}"}</a>{{else}}{$user->member()->link()|raw}{{endif}}</h3> <p class='ipsType_reset ipsType_normal ipsType_light'> {expression="\IPS\Member\Group::load( $user->member()->member_group_id )->formattedName" raw="true"} {{if $user->member()->last_activity}} <div class="cWidgetContainer " data-controller="core.front.widgets.area" data-role="widgetReceiver" data-orientation="vertical" data-widgetarea="sidebar"> <ul class="ipsList_reset"> <li class="ipsPos_left"> {lang="members_last_visit"} {{if $user->member()->isOnline()}}<i class="fa fa-circle ipsOnlineStatus_online" data-ipsTooltip title="{lang="online_now" sprintf="$user->member()->name"}"></i>{{endif}} {{if $user->member()->last_activity}}{datetime="$user->member()->last_activity" short="TRUE"}{{endif}} </li> {{endif}} <span class="ipsPos_right"> {{if !member.members_disable_pm AND !$user->member()->members_disable_pm}} <a href='{url="app=core&module=messaging&controller=messenger&do=compose&to={$user->member()->member_id}" seoTemplate="messenger_compose"}' data-ipsDialog data-ipsDialog-title='{lang="compose_new"}' data-ipsDialog-forceReload data-ipsDialog-remoteSubmit data-ipsDialog-flashMessage="{lang="message_sent"}"><i class='fa fa-envelope'></i> </a> {{endif}} </span> </p> </div> </li> {{endif}} {{endforeach}} {{else}} {{foreach $users as $user}} <div class='ipsGrid_span3'> {{if $user->member()->isOnline()}} <div class='ipsDataItem_icon ipsPos_top'> {template="userPhoto" app="core" group="global" params="$user->member(), 'tiny'"} </div> <div class="ipsDataItem_main"> <h3 class='ipsType_sectionHead'>{{if \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_name_{$user->id}" )}}<a href='{$user->member()->url()}'>{lang="core_staff_directory_name_{$user->id}"}</a>{{else}}{$user->member()->link()|raw}{{endif}}</h3> <p class='ipsType_reset ipsType_normal ipsType_light'> {expression="\IPS\Member\Group::load( $user->member()->member_group_id )->formattedName" raw="true"} {{if $user->member()->last_activity}} <div class="cWidgetContainer " data-controller="core.front.widgets.area" data-role="widgetReceiver" data-orientation="vertical" data-widgetarea="sidebar"> <ul class="ipsList_reset"> <li class="ipsPos_left"> {lang="members_last_visit"} {{if $user->member()->isOnline()}}<i class="fa fa-circle ipsOnlineStatus_online" data-ipsTooltip title="{lang="online_now" sprintf="$user->member()->name"}"></i>{{endif}} {{if $user->member()->last_activity}}{datetime="$user->member()->last_activity" short="TRUE"}{{endif}} </li> {{endif}} <span class="ipsPos_right"> {{if !member.members_disable_pm AND !$user->member()->members_disable_pm}} <a href='{url="app=core&module=messaging&controller=messenger&do=compose&to={$user->member()->member_id}" seoTemplate="messenger_compose"}' data-ipsDialog data-ipsDialog-title='{lang="compose_new"}' data-ipsDialog-forceReload data-ipsDialog-remoteSubmit data-ipsDialog-flashMessage="{lang="message_sent"}"><i class='fa fa-envelope'></i> </a> {{endif}} </span> </p> </div> {{endif}} </div> {{endforeach}} {{endif}}
Efekt:
Widget:
Staff Online.zip 4,03 KB 132 Ilość pobrań
Napisane przez Paweł.
w 21.01.2019 18:30
Poradnik autorstwa: Paweł
Wchodzimy na strone główną Zarządzaj blokami ( Po lewej stronie
)
System
Blok "Użytkownicy"
Przenosimy do panelu bocznego
Edytuj
"Grupy". dodajemy grupy Administracyjne
Wyświetlanie, zaznaczamy "Lista"
Efekt:
ZAKAZ KOPIOWANIA ITD. BEZ ZGODY AUTORA!
Napisane przez Robiin
w 14.12.2018 23:09
Na wstępie chciałbym prosić każdego czytelnika o dołożenie swojej wiedzy do tematu i podzielenie się doświadczeniem, żeby wspólnie udoskonalić generator.
Ode mnie takie info:
Usunąć makrodefinicję IsPlayer
Aktualny syntax definicji:
#define IsPlayer(%1) (1<=%1<=maxPlayers)
Is_user_connected:
static cell AMX_NATIVE_CALL is_user_connected(AMX *amx, cell *params) /* 1 param */ { int index = params[1]; if (index < 1 || index > gpGlobals->maxClients) return 0; CPlayer* pPlayer = GET_PLAYER_POINTER_I(index); return (pPlayer->ingame ? 1 : 0); }
Zależnie od tego, czy chcemy iść z tym wszystkim pod kod easy-to-read czy wydajny:
Zamiana bool'a g_Vip na bity
new bool:g_Vip[33]
na
new g_Vip; #define SetBit(%2,%1) (%1 |= (1 << (%2 & MAX_PLAYERS - 1))) #define RemoveBit(%2,%1) (%1 &= ~(1 <<(%2 & MAX_PLAYERS - 1))) #define GetBit(%2,%1) (%1 & (1 << (%2 & MAX_PLAYERS - 1))) #define GetBool(%2,%1) (%1 & (1 << (%2 & MAX_PLAYERS - 1)) == (1 << (%2 & MAX_PLAYERS - 1)))
gdzie
#define MAX_PLAYERS 32
będzie łatwą do zmiany wartością. Przy okazji, z tego co wiem to
maxPlayers=get_maxplayers();
nie działa dobrze (ale nie pamiętam od kogo to wiem i dlaczego, więc nie argumentuję się tym, po prostu mówię, że moim zdaniem nie wygląda to dobrze). Dodatkowo makrodefinicja MAX_PLAYERS pozwoli na określenie wielkości tablicy względem ilości graczy, dzięki czemu zaoszczędzimy na pamięci.
Zmiana syntaxu sprawdzania sumy bitowej flag gracza
if(get_user_flags(id) & 524288 == 524288){
na
if(get_user_flags(id) & ADMIN_LEVEL_H){
I tak, wiem, że sprawdzanie w ten sposób ma swój cel, jednakże ta zmiana nie wpłynie na działanie pluginu, a unikniemy tematów pt. "jak zmienić flagę vipa".
Zmiana momentu i częstotliwości przypisywania dostępu do vipa
W związku z tematami pt. "free vip nie działa", wychodzę temu na przeciw i rozwiewam wątpliwości osób, które mają z tym problem; plugin wam nie działa, bo vip z generatora ma przypisanie dostępu jednorazowo przy wejściu na serwer, co się kłóci z dodawaniem flagi np. od 1/2/3.. rundy.
Tym samym proponuję zmianę tego:
public client_authorized(id){ if(get_user_flags(id) & 524288 == 524288){ client_authorized_vip(id); } } public client_authorized_vip(id){ g_Vip[id]=true; }
na to
public client_authorized(index) if(get_user_flags(index) & ADMIN_LEVEL_H) SetBit(index, g_Vip);
jednocześnie unikając rozdzielania tego na dwie funkcje (które szczerze nie wiem dlaczego w ogóle się tam znalazły?).
Nie rozwiązuje to problemu darmowego vipa i kłócenia się ze sposobem przypisania dostępu, dlatego proponuję też sprawdzanie pętlą co rundę flag gracza. Piszę to osobno, aby zwrócić uwagę na możliwość dodania tego opcjonalnie. Nie każdy będzie chciał sprawdzanie flagi co rundę, dlatego myślę, że taka wersja będzie pasowała każdemu.
Gotowy kod z bitami;
public plugin_init() register_event("HLTV", "Nowa_Runda", "a", "1=0", "2=0"); public Nowa_Runda() for(new i = 1; i <= 32; i++) if(is_user_connected(i) && get_user_flags(i) & ADMIN_LEVEL_H && !GetBool(i, g_Vip) SetBit(i, g_Vip);
Jednorazowe pobranie nicku gracza, żeby uniknąć powtarzania się tego przy liście vipów, say'u etc.
new userName[MAX_PLAYERS][33]; public client_authorized(index) { if(is_user_hltv(index)) return; get_user_name(index, userName[index], charsmax(userName[])); }
Zmiana syntaxu w sayHandle na łatwy do odczytania przy prefixie
Zmiana z tego
public handleSayText(msgId,msgDest,msgEnt){ new id = get_msg_arg_int(1); if(is_user_connected(id) && g_Vip[id]){ new szTmp[256],szTmp2[256]; get_msg_arg_string(2,szTmp, charsmax(szTmp)) new szPrefix[64] = "^x04[VIP]"; if(!equal(szTmp,"#Cstrike_Chat_All")){ add(szTmp2,charsmax(szTmp2),szPrefix); add(szTmp2,charsmax(szTmp2)," "); add(szTmp2,charsmax(szTmp2),szTmp); } else{ add(szTmp2,charsmax(szTmp2),szPrefix); add(szTmp2,charsmax(szTmp2),"^x03 %s1^x01 : %s2"); } set_msg_arg_string(2,szTmp2); } return PLUGIN_CONTINUE; }
na to
public sayHandle(msgId, msgDest, msgEnt) { new index = get_msg_arg_int(1); if(!is_user_connected(index) || !GetBool(index, g_Vip)) return PLUGIN_CONTINUE; new chatString[2][192]; get_msg_arg_string(2, chatString[0], charsmax(chatString[])); new chatPrefix[64] = "^x04VIP"; if(equal(chatString[0], "#Cstrike_Chat_All")) { get_msg_arg_string(4, chatString[0], charsmax(chatString[])); set_msg_arg_string(4, ""); formatex(chatString[1], charsmax(chatString[]), "%s^x03 %s^x01 : %s", chatPrefix, userName[index], chatString[0]); } else formatex(chatString[1], charsmax(chatString[]), "%s^x01 %s", chatPrefix, chatString[0]); set_msg_arg_string(2, chatString[1]); return PLUGIN_CONTINUE; }
Przy okazji tego wszystkiego można by zmienić syntax kodu overall; usunąć zbędne spacje, ogarnąć powtarzający się kod, nazwy zmiennych z np. "g_Vip" na "hasVip" (tak, wiem, że są różne syntaxy pisania kodu i różne firmy wymagają różnych sposobów jego pisania, ale tutaj możemy śmiało powiedzieć, że sami będziemy na tym korzystać. Moim zdaniem łatwiej się czyta "hasVip" niż "g_Vip", ale to już preferencje personalne, ja tylko daję propozycję ), usunąć zbędne przechodzenie do osobnych funkcji, usunąć brackety przy jednoliniowych funkcjach (tak, tutaj też wiem, że to ma swój cel i różni programiści [...]).
Napisane przez Wraith
w 01.12.2018 20:53
Link: https://www42.zippys...N73Ct/file.html
Ilość: 42
Tracklista:
1.Train - Shake up Christmas 2.Morgen - Święta przed PC (Pierwsza zwrotka) 3.S Club 7 - Perfect Christmas 4.Paul McCartney - Wonderful Christmas Time 5.Świąteczne EP - Nie pada śnieg 6.Morgen - Święta przed PC (Refren) 7.Big Cyc - Idą święta 8.Shakin' Stevens - Merry Christmas Everyone 9.Morgen - Święta przed PC (Druga zwrotka) 10.Basshunter - Jingle Bells 11.Morgen - Święta przed PC (Trzecia zwrotka) 12.De Su - Kto wie 13.Ania Szarmach - Coraz bliżej święta 14.52 Dębiec - Kryszmas Alkoholis 15.Mariah Carey - All I Want For Christmas Is You 16.Anna Szarmach - Coraz bliżej Święta 17.PDG - Kolęda 18.Wham! - Last Christmas 19.PDG - Kolęda 20.Kayah - Ding Dong 21.Verba - Ten czas 22.Czerwone Gitary - Jest taki dzień 23.52 Dębiec - Kryszmas Alkoholis 24.Melanie Thornton - Wonderful Dream 25.Martin Garrix - Przybiezeli Do Betlejem Zwierzeta (Slupe Christmas Edit) 26.Quligowscy - Z kopyta kulig rwie 27.Céline Dion - Happy Xmas 28.Masters - Prezent 29.Effect - Zimna Vodka 30.Martin Garrix - Wsrod nocnej ciszy (Hanysek Edit) 31.Martin Garrix - Pojdzmy wszyscy do stajenki (Matien Christmas Edit) 32.Sandro Silva & Quintino - Epic MaluSienki (Hanysek Edit) 33.DVBBS & Borgeous vs Christmas - Tsunami (Kamian Dotwica Christmas Rework 2013) 34.Seaven & Seaven Junior - Last Christmas 2018 35.Remady vs Dj Antoine - Last Christmas Superstar (Dj Decameron Edit Version) 36.G&K Project - Jingle Bells 37.Zespół Fair Play - Jingle Bells 2017 38.Jingle Bells (Teddy Cream Bootleg) 39.AdryxG - Christmas Bounce 40.Ced Tecknoboy - Merry X Mas 41.Cascada - Last Christmas 42.Sumptuastic - Jest taki dzień
Napisane przez O'Zone
w 24.11.2018 17:20
Ponad 8 lat temu, QTM. Peyote wydał swojego Call of Duty: MW Mod, znany tutaj jako "CoD Nowy".
Jeszcze w 2016 roku zacząłem pracować nad własną wersją, która miałaby być opracowana od podstaw
i przede wszystkim scentralizować zarządzanie wieloma funkcjonalnościami bezpośrednio w silniku.
Miałoby to zmniejszyć liczbę potencjalnych bugów, a przede wszystkim dość mocno zredukować
długość kodu klas / itemów i maksymalnie ułatwić ich tworzenie.
Projekt zakończyłem pod koniec 2017 roku i jako, że swoją karierę związaną AMXX już zakończyłem,
postanowiłem go opublikować na użytek społeczności, żeby ta praca się nie zmarnowała.
Baza moda to 19 pluginów wliczając w to silnik (niektóre są oczywiście opcjonalne)
i zapewniają masę funkcjonalności, których wręcz nie mam czasu opisać
- jeśli ktoś będzie skłonny wytworzyć takowy opis, będę zobowiązany.
Poza nimi ciekawscy znajdą 35 gotowych klas i 101 itemów do wykorzystania,
które stanowią przy okazji przykład jak tworzyć klasy i itemy na tym silniku.
Dodatkowo znaleźć tam można pluginy usług pod SklepSMS.
Wszystkie dodatkowe pliki gotowe do wrzucenia, czyli modele, sprite'y, dźwięki
i bazowe pliki konfiguracyjne znajdują się w folderze resources.
Uwaga: Mod jest napisany pod AMXXa 1.8.3 / 1.9.
Polecam dodatkowo wykorzystać ReHLDS i ReGameDLL ze względu na większą stabilność niż natywne binarki.
Dostęp do niemal wszystkich komend jest dostępny w głównym menu pod komendą /menu lub klawiszem "V".
Oczywiście listy komend i ich aliasów można znaleźć w kodzie źródłowym poszczególnych pluginów.
// Cvars Database
cod_sql_host "127.0.0.1"
cod_sql_user "user"
cod_sql_pass "password"
cod_sql_db "database"
// Cvars Core
cod_kill_exp "20"
cod_hs_exp "10"
cod_damage_exp "3"
cod_win_exp "25"
cod_bomb_exp "25"
cod_defuse_exp "25"
cod_host_exp "25"
cod_night_exp "1"
cod_night_exp_from "22"
cod_night_exp_to "8"
cod_max_level "501"
cod_level_ratio "20"
cod_level_promotion_first "50"
cod_level_promotion_second "150"
cod_level_promotion_third "300"
cod_killstreak_time "15"
cod_min_players "4"
cod_min_bonus_players "10"
cod_max_durability "100"
cod_min_damage_durability "10"
cod_max_damage_durability "25"
// Cvars Stats
cod_medal_gold_exp "500"
cod_medal_silver_exp "300"
cod_medal_bronze_exp "100"
cod_assist_enabled "1"
cod_assist_damage "70"
cod_assist_exp "15"
// Cvars Box
cod_box_chance "6"
// Cvars Clans
cod_clans_chat_prefix "1"
cod_clans_level_cost "1000"
cod_clans_next_level_cost "1000"
cod_clans_skill_cost "500"
cod_clans_next_skill_cost "500"
cod_clans_create_level "25"
cod_clans_members_start "3"
cod_clans_level_max "10"
cod_clans_skill_max "10"
cod_clans_members_per_level "1"
cod_clans_health_per_level "1"
cod_clans_gravity_per_level "20"
cod_clans_damage_per_level "1"
cod_clans_weapondrop_per_level "1"
// Cvars Honor
cod_honor_minplayers "4"
cod_honor_kill "1"
cod_honor_killhs "1"
cod_honor_winround "1"
cod_honor_bombplanted "2"
cod_honor_bombdefused "2"
cod_honor_rescuehostage "1"
cod_honor_killhostage "4"
// Cvars Shop
cod_shop_repair_cost "10"
cod_shop_item_cost "15"
cod_shop_upgrade_cost "10"
cod_shop_small_bandage_cost "6"
cod_shop_small_exp_cost "6"
cod_shop_medium_exp_cost "14"
cod_shop_big_exp_cost "25"
cod_shop_random_exp_cost "15"
cod_shop_big_bandage_cost "15"
cod_shop_rocket_cost "15"
cod_shop_mine_cost "15"
cod_shop_dynamite_cost "15"
cod_shop_firstaidkit_cost "15"
cod_shop_teleport_cost "15"
cod_shop_jump_cost "20"
cod_shop_bunnyhop_cost "25"
cod_shop_silent_cost "15"
cod_shop_armor_cost "20"
cod_shop_damage_cost "25"
cod_shop_invisible_cost "40"
cod_shop_exchange_ratio "1000"
cod_shop_durability_amount "30"
cod_shop_small_bandage_hp "25"
cod_shop_big_bandage_hp "75"
cod_shop_armor_amount "100"
cod_shop_damage_amount "5"
cod_shop_small_exp "25"
cod_shop_medium_exp "75"
cod_shop_big_exp "150"
cod_shop_random_exp_min "1"
cod_shop_random_exp_max "200"
Niestety przy kilku próbach dodawania tematu z listami dostępnych natywów i forwardów dostawałem "504 Gateway Timeout".
Widać ponad 1100 linii to nieco za dużo, a przynajmniej jak na tagi code.
Dokumentacja natywów i forwardów jest zatem dostępna w cod.inc: https://github.com/T.../master/cod.inc
Komentarze do nich są napisane w języku angielskim - zakładam, że osoby biorące się za development pluginów go znają.
Zawsze aktualną wersję można znaleźć na GitHubie: https://github.com/TheDoctor0/CoDMod
Napisane przez tytusek
w 25.10.2018 11:24
Z racji, że się powoli wycofuje z csa 1.6 to upubliczniam pliki csgomoda, nad którym się dość sporo bawiłem
*Skiny dostaje się z skrzyni, która otwieramy kluczem.
*Skrzynie wypadają losowo pod koniec mapy dla x graczy zależnej od ogolnej ilości wszystkich na serverze.
*Klucze wypadają podczas zabijania innych graczy.
*Gdy podnieszesz bron gracza a on miał na niej skina to mozesz korzystac z jego skina az sam wyrzucisz tą bron.
[ Chyba styknie, reszte sami ogarniecie albo sam jak zlapie wene to rozpisze bardziej ]
addons\amxmodx\configs\csgo\skins.cfg - tutaj dodajemy nowe skiny
Przykład:
"22" "M4A4 Howl" "models/csgo/updatenewskin/m4a22.mdl" "2"
"22" - id broni m4a1, pozniej nazwa "M4a4... Howl...", no i pozniej sciezka "models/bleblelbe" na samym koncu ta "2" oznacza szanse na drop skina
i CVARY csgo_host... itd do amxx.cfg dopiszcie najlepiej
ReHLDS
ReAPI ( najlepiej jedno z nowszych )
AMXX > 1.8.2
csgoMod.rar 15,51 MB 606 Ilość pobrań
[ wszystkie pliki trzeba skompilować najlepiej lokalnie, potrzebne biblioteki w razie czego są, nawet opisaną macie dokumentacje ]