-
Postów
49 226 -
Wpisów na chatbox
1 -
Dołączył
-
Ostatnia wizyta
nigdy -
Wygrane
36 -
Darowizny
0.00 PLN
Treść opublikowana przez GET
-
WALKA O "PIĘTNASTKĘ" Mapa z zaznaczonym przebiegiem S15 powstała w Urzędzie Marszałkowskim w 2008 roku, ale w ślad za nią nic nie poszło. fot. MP Prezydent miasta apeluje do mieszkańców o wsparcie dla budowy ekspresowej lub dwujezdniowej drogi z Gniezna przez Inowrocław do Torunia. Sugeruje, że jeśli ona nie powstanie, to obwodnica raczej też nie. Temat modernizacji drogi krajowej nr 15 wywołał w naszym województwie lawinę komentarzy. Bydgoszcz obawia się o losy S5, która ma z tego miasta wyprowadzić część ruchu tranzytowego, a prezydent Ryszard Brejza podkreśla, że Inowrocław musi walczyć o swoje. - Jeśli ktoś traktuje to jako alternatywę, to jest mi przykro. My jesteśmy gotowi do rozmów, ale nie ma z kim rozmawiać - twierdzi prezydent Inowrocławia. Według prezydenta Brejzy, Inowrocław w dotychczasowych planach ma prawo czuć się pominięty, bo droga S5 nie rozwiązuje drogowych problemów naszego miasta. - Jeżeli nie będziemy mieli dostępu drogą dwujezdniową do autostrad i dróg ekspresowych to nasz region może być wykluczony z rozwoju gospodarczego. Jestem też bardzo sceptyczny co do powstania obwodnicy Inowrocławia, jeżeli nie będzie ona przebiegać w ciągu istotnych dróg krajowych - dodaje włodarz. Przekonuje, że potrzebne jest wsparcie społeczeństwa całego regionu Kujaw Zachodnich. Osoby, które chcą wesprzeć inicjatywę mogą wyrazić swoje opinie i stanowiska przesyłając je do ministra transportu ([email protected]), marszałka województwa ([email protected]) oraz do parlamentarzystów.
-
Usuń cały folder biohazard/fragujemy
-
Jak mam naprawić coś co działa :) Jest pętla utworzona precache, a w niej "precache_sound(...)".
-
I tak właśnie ma odrzucać, bo powrócił "stary" odrzut tej broni, a każdy krytykował i pytał się czemu nie ma takiego odrzutu - teraz wrócił i jest lepszy ;)
-
W to nie uwierzę, bo ja mam jak i inni + wszystko jest odpowiednio wpisane i umieszczone. Sprawdziłem dokładnie. Wpis w plugin_precache zarówno dźwięku szalonego jak i bomby jest. Dźwięk szalonego zombie jest póki co taki sam jak poprzedni. Sprawdź u siebie czy na pewno masz ściągnięte sound/biohazard/fragujemy/szalone_zombie.wav oraz bomba.wav.
-
A jednak... Lista ofert tego nvm: www.nokiac6.eu (database) www.mybboard.pl (root, database) www.cs-puchatek.pl (root, database) www.reksio-cs.pl (database) www.forum.a3-club.net (database) www.hack.pl (database) www.psi247.com.pl (database) www.sdcv.pl (database) www.esotericboard.com (database) www.elektrotech.info (database) www.cba.pl/forum (database) www.ezoforum.pl (root, database) www.gamepad.pl (database) www.wizaz.pl (database) www.warezisko.net (database) www.muzikum.pl (database) www.metin2.pl (database) www.maxior.pl (database) www.hack.edu.pl (database) www.forumwpia.org (root, database) www.nedds.pl (database) www.swiatrapu.pl (database, logger) www.dobryskil.pl (database, logger) www.pukawka.pl (database) Najlepsze jest to, że wchodząc na gamepad pisze: Dump DB Dump DB and new files Abu Nazir is back!!! Thanks: eF0, trexomonko Fuck you TRO SA :D http://pastebin.com/u/Abu_Nazir http://abunazir.wordpress.com xD - dodatkowo admini proszę czytać dział ukryty odnośnie hakerstwa na serwerze.
-
A tam, takie tam gadanie. Dodałem w załączniku ;) Jakby co to aktualizuj, a nie usuwaj i dodawaj na nowo.
-
Co o tym sądzicie? http://niebezpiecznik.pl/post/wyciek-bazy-cs-puchatek-pl-550-000-uzytkownikow/ - cóż, czyżby to była oznaka potężnego hakerstwa czy słabego zabezpieczenia tego portalu, a może to przez vB 4.xx i luki w nim zawarte? Z tego co wiem, baza była w posiadaniu już wcześniej, ale nie opublikowano tego. Czy Pukawka, Facebook i inne portale powinny się bać? Również z tego co mi wiadomo wykradł dane klientów Neostrada TP oraz 90% rekordów Netii. Hmm, ciężka sprawa z nvm.
-
Najważniejsze eventy, autor: Miczu amxx.pl Start mapy plugin_init() { //code } Powyzsza funkcja jest tylko wywolywana po zmianie mapy (na samym jej poczatku). Koniec mapy plugin_end ( ) { //code } Powyzsza funkcja jest wywolywana przy zmianie mapy lub prawidlowym zamknieciu serwera. Prawdopodobnie nie wychwyci crasha. Nowa Runda #include #include public plugin_init() { register_event("HLTV", "Nowa_Runda", "a", "1=0", "2=0") } public Nowa_Runda() { //code } Nowa runda tym sposobem omija pierwsza runde - pierwsza po zmianie mapy. #mozliwe problemy gdy w tym evencie np: operacje na graczu typu danie broni(potwierdzone)... Początek Rundy Poczatek rudny to jak sie freeze skonczy - mozna sie ruszac ;-) #include #include public plugin_init() { register_logevent("Poczatek_Rundy", 2, "1=Round_Start") } public Poczatek_Rundy() { //code } Koniec Rundy Przeciwnik zabity/Bomba wybuchla/Bomba zostala rozbrojona/zakladnicy uwolnieni/minol czas rudny #include #include public plugin_init() { register_logevent("Koniec_Rundy", 2, "1=Round_End") } public Koniec_Rundy() { //code } Damage - obrazenia #include #include public plugin_init() { register_event("Damage", "Damage", "b", "2!=0") } public Damage(id) { new vid = read_data(0) // vid == id new damage = read_data(2) new Origins[3] // Wspolrzedne gracza, granatu, obiektu wywolujacego obrazenia Origins[0] = read_data(4) Origins[1] = read_data(5) Origins[2] = read_data(6) new kid = get_user_attacker(id) // Gracz atakujacy //code } DeathMsg - ktoś umarł #include #include public plugin_init() { register_event("DeathMsg", "DeathMsg", "a") } public DeathMsg() { new kid = read_data(1) //zabojca new vid = read_data(2) // ofiara new hs = read_data(3) // HeadShot (1 == true) new weapon[64] read_data(4,weapon,63) //krotka nazwa broni (bez weapon_ / CSW_ ) //code } kid i vid są sobie rowne gdy zabije cie własna bron (granat) lub np. admin uzyje slay'a... kid == 0 gdy np. spadniesz z wysokiej wysokosci... CurWeapon - obecna bron Wykrywa zmiane broni - takze gdy sie sawnujesz dostajesz nowa bron i funkcja tez jest wywołana. Od siebie dodam, że jest to dobre przy nadawaniu graczowi set_user_maxspeed, bo jak wiadomo po zmianie broni gracz zmienia szybkość. #include #include public plugin_init() { register_event("CurWeapon","CurWeapon","be", "1=1") } public CurWeapon(id) { new wid = read_data(2) // Id broni new ammo = read_data(3) // liczba naboi w magazynku //code } Noz, granaty itp. maja ammo = -1 Info-bronie Z testow wynika, ze w/w event jest tez wywolywany po wystrzeleniu naboju (ammo sie zmienia) lub po przeładowaniu. Podniesienie broni Podniesie broni a takze kupienie. Na starcie rundy sie uruchomi gdy dostajemy noz i pistolet (2 razy). Jest wywolywany takze gdy kupimy cos, ale nie bedziemy mieli tego w rekach (np. granat). #include #include public plugin_init() { register_event("WeapPickup", "WeapPickup", "b") } public WeapPickup(id) { new wid = read_data(1) // id broni //code } Nie liczy podniesienia Shilda oraz kupienia defa, noktowizora czy kamizelki Podniesienie amunicji Jak kupujemy amunicje to clip daje nam wartosc ile nam przybylo. Jesli podniesiemy M4A1 co ma 24 w broni i 90 w zapasie to clip bedzie mial wartosc 90, a nie 114. Jak drop'niemy i podniesiemy wlasna bron to event nie zostanie wywolany. #include #include public plugin_init() { register_event("AmmoPickup", "AmmoPickup", "b") } public AmmoPickup(id) { new aid = read_data(1) //id amunicji new clip = read_data(2) //ilosc naboi //code } Amunicja Aktualny stan amunicji w 'zapasie'. Jak kupujemy ammo to clip ma laczna wartosc naboi w magazynku. Jak podniesiemy po kims bron np. AK 25 i 90 w zapasie to clip wynosi 90. Na poczatku rundy wszystkie typy naboi za wyjatkiem tych do ktorych mamy bron sa zerowane. Jak kupujemy granaty to clip ma wartosc rowna ilosci danego typu np. flash max 2... #include #include public plugin_init() { register_event("AmmoX", "AmmoX", "b") } public AmmoX(id) { new aid = read_data(1) new clip = read_data(2) client_print(id,print_chat,"id %d aid %d clip %d",id,aid,clip) //code } Wejście na server Juz widzisz mape ;-) public client_putinserver(id){ //code } Polaczenie z serwerem Czyli gdy np. w konsoli napiszesz connect IP:PORT public client_connect(id) { //code } Rozlaczenie sie z serwerem public client_disconnect(id) { //code } Health - Zycie #include #include public plugin_init() { register_event("Health", "Health", "be") } public Health(id) { new health = read_data(1) //code } Money - zmiana w kasie #include #include public plugin_init() { register_event("Money", "Money", "be") } public Money(id) { new Money = read_data(1) //code } TeamInfo - informacjie o Teamie Ogolny wyglad eventu: #include #include public plugin_init() { register_event("TeamInfo","team_assign","a") } public team_assign() { new id = read_data(1) new Team[32] read_data(2,Team,31) //UNASSIGNED //TERRORIST //CT //SPECTATOR } Ale trzeba sie tu pilnowac! Z moich badan wynika ze event jest wywolywany za kazdym spawnem i dodatkowo przy wyborze z menu teamu. Jesli chcemy wykrywac autentyczna zmiane druzyny musimy zastosowac taki zabieg (chyba najoptymalniej i do tego czysto): #include #include public plugin_init() { register_event("TeamInfo","team_assign","a") } public team_assign() { static old_team[33] new tid new id = read_data(1) new Team[32] read_data(2,Team,31) //UNASSIGNED //TERRORIST //CT //SPECTATOR if(equal(Team,"UNASSIGNED")) tid = 0 else if(equal(Team,"TERRORIST")) tid = 1 else if(equal(Team,"CT")) tid = 2 else if(equal(Team,"SPECTATOR")) tid = 3 if(old_team[id]==tid) return PLUGIN_CONTINUE //jesli druzyna sie nie zmienila to przerywamy event old_team[id] = tid //zapisujemy nowy team /*code //koniec code */ return PLUGIN_CONTINUE // skoro juz uzylismy returna to musimy tez na koniec go dac } ================================================= Eventy wywolane przez: register_logevent nie maja parametru id - a mowiac inaczej jak dodamy parametr id, to bedzie mial wartosc 0 należy utworzyć pętle for(new i=0 / 1...) ================================================= Flagi do eventow: "a" - Global Event - wysylany do all graczy (mozliwy jest brak mozliwosci podpiecia id do eventu np. DeathMsg) "b" - Event sent to a single target - do konkretnego gracza (zwiazany z pojedynczym graczem - demage) "c" - Send only once when repeated to other players - tylko raz gdy jest powtarzany u innych graczy. "d" - Only if sent to a dead player - tylko u martwych graczy "e" - Only if sent to an alive player - tylko u zywych graczy ( przed wersja 1.80 jest bug, wiec i tak wypada sprawdzac is_user_alive(id) )
-
Wpływanie na obrażenia używając modułu hamsandwich Aby mieć możliwość edycji obrażeń należy złapać zdarzenie Ham_TakeDamage z post=0 #include #include #include #define PLUGIN "HamSandwich Damage" #define VERSION "1.0" #define AUTHOR "R3X" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) RegisterHam(Ham_TakeDamage, "player","fwTakeDamage",0); } event łapiemy w funkcji (ja nazwałem ją "fwTakeDamage"), której parametry są następujące public fwTakeDamage(this, idinflictor, idattacker, Float:damage, damagebits){ return HAM_IGNORED; } this - atakowany gracz idinflictor - byt zadający obrażenia idattacker - byt powodujący obrażenia damage - wielkość obrażeń damagebits - typ obrażeń jeśli idattacker to gracz zazwyczaj idinflictor to również id atakującego, wyjątek stanowi granat: w tym przypadku idinflictor to indeks bytu granatu w przeciwnym razie (!is_user_connected(idattacker)), idinflictor może być bytem typu trigger_hurt lub po prostu 0 damagebits przekazuje informacje o obrażeniach na podstawie składowych flag: #define DMG_GENERIC 0 // Generic damage was done #define DMG_CRUSH (1<<0) // Crushed by falling or moving object #define DMG_BULLET (1<<1) // Shot #define DMG_SLASH (1<<2) // Cut, clawed, stabbed #define DMG_BURN (1<<3) // Heat burned #define DMG_FREEZE (1<<4) // Frozen #define DMG_FALL (1<<5) // Fell too far #define DMG_BLAST (1<<6) // Explosive blast damage #define DMG_CLUB (1<<7) // Crowbar, punch, headbutt #define DMG_SHOCK (1<<8) // Electric shock #define DMG_SONIC (1<<9) // Sound pulse shockwave #define DMG_ENERGYBEAM (1<<10) // Laser or other high energy beam #define DMG_NEVERGIB (1<<12) // With this bit OR'd in, no damage type will be able to gib victims upon death #define DMG_ALWAYSGIB (1<<13) // With this bit OR'd in, any damage type can be made to gib victims upon death. #define DMG_DROWN (1<<14) // Drowning #define DMG_PARALYZE (1<<15) // Slows affected creature down #define DMG_NERVEGAS (1<<16) // Nerve toxins, very bad #define DMG_POISON (1<<17) // Blood poisioning #define DMG_RADIATION (1<<18) // Radiation exposure #define DMG_DROWNRECOVER (1<<19) // Drowning recovery #define DMG_ACID (1<<20) // Toxic chemicals or acid burns #define DMG_SLOWBURN (1<<21) // In an oven #define DMG_SLOWFREEZE (1<<22) // In a subzero freezer #define DMG_MORTAR (1<<23) // Hit by air raid (done to distinguish grenade from mortar) #define DMG_TIMEBASED (~(0x3fff)) // Mask for time-based damage przykład: if(damagebits&DMG_BLAST){ //gracz prawdopodobnie zginął od wybuchu bomby } Zarejestrowanie Ham_TakeDamage z post = 0 daje możliwość ingerencji w przebieg tego wydarzenia. Możemy po prostu anulować obrażenia przez zwrócenie HAM_SUPERCEDE lub HAM_OVERRIDE public fwTakeDamage(this, idinflictor, idattacker, Float:damage, damagebits){ return HAM_SUPERCEDE; } albo zmienić dowolny parametr funkcji przy użyciu funkcji SetHamParam*, gdzie * to typ argumentu. SetHamParamInteger - dla liczby całkowitej SetHamParamFloat - dla liczby rzeczywistej SetHamParamVector - dla wektora (Float:v[3]) SetHamParamEntity - dla bytu (np. id gracza) SetHamParamString - tekst Po operacjach zwracamy HAM_HANDLED, aby zatwierdzić zmiany. Przykład: public fwTakeDamage(this, idinflictor, idattacker, Float:damage, damagebits){ SetHamParamFloat(4, 100.0); return HAM_HANDLED; } Zmieniamy czwarty argument (damage) typu Float: na 100.0, co spowoduje, że praktycznie każde uderzenie czy upadek skończy się śmiercią. W połączeniu z warunkami daje to nam całkowitą kontrolę nad obrażeniami. Uwaga: Broń z jakiej zadane zostały obrażenia (przy podłączony idattacker) to: - w przypadku idinflictor==idattacker new bron = get_user_weapon(idattacker); - w przypadku idinflictor!=idattacker new bron = CSW_HEGRENADE; Autor: "ertrzyiks" amxx.pl Uwagi: to, że daję tutoriale, które ktoś zrobił nie oznacza, że tego nie potrafię lub z tego korzystam ;)
-
Flagi Podstawowe: ADMIN_ALL - wszystkie ADMIN_IMMUNITY - flaga "a" ADMIN_RESERVATION - flaga "b" ADMIN_KICK - flaga "c" ADMIN_BAN - flaga "d" ADMIN_SLAY - flaga "e" ADMIN_MAP - flaga "f" ADMIN_CVAR - flaga "g" ADMIN_CFG - flaga "h" ADMIN_CHAT - flaga "i" * ADMIN_VOTE - flaga "j" ADMIN_PASSWORD - flaga "k" ADMIN_RCON - flaga "l" ADMIN_LEVEL_A - flaga "m" ADMIN_LEVEL_B - flaga "n" ADMIN_LEVEL_C - flaga "o" ADMIN_LEVEL_D - flaga "p" ADMIN_LEVEL_E - flaga "q" ADMIN_LEVEL_F - flaga "r" ADMIN_LEVEL_G - flaga "s" ADMIN_LEVEL_H - flaga "t" ADMIN_MENU - flaga "u" ADMIN_ADMIN - flaga "y" ADMIN_USER - flaga "z" Flagi dodatkowe: ADMIN_FLAG_V - flaga "v" ADMIN_FLAG_W - flaga "w" ADMIN_FLAG_X - flaga "x" żeby ich użyć trzeba dodać w pluginie: #define ADMIN_FLAG_V (1#define ADMIN_FLAG_W (1#define ADMIN_FLAG_X (1 sprawdzanie czy gracz ma flagę: if(get_user_flags(id) & ADMIN_LEVEL_A) //gracz ma flage a else // jeśli nie ma flagi a sprawdzanie czy gracz nie ma flagę: if( !(get_user_flags(id) & ADMIN_LEVEL_A) ){ //gracz nie ma flagi a } sprawdzanie czy gracz ma kilka flag: public has_flags(id,string[]) { new ret=1 new byte new len = strlen(string) new p_flag = get_user_flags(id) for(new i=0;i { if(string[i]>='a' && string[i] else if(string[i]>='A' && string[i] else if(string[i]==',' && ret==1) return 1 else if(string[i]==',') ret=1 if(byte!=0 && !(p_flag & byte)) ret=0 byte=0 } return ret } Przykłady Jak ma działac na - a lub b lub c - to dajemy has_flag(id,"a,b,c") Jak ma dzialac tylko gdy user ma flage - a i b i c - to dajemy has_flag(id,"abc") Jak ma dzialac w przypadkach - a i b lub a i c lub b i c - to dajemy has_flag(id,"ab,ac,bc") Sprawdzanie czy gracz ma wszystkie 3 flagi new flaga = (ADMIN_LEVEL_A | ADMIN_LEVEL_B | ADMIN_LEVEL_C) if((get_user_flags(id) & flaga) == flaga) { // KOD } bądź new sprawdz = get_user_flags(id) if(sprawdz & ADMIN_LEVEL_A && sprawdz & ADMIN_LEVEL_B && sprawdz & ADMIN_LEVEL_C) { // KOD } Warte uwagi: public client_authorized(id) { if( get_user_flags(id) & ADMIN_BAN) client_print(0,print_chat,"Admin wchodzi na server") } Autor: DarkGL - amxx.pl
-
Prefix przed nickiem Należy w register_plugin: register_message(get_user_msgid("SayText"),"handleSayText"); następnie w dowolnym miejscu w pluginie: public handleSayText(msgId,msgDest,msgEnt){ new id = get_msg_arg_int(1); if(!is_user_connected(id)) return PLUGIN_CONTINUE; new szTmp[256],szTmp2[256]; get_msg_arg_string(2,szTmp, charsmax( szTmp ) ) new szPrefix[64] = "[Nasz Prefix]"; // - ustaw prefix 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; } Coś takiego używamy na swoim ZM ;-)
-
Pasek ładowania Po prostu ta funkcja umieszcza tam pasek ładowania, taki jak kiedyś na naszym "CSDM" 4FUN. stock set_bartime(id, czas, startprogress=0) { message_begin((id)?MSG_ONE:MSG_ALL, get_user_msgid("BarTime2"), _, id) write_short(czas); write_short(startprogress); message_end(); } Użycie: set_bartime(id, czas, startprogress) Parametry: id - index gracza na którym funkcja ma być wykonana; czas - okres czasu w jakim ma się ten pasek wypełnić; startprogress - kiedy pasek zaczyna się pokazywać, jaka jego część ma być wypełniona(wartość w procentach(%)) od 0-100 (0 zaczyna od pustego);
-
Polskie końcówki wyrazów w zależności od wartości Na pewno nieraz widzieliście napisy typu: Koszt przesyłki wynosi 24 złotych Na Twoim koncie jest 1 punktów Sesja wygaśnie za 4 minut Nie potrafiliście sobie z tym poradzić, lub po prostu problem Was przerastał. Mam dla Was wspaniałą nowinę: Od dziś będziecie spać spokojnie! Albowiem przedstawiam rozwiązanie. Stock wybiera odpowiednią końcówkę na podstawie podanej wartości. Mamy do czynienia z dwoma stockami: dkoncowka() dla liczb całkowitych (integer, decimal) fkoncowka() dla dla liczb zmiennoprzecinkowych (float) Zastosowanie dkoncowka(ile, czlon[], zero[], jeden[], dwa[]); fkoncowka(Float:ile, czlon[], zero[], pol[], jeden[], dwa[]); Opis ile [liczba całkowita dla dkoncowka(), zmiennoprzecinkowa dla fkoncowka()] → wartość, na podstawie której wybierana będzie końcówka czlon [ciąg znaków] → wbrew nazwie humanistycznej, początek wyrazu wyświetlanego, identyczny dla wszystkich kolejnych argumentów zero [ciąg znaków] → końcówka, którą przyjmuje wyraz dla wartości ile równej 0, która dołączona do członu da pełny, odmieniony wyraz pol [ciąg znaków] → końcówka, którą przyjmuje wyraz dla wartości ile równej 0.5, która dołączona do członu da pełny, odmieniony wyraz jeden [ciąg znaków] → końcówka, którą przyjmuje wyraz dla wartości ile równej 1, która dołączona do członu da pełny, odmieniony wyraz dwa [ciąg znaków] → końcówka, którą przyjmuje wyraz dla wartości ile równej 2, która dołączona do członu da pełny, odmieniony wyraz Uwaga Zmienna czlon służy zaoszczędzeniu czasu w używaniu funkcji, pozostawienie jej pustej i podanie pełnych odmian słów pozostałych zmiennych w zupełności spełni swoje zadanie, choć zazwyczaj zwyczajnie przysporzy nam niepotrzebnego pisania kilkakrotnie początku tego samego wyrazu. Przykład if(is_user_alive(id)){ new hp=get_user_health(id); client_print(id,print_chat,"Masz %d %s zycia", hp, dkoncowka(hp, "punkt", "ow", "", "y")); } if(is_user_connected(id)){ new frags=get_user_frags(id); if(frags) client_print(id,print_chat,"Zdobyles %d %s", frags, dkoncowka(frags, "frag", "ow", "a", "i")); else client_print(id,print_chat,"Nie zdobyles jeszcze zadnego fraga"); } Stock do skopiowania stock dkoncowka(ile, czlon[], zero[], jeden[], dwa[]){ new str[1024]; ile=abs(ile); if(ile==1){ format(str,1023,"%s%s",czlon,jeden); return str; } if((ile%10==2 || ile%10==3 || ile%10==4) && (!(ile%100==12 || ile%100==13 || ile%100==14))){ format(str,1023,"%s%s",czlon,dwa); return str; } format(str,1023,"%s%s",czlon,zero); return str; } stock fkoncowka(Float:ile, czlon[], zero[], pol[], jeden[], dwa[]){ new str[1024]; ile=floatabs(ile); if(ile==1.0){ format(str,1023,"%s%s",czlon,jeden); return str; } if(ile!=floatround(ile)){ format(str,1023,"%s%s",czlon,pol); return str; } new num=floatround(ile); if((num%10==2 || num%10==3 || num%10==4) && (!(num%100==12 || num%100==13 || num%100==14))){ format(str,1023,"%s%s",czlon,dwa); return str; } format(str,1023,"%s%s",czlon,zero); return str; } Implementacja (koncowka.inc) Kopiujemy stock do folderu scripting/include i dodajemy na początku kodu #include Lub kopiujemy potrzebne stocki do naszego kodu Autor: benio101 dla amxx.pl
-
Nazwa broni i ammo do give item oraz speed Name Number Ammo Weapon Clips CSW_P228 1 give_item(id,"ammo_357sig") give_item(id, "weapon_p228") CLIP SIZE/BP SIZE: 13/52 ================================================================================================================================== CSW_SCOUT 3 give_item(id,"ammo_762nato") give_item(id, "weapon_scout") CLIP SIZE/BP SIZE: 10/90 ================================================================================================================================== CSW_XM1014 5 give_item(id, "ammo_buckshot") give_item(id,"weapon_xm1014") CLIP SIZE/BP SIZE: 7/32 ================================================================================================================================== CSW_MAC10 7 give_item(id,"ammo_45acp") give_item(id, "weapon_mac10") CLIP SIZE/BP SIZE: 30/100 ================================================================================================================================== CSW_AUG 8 give_item(id,"ammo_556nato") give_item(id, "weapon_aug") CLIP SIZE/BP SIZE: 30/90 ================================================================================================================================== CSW_ELITE 10 give_item(id,"ammo_9mm") give_item(id, "weapon_elite") CLIP SIZE/BP SIZE: 30/120 ================================================================================================================================== CSW_FIVESEVEN 11 give_item(id,"ammo_57mm") give_item(id, "weapon_fiveseven") CLIP SIZE/BP SIZE: 20/100 ================================================================================================================================== CSW_UMP45 12 give_item(id,"ammo_45acp") give_item(id, "weapon_ump45") CLIP SIZE/BP SIZE: 25/100 ================================================================================================================================== CSW_SG550 13 give_item(id,"ammo_556nato") give_item(id, "weapon_sg550") CLIP SIZE/BP SIZE: 30/90 ================================================================================================================================== CSW_GALI 14 give_item(id,"ammo_556nato") give_item(id, "weapon_gali") CLIP SIZE/BP SIZE: 35/90 ================================================================================================================================== CSW_FAMAS 15 give_item(id,"ammo_556nato") give_item(id, "weapon_famas") CLIP SIZE/BP SIZE: 25/90 ================================================================================================================================== CSW_USP 16 give_item(id,"ammo_45acp") give_item(id, "weapon_usp") CLIP SIZE/BP SIZE: 12/100 ================================================================================================================================== CSW_GLOCK18 17 give_item(id,"ammo_9mm") give_item(id, "weapon_glock18") CLIP SIZE/BP SIZE: 20/120 ================================================================================================================================== CSW_AWP 18 give_item(id,"ammo_338magnum") give_item(id, "weapon_awp") CLIP SIZE/BP SIZE: 10/30 ================================================================================================================================== CSW_MP5NAVY 19 give_item(id,"ammo_9mm") give_item(id, "weapon_mp5navy") CLIP SIZE/BP SIZE: 30/120 ================================================================================================================================== CSW_M249 20 give_item(id,"ammo_556natobox") give_item(id, "weapon_m249") CLIP SIZE/BP SIZE: 100/200 ================================================================================================================================== CSW_M3 21 give_item(id, "ammo_buckshot") give_item(id,"weapon_m3") CLIP SIZE/BP SIZE: 8/32 ================================================================================================================================== CSW_M4A1 22 give_item(id,"ammo_556nato") give_item(id, "weapon_m4a1") CLIP SIZE/BP SIZE: 30/90 ================================================================================================================================== CSW_TMP 23 give_item(id,"ammo_9mm") give_item(id, "weapon_tmp") CLIP SIZE/BP SIZE: 30/120 ================================================================================================================================== CSW_G3SG1 24 give_item(id,"ammo_762nato") give_item(id, "weapon_g3sg1") CLIP SIZE/BP SIZE: 30/90 ================================================================================================================================== CSW_DEAGLE 26 give_item(id,"ammo_50ae") give_item(id, "weapon_deagle") CLIP SIZE/BP SIZE: 7/35 ================================================================================================================================== CSW_SG552 27 give_item(id,"ammo_556nato") give_item(id, "weapon_sg552") CLIP SIZE/BP SIZE: 30/90 ================================================================================================================================== CSW_AK47 28 give_item(id,"ammo_762nato") give_item(id, "weapon_ak47") CLIP SIZE/BP SIZE: 30/90 ================================================================================================================================== CSW_P90 30 give_item(id,"ammo_57mm") give_item(id, "weapon_p90") CLIP SIZE/BP SIZE: 50/100 __________________________________________________________________________________________________________________________________ DEFUSE KIT give_item(id, "item_thighpack") ---------------------------------------------------------------------------------------------------------------------------------- NVGS give_item(id, "item_nvgs") ---------------------------------------------------------------------------------------------------------------------------------- SHIELD give_item(id, "weapon_shield") ---------------------------------------------------------------------------------------------------------------------------------- CSW_C4 6 give_item(id, "weapon_c4") BP SIZE: 1 ---------------------------------------------------------------------------------------------------------------------------------- CSW_VEST 31 give_item(id, "item_kevlar") ---------------------------------------------------------------------------------------------------------------------------------- CSW_VESTHELM 32 give_item(id, "item_assaultsuit") ---------------------------------------------------------------------------------------------------------------------------------- CSW_HEGRENADE 4 give_item(id, "weapon_hegrenade") BP SIZE: 1 ---------------------------------------------------------------------------------------------------------------------------------- CSW_FLASHBANG 25 give_item(id, "weapon_flashbang") BP SIZE: 2 ---------------------------------------------------------------------------------------------------------------------------------- CSW_SMOKEGRENADE 9 give_item(id, "weapon_smokegrenade") BP SIZE: 1 ---------------------------------------------------------------------------------------------------------------------------------- Przykłady do funowego "get_user_maxspeed" CSW_P228 250.0 CSW_SCOUT 260.0 CSW_HEGRENADE 250.0 CSW_XM1014 240.0 CSW_C4 250.0 -------------------------- CSW_MAC10 250.0 CSW_AUG 240.0 CSW_SMOKEGRENADE 250.0 CSW_ELITE 250.0 CSW_FIVESEVEN 250.0 --------------------------- CSW_UMP45 250.0 CSW_SG550 210.0 CSW_GALIL 240.0 CSW_FAMAS 240.0 CSW_USP 250.0 --------------------------- CSW_GLOCK18 250.0 CSW_AWP 210.0 CSW_MP5NAVY 250.0 CSW_M249 220.0 CSW_M3 230.0 --------------------------- CSW_M4A1 230.0 CSW_TMP 250.0 CSW_G3SG1 210.0 CSW_FLASHBANG 250.0 CSW_DEAGLE 250.0 --------------------------- CSW_SG552 235.0 CSW_AK47 221.0 CSW_KNIFE 250.0 CSW_P90 245.0
-
Position / Movement Jest to dodatkowy include, w którym możemy zwrócić czy dany gracz kuca, jest w ruchu, skacze itd. Stocki ( zwracające wartości logiczne ) is_user_crouching(id) - true jeżeli gracz kuca is_user_moving(id) - true jeżeli gracz jest w ruchu (nie locie) is_user_onground(id, targetentity=0) - true jeżeli gracz jest na ziemi, przy uwzględnionym parametrze targetentity wykrywa czy podłożem jest dany index is_near_target(id, idtarget, Float:distance) - true jeżeli gracz sie znajduje w odległości distance obok podanego idtarget is_user_jumping(id) - true jeżeli gracz skacze (jest w powietrzu) Stock zwracający liczbę w postaci int getClosestPlayer(id, Type:ignoreteammates) - zwraca najbliższego gracza obok danego id, przy uwzględnionym IGNORUJ_SWOICH bedzie zwracać tylko przeciwników Na pewno komuś się przyda, chociażby czy gracz kuca, bo nie trzeba za pomocą fakemety pev(..) sprawdzać czy gracz kuca. Mimo wszystko te stocki używają fakemety, ale są szybsze = optymalne dla procesora. Autor: diablix
-
Wilan to lepiej bez komentarza. Zabijaka oszuści z Michałem na czele i nie warto się tym interesować.
-
Zapraszam do grania, wszystko jest w porządku ;) Zgłaszajcie bugi.
-
Cloud Game Server to przede wszystkim gwarancja zasobów sprzętowych procesora (CPU) i pamięci operacyjnej (RAM). Jest to jednak specyficzna forma serwerów w chmurze, ponieważ nie obejmuje dostępu SSH. Jest to usługa skierowana dla tych, którym zależy na gwarancji zasobów, ale jednocześnie wygodzie instalacji i zarządzania serwerami gier, bez potrzeby martwienia się o instalację systemu oraz całego oprogramowania. Serwery wirtualne są połączone z panelem administracyjnym Pukawka.pl. Umożliwiamy na nich instalację wszystkich serwerów gier o dowolnych parametrach, które działają w zakresie wykupionych zasobów sprzętowych. Aby optymalizować operacje dyskowe docelowo będziemy oferowali osobną usługę serwerów CGS dla Minecrafta. Atutem naszej usługi jest wygoda zarządzania serwerami gier. W panelu są one widoczne w taki sam sposób jak serwery wykupione w standardowej ofercie. Zarządza się nimi również w ten sam sposób, przy czym różnią się tym, że można dowolnie i w każdym momencie (oczywiście bez dodatkowych opłat - bo w ramach chmury) zmieniać ich parametry. Dotyczy to zarówno ilości slotów, jak i portu serwera (można uruchamiać serwery na dowolnym porcie). Dodatkowo wprowadzimy usługę dokupywania adresów IP i przypisywania ich indywidualnie serwerwom. Kolejnym atutem CGS jest brak limitu transferu. Przy standardowych VPS-ach i serwerach dedykowanych trzeba liczyć się z tym limitem. U nas transfer nie jest limitowany i nie trzeba się o to martwić. Oprócz tego w każdym momencie można dokupić dodatkowe zasoby sprzętowe, jeżeli są one potrzebne do uruchomienia kolejnych serwerów w chmurze. Jest to proces w pełni zautomatyzowany. Każdy serwer wirtualny posiada monitoring zasobów, dostępny dla użytkownika. W panelu można podejrzeć aktualne wykorzystanie CPU i RAM, a także statystykę (wykres obciążenia) z 7 dni. Zatem bardzo wygodnie możemy śledzić obciążenie zasobów i odpowiednio planować ich wykorzystanie. W ramach tej usługi będziemy również oferować gotowe obrazy systemów z różnymi konfiguracjami. Np. hostingiem www lub specjalnym kernelem pod serwery 1000 FPS, nastawioną na największą wydajność. Istotą serwerów wirtualnych jest gwarancja zasobów sprzętowych. W standardowej ofercie oferuje się serwery gier w tzw. hostingu współdzielonym, gdzie zasoby procesora i pamięci RAM są przypisane do wielu serwerów różnych klientów jednocześnie. Serwery "konkurują" zatem o zasoby, zatem w przypadku gdy jeden serwer na maszynie wygeneruje nadmierne obciążenie lub zawiesi się, wówczas może to prowadzić do niestabilności. Natomiast w przypadku serwera wirtualnego mamy wszystkie zasoby CPU, które wykupiliśmy, wyłącznie dla siebie i dla własnych serwerów. Dzięki temu decydujemy jak je wykorzystamy i nie musimy się martwić o niestabilności procesów innych serwerów. Dzięki naszej usłudze Cloud Game Server masz pewność, że tylko Ty korzystasz z wykupionych zasobów bo są one zagwarantowane - dosłownie i bez chwytów marketingowych. Pisze Michał Żuchowski - itbeta.pl
-
Zapewne każda osoba z branży zna markę Pukawka.pl, pod którą prowadzona jest sprzedaż serwerów gier. W niniejszym artykule przedstawimy kilka szczegółów, które sprawiły, że Pukawka.pl jest jedną z wiodących marek. Pukawka.pl jest oparta w głównej mierze na własnych rozwiązaniach. Podstawę stanowi autorski panel zarządzania, który od początku działalności w 2006 roku jest obecny i ciągle rozwijany o nowe funkcje. System jest to bardzo rozbudowany, ułatwia zarządzanie nie tylko serwerami gier klientom, ale także obsługę hostingu www, baz danych czy serwerów głosowych. W pełni automatyzuje proces płatności, realizację zamówień i zakładaniu serwerów. Od strony administracyjnej umożliwia w pełni zautomatyzowane zarządzanie wszystkimi elementami panelu i serwisu, począwszy od kont klientów, serwerów, poprzez płatności i zamówienia, na produktach i zasobach sprzętowych skończywszy. Stanowczą większość rozwiązań i funkcji Pukawka opracowała i wprowadziła jako pierwsza firma na rynku serwerów gier. Dziś wiele z tych rozwiązań jest standardem. Chociażby edycja linii startowej serwerów, edytor plików online, zarządzanie bazami danych, serwery FastDL, realny status serwera (odpytywanie query), system subkont, czy zautomatyzowany program partnerski. Zastosowano również wiele autorskich rozwiązań serwerowych, które nie są widoczne dla klientów, także do zarządzania zasobami sprzętowymi oraz monitorowania procesów. Od początku istnienia, Pukawka stosuje macierz dyskową, która znacznie ułatwia pracę wielu procesów związanych z instalacją serwerów gier, ich aktualizacją i wprowadzaniem udoskonaleń. Jako pierwsi niebawem wprowadzą innowacyjną usługę serwerów gier w chmurze. Będzie to usługa skierowana do tych klientów, których serwery wymagają hostingu dedykowanego z zasobami gwarantowanymi, np. na potrzeby serwerów Minecraft oraz wydajności w serwerach na potrzeby turniejowe, jak popularna gra Counter Strike 1.6 w wersji 1000 FPS. Będzie to usługa realizowana w ramach istniejącego już panelu klienta i w pełni z nim zintegrowana. Źródło: wht.pl Autor: Hubert Pluta --- Od siebie mogę dodać, że jest to lider pod względem uczciwości, panelu i jego rozwiązać, wiedzą wsparcia technicznego, ilości serwerów oraz zaufania najlepszych sieci serwerów, tudzież partnerstwo, a najważniejsze wydajności serwerów (co prawda kiedyś była nieco dynamika gry, ponieważ każdy serwer był wyposażony wersji MAX w sys_ticrate 500 i pingboots 3 - ale tak naprawdę nie ma różnicy między 300 FPS a 500 ale o tym w innym temacie) na rynku GH ze wszystkich pozostałych hostingów. CGS czyli Cloud Game Server przebija wszystko i wszystkich, wiem jak to wygląda i jestem pod mega wrażeniem. Jeżeli wszystko dobrze pójdzie, to przejmę stery i zainwestuje w CGS, gdzie postawię 200 slotów, będę miał możliwość przydzialania IP, kontrolowania serwerów względem jakości, wykorzystywanego CPU i RAMu (mamy około 16000 MHZ CPU oraz około 32000 RAMu). Reasumując - jest to wzór firmy do naśladowania! Screen: PS: Ja się nie mogę doczekać na wdrożenie nowego wyglądu! Aż mnie rwie - na pewno zaskoczą ;)
-
UP@. Celownik jednak dla ZM będzie. Juz wiem co było przyczyną złego odpychania zombie "że go ścinało". Zostało to naprawiona, ale póki co jeszcze do poprawy jest kilka rzeczy. Jutro powinien być już funkcjonalny i w pełni wydajny serwer :)
-
Freakovsky, Ty masz coś z głową? Jak może STEAM omijać bana?
-
Jeśli będzie potrzeba na stanowisko opiekuna jakiejś osoby, to administracja na pewno podejmie odpowiednie kroki. Obecnie są to nowe serwery, na pewno nie będą oblegane przez xx czasu frekwencją i nie będzie trzeba opiekuna tutaj.
-
Sprawa jest w toku, a dodam od siebie, że przynajmniej mnie nie obchodzi czy Ty wyjeżdżasz czy co robisz. Usługa została zakupiona i trwa ona pełen miesiąc od dany zakupu. Wystarczy już spamu tą wiadomością.
