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.
|
Guest Message by DevFuse
Nomaf
Rejestracja: 07.04.2011Aktualnie: Nieaktywny
Poza forum Ostatnio: 14.09.2011 19:29





Statystyki
- Grupa: Użytkownik
- Całość postów: 344
- Odwiedzin: 12 168
- Tytuł: Wszechpomocny
- Wiek: Wiek nie został ustalony
- Urodziny: Data urodzin nie została podana
-
Imię
Mateusz
-
Płeć
Mężczyzna
-
Lokalizacja
Polska
157
Profesjonalista
Narzędzia użytkownika
Ostatnio byli
Moje tematy
[JS|AJAX] BBCode jak tu na forum
06.09.2011 22:41
Szukam jakiegoś skryptu na natychmiastowe wyświetlania bbcode, tak jak tu, np. daje obrazek i widzę go w poście.
[COD] Exp na dzieńdobry ;)
29.08.2011 20:07

Plugin daje exp osobie, która dołączy do serwera jako któraś osoba. Można też ustawić, że, np. co 4 osoba zyskuje expa przy połączeniu z serwerem.
Plugin zapamiętuje nick gracza przy rozłączeniu, więc przy ponownym połączeniu się nie dostaje expa.

Cvary wklejamy do pliku codmod.cfg
cod_hello_mode 1 // tryb działania pluginu: 0 - wyłączony, 1 daje exp co x osob, 2 - daje jednej osobie cod_hello_who 4 // co ktora osoba ma dostać exp? cod_hello_info 2 // czy ma być wyświetlane info o zdobyciu expa? 0 - nie, 1 - zwykla wiadomosc na czacie, 2 - kolorowa wiadomosc na czacie cod_hello_exp 5 // ilosc dodawanego expa




nfVault - dodatkowa funkcja - problem
27.08.2011 21:54
Witam, otóż do własnych celów potrzebuję funkcji do tegoż includu. Mianowicie chodzi o znajdowanie klucza w pliku.
Zrobiłem coś takiego:
Jeżeli ktoś nie zna tego, to powiem, że klucz znajduje się w pliku tekstowym i rozpoczyna się od identifier'a w tym przypadku - ;
Zrobiłem coś takiego:
stock nfv_get_key(const filename[], const identifier=';', phrase[], output[], len) { if( !file_exists(filename) ) return 0; new f = fopen(filename, "rt"); new _data[512]; while( !feof(f) ) { fgets(f, _data, charsmax(_data)); if( _data[0] == identifier && equal( phrase, _data ) ) { format( output, len, "%s", _data); break; } } fclose(f) return 0; }
Jeżeli ktoś nie zna tego, to powiem, że klucz znajduje się w pliku tekstowym i rozpoczyna się od identifier'a w tym przypadku - ;
Deathmatch 2.1.4
20.08.2011 20:01

Każdy zna Deathmatcha'a więc opis zbędny. Autorespawn + 2 możliwości - Team Deathmatch lub Deathmatch. Jak zmienić? To będzie w cvarach. Konfiguracja jest bardzo łatwa.
Wymagania:
- Metamod 1.8.7 lub wyżej
- SourceMod 1.3.8 lub wyżej

Podstawowe.

Standardowa.

