Musisz sobie zrobić w folderze cstrike 2 pliki: opis_vip.txt oraz opis_svip.txt i wpisać tam opisy vipów.
Trzymaj.
// edit.
Dodałem, że jak się respisz to zapisuje twoje hp jako MAKSYMALNE i do tej wartości można mieć HP.
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.
|
- Na wiadomości typu "siema, mam sprawę" nie odpisuję pisz od razu o co Ci chodzi.
- Jeśli masz zlecenie pisz śmiało
- Nie pomagam na PW za darmo
Napisane przez KoRrNiK w 28.02.2021 00:20
Musisz sobie zrobić w folderze cstrike 2 pliki: opis_vip.txt oraz opis_svip.txt i wpisać tam opisy vipów.
Trzymaj.
// edit.
Dodałem, że jak się respisz to zapisuje twoje hp jako MAKSYMALNE i do tej wartości można mieć HP.
Napisane przez KoRrNiK w 27.02.2021 23:42
Dodajesz na samej górze #include <engine>
Musisz do plugin_init() dodać:
RegisterHam(Ham_TakeDamage, "func_breakable", "fwHamTakeDamageBreakablePost", 1);
oraz gdzieś w pluginie:
public fwHamTakeDamageBreakablePost(iVictim, iInflictor, iAttacker, Float:fDamage) { if (!is_valid_ent(iVictim) || entity_get_float(iVictim, EV_FL_health) > 0.0 || !is_user_connected(iAttacker) || !zp_get_user_zombie(iAttacker)) return; static szTempString[32]; entity_get_string(iVictim, EV_SZ_classname, szTempString, charsmax(szTempString)) if (!equali(szTempString, "lasermine")) return; zp_set_user_ammo_packs(iAttacker, zp_get_user_ammo_packs(iAttacker) + 10) if( is_user_alive(iAttacker) && (level_exp[iAttacker] < (g_level_exp[iAttacker] - 1)) && zp_get_user_zombie(iAttacker)) { level_exp[iAttacker] = level_exp[iAttacker] + 1; Level_Save(iAttacker); } get_user_name(iAttacker, szTempString, charsmax(szTempString)) ChatColor(0, "!g[ZP]!y Gracz !g%s !ydostal !t10 !yAmmo Pakow oraz !t1 !yEXPa za zniszczenie LaserMiny.", szTempString) }
a jeśli nie chcesz dodawać <engine> i działać tylko ma <fakemeta> to masz takie rozwiązanie.
public fwHamTakeDamageBreakablePost(iVictim, iInflictor, iAttacker, Float:fDamage) { if (!pev_valid(iVictim) || pev(iVictim, pev_health) > 0.0 || !is_user_connected(iAttacker) || !zp_get_user_zombie(iAttacker)) return; static szTempString[32]; pev(iVictim, pev_classname, charsmax(szTempString)) if (!equali(szTempString, "lasermine")) return; zp_set_user_ammo_packs(iAttacker, zp_get_user_ammo_packs(iAttacker) + 10) if( is_user_alive(iAttacker) && (level_exp[iAttacker] < (g_level_exp[iAttacker] - 1)) && zp_get_user_zombie(iAttacker)) { level_exp[iAttacker] = level_exp[iAttacker] + 1; Level_Save(iAttacker); } get_user_name(iAttacker, szTempString, charsmax(szTempString)) ChatColor(0, "!g[ZP]!y Gracz !g%s !ydostal !t10 !yAmmo Pakow oraz !t1 !yEXPa za zniszczenie LaserMiny.", szTempString) }
I powinno działać.
Napisane przez KoRrNiK w 27.02.2021 23:29
Sprawdź teraz
31 linijka możesz sobie wpisać ile może maksymalnie dodać HP po zabiciu.
new const maxhealth = 130;
- pełny magazynek poprawiony.
- przywitanie: zapomniałem zmienić aby było dla całego serwera ta wiadomość.
- /svip chyba chodziło Ci o /svips też poprawione, zapomniałem zmienić z id na osoby z pętli
Napisane przez KoRrNiK w 27.02.2021 22:24
Trzymaj Chyba o niczym nie zapomniałem
Napisane przez KoRrNiK w 27.02.2021 16:12
Napisane przez KoRrNiK w 26.02.2021 22:00
Napisane przez KoRrNiK w 26.02.2021 21:17
Sprawdź teraz.
public ShowHUD(id){ id -= TASK_SHOWHUD; if (!is_user_connected(id) || is_user_hltv(id) || is_user_bot(id)) { remove_task(id + TASK_SHOWHUD); return; } static target, color[3]; target = id; if(!is_user_alive(id)){ target = pev(id, pev_iuser2); color[0] = 255; color[1] = 255; color[2] = 255; } else if (!zp_get_user_zombie(target)){ color[0] = 0; color[1] = 255; color[2] = 0; } else if(zp_get_user_zombie(target)){ color[0] = 255; color[1] = 0; color[2] = 0; } if (!target) return; set_hudmessage(color[0], color[1], color[2], 0.44, 0.09, 0, 1.0, 1.1, 0.0, 0.0, -1) show_hudmessage(id,"^n^n[ Level: %d | EXP: %d / %d ]^n^n^n",g_level[id], level_exp[id], g_level_exp[id]) }
Oraz usuń sobie #define ID_SHOWHUD (taskid - TASK_SHOWHUD)
Napisane przez KoRrNiK w 26.02.2021 18:58
public ShowHUD(taskid) { static id, color[3]; id = ID_SHOWHUD; if (!zp_get_user_zombie(id)){ color[0] = 0; color[1] = 255; color[2] = 0; } else if(zp_get_user_zombie(id)){ color[0] = 255; color[1] = 0; color[2] = 0; } else if(get_user_team(id) == 3){ color[0] = 255; color[1] = 255; color[2] = 255; } set_hudmessage(color[0], color[1], color[2], 0.44, 0.09, 0, 1.0, 1.1, 0.0, 0.0, -1) show_hudmessage(ID_SHOWHUD,"^n^n[ Level: %d | EXP: %d / %d ]^n^n^n",g_level[id], level_exp[id], g_level_exp[id]) }
Napisane przez KoRrNiK w 25.02.2021 14:18
Napisane przez KoRrNiK w 22.02.2021 23:42
#include <amxmodx> #include <fakemeta> #include <hamsandwich> #pragma semicolon 1 new const PLUGIN[] = "Limit skokow"; new const VERSION[] = "v1.0"; new const AUTHOR[] = "KoRrNiK"; new userJump[33]; new userLimitJump[33]; new const additionalJump = 1; // Ilość dodatkowych skoków new const limitJump = 3; // Ilość powtórzeń public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_forward(FM_CmdStart, "cmdStart"); RegisterHam(Ham_Spawn, "player", "spawnHam", 1); } public spawnHam(id){ if(!is_user_alive(id)) return; userLimitJump[id] = limitJump; userJump[id] = additionalJump; } public cmdStart(id, uc_handle){ if (!is_user_alive(id)) return FMRES_IGNORED; static Float:velocity[3], button, oldButton, flags; button = get_uc(uc_handle, UC_Buttons); oldButton = pev(id, pev_oldbuttons); flags = pev(id, pev_flags); if ((button & IN_JUMP) && !(flags & FL_ONGROUND) && !(oldButton & IN_JUMP) && userJump[id]) { if(userLimitJump[id] >= 0){ userJump[id]--; pev(id, pev_velocity, velocity); velocity[2] = random_float(265.0, 285.0); set_pev(id, pev_velocity, velocity); } } else { if (flags & FL_ONGROUND){ if(!userJump[id]) userLimitJump[id]--; userJump[id] = additionalJump; } } return FMRES_IGNORED; }Trzymaj
Napisane przez KoRrNiK w 09.02.2021 13:50
Napisane przez KoRrNiK w 09.02.2021 07:28
Napisane przez KoRrNiK w 08.02.2021 09:15
public act_explode(ent){ if (!pev_valid(ent)) return; new origin[3], Float:forigin[3], colors[4], owner = pev(ent, pev_owner), user_team = get_user_team(owner); colors = (user_team == 1) ? { 255, 0, 247, 70} : { 0, 255, 208, 30}; pev(ent, pev_origin, forigin); FVecIVec(forigin, origin); new id, Float:distance = float(get_pcvar_num(radius)), Float:porigin[3]; while (id++ < MaxPlayers){ if(!is_user_alive(id) || user_team == get_user_team(id) || owner == id ) continue; message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, _, id); write_byte(TE_LAVASPLASH); write_coord(origin[0]); write_coord(origin[1]); write_coord(origin[2] - 50); message_end(); message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, _, id); write_byte(TE_BLOODSPRITE); write_coord(origin[0]); write_coord(origin[1]); write_coord(origin[2] + 20); write_short(blood2); write_short(blood1); write_byte(colors[2]); write_byte(30); message_end(); message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, _, id); write_byte(TE_DLIGHT); write_coord(origin[0]); write_coord(origin[1]); write_coord(origin[2]); write_byte(40); write_byte(colors[0]); write_byte(20); write_byte(colors[1]); write_byte(8); write_byte(60); message_end(); pev(id, pev_origin, porigin); if (get_distance_f(forigin, porigin) <= distance){ if (fm_is_visible(ent, id)) ExecuteHam(Ham_TakeDamage, id, ent, owner, (id != owner) ? 30000.0 : 30000.0, 0); } } emit_sound(ent, CHAN_AUTO, "weapons/sg_explode.wav", 1.0, ATTN_NORM, 0, PITCH_NORM); engfunc(EngFunc_RemoveEntity, ent); }
Napisane przez KoRrNiK w 18.01.2021 19:29
Cześć, a też udostępnię swoją paczkę basebuilder ponieważ nie chce mi się już trochę jej rozwijać a komuś może się przydać
Jak Zuzia udostępniła to ja też hehe. Paczka posiada np Grzybki stworzone przez Zuzię tak jak kilka rzeczy Pozdrawiam Cieplutko
Pisząc tą paczkę bardzo dużo przy niej się nauczyłem(chyba) i może być w mniej trochę bałaganu i dziwnych rozwiązań ale działa
Silnik BaseBuilder posiada w sobie:
Prawdopodobnie o czymś zapomniałem ale większość opisałem
Opis klas Budowniczych: - Budowniczy: Posiada szanse na dodatkowe Bryłki podczas strzelania - Lekarz: Posiada więcej HP + większy DMG! Możliwość uleczenia sojuszników - Elektryk: Posiada szanse, ze strzelisz piorunem oraz Posiada Stojak Elektryczny - Naukowiec: Posiada butelkę z trucinza! Oraz szanse na odnowienie - Myśliwy: Posiada pułapkę z kolcami na zombie! Oraz szanse na spowolnienie - Strzelec: Posiada szanse na dodatkowa amunicje! Posiada stacyjkę z amunicja! - Buldożer: Posiada szanse na odepchniecie Zombie! Posiada pierścień odpychający! - Mag Ognia: Posiada kule ognia i może nią strzelić! Posiada szansę na podpalenie Zombie! - Lodowy Mag: Posiada kule lodowa i może nią strzelić! Posiada szansę na zamrożenie Zombie! - Aimer: Posiada 100% na HSA po odpaleniu mocy oraz kilka % na trafienie w głowę strzelając gdzieś indziej! - BomberMan: Posiada Bombe która wybucha! Oraz na pojawienie się pułapki po zabiciu Zombie - Truposz: Może właczyć DMG x2! Wbudowany rykoszet + krytyk - Poszukiwacz: Posiada większa szanse na dropnięcie skrzyni! Oraz rakietę którą można sterować - Górnik: Ma szanse na wypadniecie bryłek podczas strzelania! Oraz szybkostrzelność * Klasy Levelujesz wraz z poziomem są mocniejsze. Opis klas Zombie: - Klasyczny: Klasyczne Zombie | Balans - Szybkie: Bardzo szybkie - Grube: Posiada dużo HP, otrzymuje mniej obrażeń - Tank: Posiada Bardzo dużo HP ale jest powolne - Dracula: Gdy ma zginąć zaczyna się leczyć szansa 25%! - Bałwan: Odporny na granaty zamrażające + wszystkie rodzaje zamrożeń! - Płomyk: Odporny na granaty podpalające + wszystkie rodzaje podpaleń! - Pielęgniarka: Po śmierci ulecza dookoła siebie zombie 250HP z szansa 15% - Truciciel: Zatruwa CT na 5sek 2dmg/s - Nie zabija zostaje min-hp | Leczy go Fiolka - Śmierć: Posiada 5% na zabicie Budowniczego 1/1 - Terminator: Posiada szybsze ręce zadaje po 10dmg - Demon: Dostaje 15% mniej obrażenia *Każda klasa jest od jakiegoś poziomu oraz przegranych godzin na serwerze **Klasy Zombie ulepsza się poprzez Kości Opis Klanu: - Awansowanie klanu: Potrzebne bryłki, luzaczki, oraz zabójstwa klanowe ( Po ulepszeniu trzeba odczekać X minut aby ulepszyć ponownie ) - Ulepszenia klanu: Exp, Bryłki, HP, Krytyki, Obrażenia, Obrażenia klasy, CoolDown aby to ulepszyć potrzeba punktów klanu które dostaje się za awansowanie klanu ) - Możliwość dania klanowej informacji: pod /klan w pierwszej linijce jest ogłoszenie napisane przez lidera klanu - Każdy klan może umieścić własne zdjęcie klanowe za pomocą zdjęcia umieszczonego na ( imgur podając nazwę danego zdjęcia wszystko jest opisane na zdjęciu umieszczonym w plikach ) - Opcja resetu klanu: jeśli źle rozdałeś punkty możesz je zresetować za daną liczę bryłek - Możliwość sprawdzenia ile ktoś wpłacił bryłek * Ulepszasz poprzez Bryłki Opis ulepszeń w kopalni: - Kilof: Umożliwia wykopanie większej ilości Minerałów ( Bonus ) - Wyczerpanie: Gobliny mogą dłużej kopać w kopalni - Szczęście: Szansa na poczwórne wykopki ( Wykopane bryłki x4 z Minerałów) - Gobliny: Im więcej posiadasz goblinów tym szybciej kopiesz Minerały! - Końcówka Kilofa: Zwiększa Moc kopania - Szukanie: Pozwala Ci znajdywać więcej rodzajów Minerałów - Wózek: Posiadasz większy wózek ( Większy magazyn Minerałów ) * Ulepszasz poprzez Bryłki Działanie kopalni: Codziennie możesz opłacić swoje gobliny aby kopały minerały które możesz sprzedać. Gobiliny nie będa ciągle kopać one też mają swoje życie i muszą czasem odpocząć dlatego jest system wyczerpania codziennie o 24 goblinom resetuje się wyczerpanie i mogą znów wrócić do pracy :D
- KOMENDY DLA FLAGI "a" /clone - menu do zablokowania klocków / ustawienia obracania ( Sposób ustawiania klocków oraz obracania jest opisany w temacie Zuzi ( CoinBB ) /runhappy - możliwość zmiany happyhour albo odpalenie jego /hp nick ilosc - dodaje danemu graczowi hp /tp nick - teleportujesz się do gracza /tome nick - teleportujesz gracza do siebie (zamiast nicku wpiszujesz to: #tt, #ct, #all - teleportujesz do siebie: zombie, budowniczych, albo wszystkich ) /swiatlo - możesz zmienić odcień jasności światła na mapie /sms -> 6. znajduje się menu dodawania wszystkich walut, leveli itp ) - KOMENDY DLA FLAGI "d" /admin - menu Admina /warn - możliwość dodawania ostrzeżeń graczowi /revive nick - ożywia gracza /release - rozpoczyna rundę przed czasem /swap nick - przenosi gracza do przeciwnej drużyny /mute nick ilosc - mutuje gracza na x minut ( po wpisaniu tylko /mute nick gracz zostaje odmutowany bb_barrier - komenda do konsoli ( Otwiera menu do tworzenia barrier )
/konto - główne menu konta /sklep - sklep dla zombie lub dla budowniczych /czas - pokazuje twój aktualny przegrany czas na serwerze /team - menu drużyny /bron - menu broni /happy - możliwość sprawdzenia czy jest aktualnie happyhour /menu - główne menu serwera /drop - pokazuje szanse na drop skrzyni /klasa - odpala menu klas dla budowniczych albo zombie /pomoc - możliwość wezwania admina do siebie /misje - główne menu misji /respawn - no po prostu respawn /vip - opis vipa /vips - aktualni gracze którzy posiadają vipa /rank - twój aktualny rank /top - menu topek /odblokuj - odblokowujesz się gdy jesteś zablokowany /info nick - informacje o danym graczu /maxdmg - pokazuje twój największy dmg /resetdmg - resetuje twój największy dmg /nagroda - komenda do odebrania nagrody /regulamin - menu regulaminów serwera /bind - najpotrzebniejsze bindy /admins - pokazuje adminów którzy są na serwerze /klan - menu klanu /free - odbieranie darmowej jednej nagrody dziennie /hide - możliwość wyłączenia widzenia osób z swojego teamu /exp - pokazuje aktualny twój stan expa /daj - wysyłanie waluty serwerowej ( Menu z graczami ) lub /daj nick ilość /wycisz - umożliwia do wyciszenia dowolnego gracza na serwerze /kostium - komenda do sprawdzenia swoich kostiumów /kolor - tylko dla VIPA ( możliwość malowania klocków ) bind "klawisz" "moc" - odpala twoją moc klasy budowniczego say_team - znajduje się czat klanowy. *Prawie każda komenda ma jakieś skróty pisowni ( np: /menu możesz wpisać /me, /odblokuj -> /o | itd..itd..itd
Skrzynka z amunicją - Posiada ją klasa strzelec ( odnawia amunicję )
Bomba - Posiada ją klasa bomberman ( Odbija się kilka razy i wybucha lub jak w kogoś uderzy )
Pułapka Wybuchowa - Posiada ją klasa bomberman ( Po wejściu na nią wybucha ona )
Fiolka - Posiada ją klasa Naukowiec ( Po zderzeniu rozbija się i zadaje x dmg )
Skrzynka - Po otworzeniu otrzymujesz losową ilość bryłek ( Waluty serwerowej )
Bryłka - Każdy kolor posiada inną wartośc
Stojak Elektryczny - Razi prądem dookoła siebie w zombie
FireBall - Posiada ją Mag Ognia ( Po uderzeniu wybucha oraz podpala
IceBall - Posiada ją Mag Lodu ( Po uderzeniu wybucha oraz zamraża )
To są przykładowe modele które znajdują się w paczce.
Pierwsza linijka w basebuilder.sma odpowiada za ilość slotów na serwerze + 1. Jeśli posiadasz 20 slotów wpisz 21
#define maxPlayers 21
Paczka posiada sklepsms dla ( CSSETTI ) aby zmienić id użytkownika wystarczy zmienić w pliku vars.inl linijkę 6
new const APISMS[] = "16103";
Oraz trzeba jeszcze zmienić linijkę 8 - 11 czyli dane do bazy danych w pliku vars.inl + ip serwera w pliku sqlFile.inl linijka 32
// linia ↓ 8 - 11 new const DB_HOST[] = "127.0.0.1"; new const DB_USER[] = "user"; new const DB_PASS[] = "pass"; new const DB_NAME[] = "db"; // linia ↓ 32 if(equal(szIp, "91.224.117.226:27015")){
Jeśli będziesz chciał ją odpalić na innym ip np na localhoscie wystarczy zmienić linijkę 37 w pliku sqlFIle.inl
sql = SQL_MakeDbTuple("127.0.0.1", "user", "pass", "db");
Tabelka z graczami nigdy się nie chciała tworzyć sama więc będziesz musiał ją ręcznie stworzyć:
CREATE TABLE IF NOT EXISTS `players`( `idplayer` INT NOT NULL AUTO_INCREMENT, `name` varchar(33) NOT NULL, `pass` varchar(12) NOT NULL DEFAULT '_', `kills` INT NOT NULL DEFAULT 0, `deaths` INT NOT NULL DEFAULT 0, `points` INT NOT NULL DEFAULT 0, `timePlay` INT NOT NULL DEFAULT 0, `firstlogin` DATETIME DEFAULT NOW(), `lastlogin` DATETIME DEFAULT NOW(), `maxDamage` INT NOT NULL DEFAULT 0, `clan` INT NOT NULL DEFAULT 0, `flag` INT NOT NULL DEFAULT 0, `clannugget` INT NOT NULL DEFAULT 0, `ipLogin` varchar(32) NOT NULL DEFAULT '_', `sidLogin` varchar(35) NOT NULL DEFAULT '_', `nuggets` INT NOT NULL DEFAULT 45, `bones` INT NOT NULL DEFAULT 10, `level` INT NOT NULL DEFAULT 1, `xp` FLOAT NOT NULL DEFAULT '0.00', `reset` INT NOT NULL DEFAULT 0, PRIMARY KEY (`idplayer`))
Reszta tabel stworzy się sama po zmienieniu mapy.
Aby paczka działała musisz przekompilować i wgrać te pluginy: - basebuilder.amxx - frostNadeTURBO.amxx - napalmNadeTURBO.amxx - granadePushTURBO.amxx - blockBarrierTURBO.amxx
Paczka nie posiada żadnych cvarów wszystko musisz zmienić ręcznie sam w .sma oraz .inl
Zamieszczam wszystko do jednego pliku.
- Silnik BB - Granaty ( Zamrażający, podpalający oraz odpychający ) - Barriere ( Taka sama co u Zuzi lecz posiada kilka zmian oraz szybciej się tworzy w niej barriery ) - Model / sprites / sound - Pliki .txt ( MOTD ) - Pliki .psd aby przerobić sobie grafiki ( format pliku do photoshopa ) - Opis gdzie wrzucić folder z logami
Jeśli czegoś będzie brakowało to piszcie pod postem
Na szybko przeliczyłem ile paczka ma lini kodu i wyszło ~23k dla kogoś może to być dużo a dla innego mało (takie małe info )
Może wreszcie powstaną jakieś inne ciekawe serwery bb po udostępnieniu paczek Zuzi i tej
Napisane przez KoRrNiK w 14.12.2020 22:31