// Czy CS:S DM ma byc wlaczony? // -- // Domyslnie: "1" cssdm_enabled "1" // Czy tryb FFA (kazdy na kazdego) ma byc wlaczony? // W tym trybie dostaje sie punkty za zabicie swojego. // -- // Domyslnie: "0" cssdm_ffa_enabled "0" // Wybor miejsca odrodzenia. // "none" -- Odrodzenie w normalnym miejscu, tam gdzie zawsze. // "preset" -- Odrodzenie w losowym punkcie z pliku odrodzen mapy. // -- // Domyslnie: "preset" cssdm_spawn_method "preset" // Number of seconds to wait before deleting a ragdoll. // If 0, ragdoll will be deleted instantly. // If >=20, ragdoll will never be deleted. // -- // Default: "2" cssdm_ragdoll_time "2" // Czas w sekundach do odrodzenia gracza. // -- // Domyslnie: "0.75" cssdm_respawn_wait "0.75" // Czy C4 powinno byc dozwolone? Jezeli nie, to // zostanie usuniete pole do podkladania oraz // z graczy przy odrodzeniu. // -- // Domyslnie: "0" cssdm_allow_c4 "0" // Czy plugin z ekwipunkiem ma byc wlaczony? // -- // Wymaga: dm_equipment.smx // Domyslnie: "1" cssdm_enable_equipment "1" // Czy ma byc wlaczona ochrona punktu odrodzenia? // -- // Wymaga: sm_spawn_protection.smx // Domyslnie: "1" cssdm_spawn_protection "1" // Czas ochrony po odrodzeniu w sekundach, jezeli // ochrona jest wlaczona. // -- // Wymaga: sm_spawn_protection.smx // Domyslnie: "2" cssdm_prot_time "2" // Kolor obwodki wokol Anty-Terrorysty, gdy ma ochrone. // Format koloru: "r g b a" (glebia czerwieni, glebia zieleni, glebia blekitu, przezroczystosc) // -- // Wymaga: sm_spawn_protection.smx // Domyslnie: "0 0 255 50" cssdm_prot_ctcolor "0 0 255 128" // Kolor obwodki wokol Terrorysty, gdy ma ochrone. // Format koloru: "r g b a" (glebia czerwieni, glebia zieleni, glebia blekitu, przezroczystosc) // -- // Wymaga: sm_spawn_protection.smx // Domyslnie: "255 0 0 50" cssdm_prot_tcolor "255 0 0 128" // Pozwol graczowi uzywac komendy "respawn" // Notka: komenda nie pozwala na odrodzenie przed czasem: // cssdm_respawn_wait. // -- // Wymaga: dm_basics.smx // Domyslnie: "1" cssdm_respawn_command "1" // Czy plugin ma wymuszac wybor mapy. // Użyteczne tylko dla uzytkownikow Stripper:Source. // -- // Wymaga: dm_basics.smx // Domyslnie: "0" cssdm_force_mapchanges "0" // Wybor pliku z mapami. // Potrzebne tylko jesli jest wlaczony: cssdm_force_mapchanges. // -- // Wymaga: dm_basics.smx // Domyslnie: "mapcycle.txt" cssdm_mapchange_file "mapcycle.txt" // Czy amunicja ma byc automatycznie uzupelniana? // -- // Wymaga: dm_basics.smx // Domyslnie: "1" cssdm_refill_ammo "1" // Ile botow ma byc w grze. Uzyj tego w // w bot_quota, aby zarzadzac botami. // bot_quota - wartosc powinna wynosic "0" // bot_quota_mode - "normal" // bot_auto_vacate - "0" // -- // Wymaga: dm_bot_quotas.smx // Domyslnie: "0" cssdm_bots_balance "0" // Eksperymentalnyy cvar, ktory chorni przed wyrzucaniem przedmiotow. // Rekomendowany dla tych, ktorzy nie chca, aby na ziemi lezalo // duzo broni i zeby nie lagowalo zarowno serwera jak i klienta. // -- // Domyslnie: "1" cssdm_remove_drops "1"

Do konfiguracji w folderze /cfg/ mamy plik: cssdm.equip.txt. Jest tam też: cssdm.weapons.txt, ale jego nie wolno edytować!
Dodatkowo możemy tworzyć spawny tworząc nowy plik tekstowy w folderze /cfg/spawns/ o nazwie mapy, a w treści wypisujemy punkty.
Zawartość pliku cssdm.equip:
"Equipment" { "Settings" { // Pozwol graczowi na wpisanie "guns" aby odblokowac menu. // Jest to zablokowane, gdy menu jest niewyswietlone // "guns_command" "yes" } // // Odblokowywanie i blokowanie menu. // Dla przykladu, dla menu z glownymi i pobocznymi broniami, mozesz uzyc: // "no" - Kompletnie blokuje menu // "yes" - Odblokowuje menu // "random" - Losowa bron z menu dla gracza // "Menus" { // Menu glownych broni "primary" "yes" // Menu pobocznych broni "secondary" "yes" // Normalne menu kupywania z CS:S // Jeżeli jest odblokowane, to menu z ekwipunkiem zostanie zablokowane "buy" "no" } // // Domyslne wartosci na poczatku rundy // "AutoItems" { // Domyslna wartosc zycia (0 - domyslna wartosc z gry lub innego pluginu) "health" "100" // Domyslna wartosc kamizelki "armor" "100" // Czy dawac helm?. Jezeli chcesz calkowicie zablokowac menu, // wpisz tu "no" i dla pancerza "0" "helmet" "yes" // Ilosc granatow oslepiajacych "flashbangs" "0" // Czy dawac granat dymny? "smokegrenade" "no" // Czy dawac granat wybuchowy? "hegrenade" "no" // Czy dawac kombinerki anty-terrorystom? "defusekits" "yes" // Czy dawac noktowizor? "nightvision" "yes" } // // Przedmioty z listy ponizej beda automatycznie dawane botom. // Jezeli istnieja bronie z roznych kategorii (glownej/pobocznej), // to bedzie dawane przedmiot z jednej kategorii. Jezeli jedna bron // bedzie dawana wiele razy, to zwieksza sie szansa, ze bedzie wybrana. // Nie moze byc tu wiecej niz 32 bronie. // "BotItems" { "weapon" "ak47" "weapon" "m4a1" "weapon" "awp" "weapon" "galil" "weapon" "aug" "weapon" "deagle" "health" "100" "armor" "100" "helmet" "yes" "flashbangs" "0" "smokegrenade" "no" "hegrenade" "no" "defusekits" "yes" } // // Jezeli nie bedzie tu ani jednej broni, to menu bedzie pominiete. // Jezeli bedzie tu tylko jedna bron, to menu rowniez bedzie // pominiete, a gracz otrzyma ta bron. // "SecondaryMenu" { "weapon" "usp" "weapon" "glock" "weapon" "deagle" "weapon" "p228" "weapon" "elite" "weapon" "fiveseven" } // // Jezeli nie bedzie tu ani jednej broni, to menu bedzie pominiete. // Jezeli bedzie tu tylko jedna bron, to menu rowniez bedzie // pominiete, a gracz otrzyma ta bron. // "PrimaryMenu" { "weapon" "m4a1" "weapon" "ak47" "weapon" "awp" "weapon" "scout" "weapon" "sg552" "weapon" "galil" "weapon" "famas" "weapon" "sg550" "weapon" "aug" "weapon" "m249" "weapon" "g3sg1" "weapon" "ump45" "weapon" "mp5navy" "weapon" "m3" "weapon" "xm1014" "weapon" "tmp" "weapon" "mac10" "weapon" "p90" } }

Windows:

Linux:

SDKHooks 2.0.0
20.08.2011 12:22
SDKHooks

SDKHooks to biblioteka z bardzo dobrymi funkcjami, umożliwiającymi o wiele lepsze pisanie pluginów. Praktycznie każda większa modyfikacja wymaga SDKHooks to działania, więc warto zawczasu wyposażyć się w te potężne narzędzie skryptera. Jest ono dostępne dla Windows'a i Linux'a oraz Mac'a, ale jego nie będę wrzucał, bo i tak nikt nie zakłada na tym serwerów


Zawartość archiwum wrzucamy do /nazwa_gry/.

Aby skorzystać z biblioteki, należy na początku pluginu dać:
#include <sdkhooks>
Podstawowy hook (możemy go wpisać praktycznie, gdzie chcemy):
SDKHook(entity, SDKHookType:type, SDKHookCB:callback)
1 parametr to byt (id, index, client, ent, entity czy co tam wymyślimy)
2 parametr to typ hook'a. Dostępne są:
Spoiler
SDKHook_EndTouch, SDKHook_FireBulletsPost, SDKHook_OnTakeDamage, SDKHook_OnTakeDamagePost, SDKHook_PreThink, SDKHook_PostThink, SDKHook_SetTransmit, SDKHook_Spawn, SDKHook_StartTouch, SDKHook_Think, SDKHook_Touch, SDKHook_TraceAttack, SDKHook_TraceAttackPost, SDKHook_WeaponCanSwitchTo, SDKHook_WeaponCanUse, SDKHook_WeaponDrop, SDKHook_WeaponEquip, SDKHook_WeaponSwitch, SDKHook_ShouldCollide, SDKHook_PreThinkPost, SDKHook_PostThinkPost, SDKHook_ThinkPost, SDKHook_EndTouchPost, SDKHook_GroundEntChangedPost, SDKHook_SpawnPost, SDKHook_StartTouchPost, SDKHook_TouchPost, SDKHook_VPhysicsUpdate, SDKHook_VPhysicsUpdatePost, SDKHook_WeaponCanSwitchToPost, SDKHook_WeaponCanUsePost, SDKHook_WeaponDropPost, SDKHook_WeaponEquipPost, SDKHook_WeaponSwitchPost, SDKHook_Use, SDKHook_UsePost
3 parametr to natomiast nazwa funkcji, która będzie się wykonywała przy hook'u. Możliwości:
Spoiler
// PreThink/Post // PostThink/Post public(client), // GroundEntChanged // Spawn/Post // Think/Post // VPhysicsUpdate/Post public(entity), // EndTouch // StartTouch // Touch Action:public(entity, other), // EndTouchPost // StartTouchPost // TouchPost public(entity, other), // SetTransmit Action:public(entity, client), // WeaponCanSwitchTo // WeaponCanUse // WeaponDrop // WeaponEquip // WeaponSwitch Action:public(client, weapon), // WeaponCanSwitchToPost // WeaponCanUsePost // WeaponDropPost // WeaponEquipPost // WeaponSwitchPost public(client, weapon), // OnTakeDamage // Note: Force application is dependent on game and damage type(s) Action:public(victim, &attacker, &inflictor, &Float:damage, &damagetype), Action:public(victim, &attacker, &inflictor, &Float:damage, &damagetype, &weapon, Float:damageForce[3], Float:damagePosition[3]), // OnTakeDamagePost public(victim, attacker, inflictor, Float:damage, damagetype), public(victim, attacker, inflictor, Float:damage, damagetype, weapon, const Float:damageForce[3], const Float:damagePosition[3]), // FireBulletsPost public(client, shots, const String:weaponname[]), // TraceAttack Action:public(victim, &attacker, &inflictor, &Float:damage, &damagetype, &ammotype, hitbox, hitgroup), // TraceAttackPost public(victim, attacker, inflictor, Float:damage, damagetype, ammotype, hitbox, hitgroup), // ShouldCollide bool:public(entity, collisiongroup, contentsmask, bool:originalResult), // Use Action:public(entity, activator, caller, UseType:type, Float:value), // UsePost public(entity, activator, caller, UseType:type, Float:value)
Przykładowy kod (zwiększa ilość hp o 1 po zadaniu obrażeń):
public OnClientPutInServer(client)
{
SDKHook(client, SDKHook_OnTakeDamagePost, OnTakeDamagePost);
}
public OnTakeDamagePost(victim, attacker, inflictor, Float:damage, damagetype)
{
SetUserHealth(attacker, GetUserHealth(attacker) + 1)
return Plugin_Changed
}

Windows:

Linux:

Poradnik stworzony przez: Nomaf dla AMXX.pl - Support AMX Mod X
Kopiowanie bez mojej zgody jest zakazane!
- AMXX.pl: Support AMX Mod X i SourceMod
- → Przeglądanie profilu: Tematy: Nomaf
- Regulamin