Bardziej na pecetowiczu bym szukała takich osób niż na forum zwiazanych bardziej z serwerami
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.
|
One ShooT
Rejestracja: 08.12.2018Aktualnie: Nieaktywny
Poza forum Ostatnio: 11.03.2024 20:48
Statystyki
- Grupa: Użytkownik
- Całość postów: 214
- Odwiedzin: 4 340
- Tytuł: Profesjonalista
- Wiek: Wiek nie został ustalony
- Urodziny: Data urodzin nie została podana
-
Imię
Patryk
-
Płeć
Mężczyzna
-
Lokalizacja
Gdynia
-
Zainteresowania
Piłka nożna, Serwery Conter-Strike1.6, Sztuki walki Takie jak Aikido, Krafmaga, Boks
Kontakt
Narzędzia użytkownika
Ostatnio byli
#776112 [Szukam] Kogoś do zaprogramowania strony WWW html+css
Napisane przez One ShooT w 18.01.2023 10:28
#776052 Poszukuję ludzi do zrobienia projektu forum i serwerów
Napisane przez One ShooT w 15.01.2023 11:55
Nowy projekt sieci serwerów poszukuje osób na stanowiska Współwłaściciel i Technik, z doświadczeniem i umiejętnościami.
#776007 nie dziła amxbans
Napisane przez One ShooT w 12.01.2023 18:38
Lub nie masz dodane SQL bansa w ftp lub skompiluj SMA całego amxbansa kompilatorem lokalnym
https://amxx.pl/topi...da-się-banować/
#764217 [ROZWIĄZANE] Problem z pluginem [BB]
Napisane przez One ShooT w 20.01.2020 23:19
#764175 [DD2 + Menu Skiny SVIP/VIP]
Napisane przez One ShooT w 20.01.2020 00:01
mam sprawe powiesz mi gdzie to mam wrzucić z kolegami chcemy sobie pograć a nigdy w to sie nie bawiłem i nie wiem jak ślicznie proszę mordo
Od tego masz poradniki takie jak ten
https://darkgl.pl/20...xx-na-serwerze/
#756345 Problem z 3 pluginami
Napisane przez One ShooT w 04.02.2019 06:15
#756184 [Problem] Jail_radio
Napisane przez One ShooT w 01.02.2019 19:58
Skompiluj SMA
w kompilatorze 1.8.1 powinno zadziałać.
lub
zamień ścieżki tak aby pasowały do tych z oryginalnego pluginu oraz po zmianie ścieżek skompiluj
public plugin_precache(){ precache_sound("misc/crazyclan/t1.wav"); precache_sound("misc/crazyclan/t2.wav"); precache_sound("misc/crazyclan/t3.wav"); precache_sound("misc/crazyclan/t4.wav"); precache_sound("misc/crazyclan/t5.wav"); precache_sound("misc/crazyclan/t6.wav"); precache_sound("misc/crazyclan/t7.wav"); precache_sound("misc/crazyclan/t8.wav"); precache_sound("misc/crazyclan/t9.wav"); precache_sound("misc/crazyclan/t10.wav"); precache_sound("misc/crazyclan/ct1.wav"); precache_sound("misc/crazyclan/ct2.wav"); precache_sound("misc/crazyclan/ct3.wav"); precache_sound("misc/crazyclan/ct4.wav"); precache_sound("misc/crazyclan/ct5.wav"); }
i pozmieniaj po prostu nazwy na swoje .
daj w .WAV
Link do pobrania całego pluginu i zobacz tak jak w odpowiedzi pisało reskio
https://amxx.pl/topi...844-jail-radio/
@Edit
Skompilowałem to co dałeś i mi działa jak należy.
#755888 Just Capture The Flag (Wymarły mod)
Napisane przez One ShooT w 27.01.2019 16:23
Podsyłam Nowy Link do Pobierania do Just Capture The Flag
Ponieważ stary silnik nie chce działać poświeciłem 2 dni i najprawdopodobniej podobniej nie działa "orpheu"
Link do Pobrania :
https://www105.zippy...LFzmm/file.html
Proszę przeczytać CZYTAJ TO!!
#755865 Wyłączyć podświetlenie Flag
Napisane przez One ShooT w 27.01.2019 12:46
Silnik /* * _______ _ _ __ __ * | _____/ | | | | \ \ __ / / * | | | | | | | | / \ | | * | | | |____| | | |/ __ \| | * | | ___ | ______ | | / \ | * | | |_ | | | | | | / \ | * | | | | | | | | | | | | * | |____| | | | | | | | | | * |_______/ |_| |_| \_/ \_/ * * * * Last Edited: 08-25-08 * * ============ * Changelog: * ============ * * v3.1b * -Flag Holders no longer get spawn protection * * v3.1a * -de_ map objective respawn bug hard-fix * -cs_ map objective respawn bug fix * -Minor fixes * * v3.1 * -Added Infinite Ammo * -Added Random option to weapons menu * -Optimized amx_ctf_on function * * v3.0 * -Rewrite #2 * * v2.0 * -Rewrite * * v1.0 * -Initial Release * */ #define VERSION "3.1b" #include <amxmodx> #include <amxmisc> #include <fun> #include <cstrike> #include <csx> #include <fakemeta> //Remove the '//' on the next line for AMXX 1.76d compadability. //#define amxx176d //Max Distance from player->flag for touch to occur #define PICKUP_DISTANCE 100.0 #define MAX_OBJECTIVES 10 #define MAX_OBJ_TYPES 8 //CTF CS Weapon Constants #define CTF_SCOUT 1 //a #define CTF_XM1014 2 //b #define CTF_MAC10 4 //c #define CTF_AUG 8 //d #define CTF_UMP45 16 //e #define CTF_SG550 32 //f #define CTF_GALIL 64 //g #define CTF_FAMAS 128 //h #define CTF_AWP 256 //i #define CTF_MP5NAVY 512 //j #define CTF_M249 1024 //k #define CTF_M3 2048 //l #define CTF_M4A1 4096 //m #define CTF_TMP 8192 //n #define CTF_G3SG1 16384 //o #define CTF_SG552 32768 //p #define CTF_AK47 65536 //q #define CTF_P90 131072 //r #define CTF_P228 262144 //s #define CTF_ELITE 524288 //t #define CTF_FIVESEVEN 1048576 //u #define CTF_USP 2097152 //v #define CTF_GLOCK18 4194304 //w #define CTF_DEAGLE 8388608 //x #define CTF_VEST 16777216//y #define CTF_VESTHELM 33554432//z static const weapon_names[26][16] = { "Scout", "XM1014", "Mac10", "Aug", "UMP", "SG550", "Galil", "Famas", "AWP", "MP5Navy", "M249", "M3", "M4A1", "TMP", "G3SG1", "SG552", "AK47", "P90", "P228", "Elite", "Fiveseven", "USP", "Glock18", "Deagle", "VEST", "VESTHELM" } //Map Objective Removal new num_objectives new Float:objective[MAX_OBJECTIVES][3] new objective_type[MAX_OBJECTIVES] new objective_solidity[MAX_OBJECTIVES] new Float:objectiveminsize[MAX_OBJECTIVES][3] new Float:objectivemaxsize[MAX_OBJECTIVES][3] new bool:give_c4 static const map_objectives[MAX_OBJ_TYPES][24] = { "func_bomb_target", "func_escapezone", "func_hostage_rescue", "func_vip_safetyzone", "hostage_entity", "info_bomb_target", "info_hostage_rescue", "info_vip_start" } //Map Objective Removal - de_ bug fix new weapon[33][31] new CsArmorType:armortype[33] new armoramount[33] new bool:killing new WeaponNames[31][] = { "", //Blank "weapon_p228", "", //Nothing "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "", //C4 "weapon_mac10", "weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550", "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249", "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552", "weapon_ak47", "", //Knife "weapon_p90" } //CVAR Pointers new togglecvar, respawntime, maxcaps, spawnprotection #if !defined amxx176d new allowableweapons, nades #endif new bool:play_sounds //Flag new Float:maxs[2][3] = {{-4800.0,-4800.0,-4800.0},{-4800.0,-4800.0,-4800.0}} new Float:mins[2][3] = {{4800.0,4800.0,4800.0},{4800.0,4800.0,4800.0}} new I_max[2][3] new I_min[2][3] static const holo_model[] = "models/holo.mdl" static const blue_flag_model[] = "models/blue_flag.mdl" static const red_flag_model[] = "models/red_flag.mdl" static const flag_captured[] = "PVPFlagCaptured.mp3" static const flag_returned[] = "PVPFlagReturned.mp3" static const flag_taken[] = "PVPFlagTaken.mp3" new beamsprite new flag_holder[2] new flagstand_ents[2] new bool:is_in_safezone[33] new TScore, CTScore new saytext_msgid new maxplayers //Weapon Menu new bool:firsttime[33] new bool:ask[33] new weapon_picked[2][33] new cur_offset[33] new options_on_menu[8][33] //Voting new voterounddelay, votecvar, votelength, votedelay new bool:roundend new bool:voting new bool:voted new yes, no public plugin_init() { register_plugin("GHW Capture The Flag",VERSION,"GHW_Chronic") togglecvar = register_cvar("ctf_on","1") #if defined amxx176d register_cvar("ctf_weapons","abcdefghijklmnopqrstuvwxyz") #else allowableweapons = register_cvar("ctf_weapons","abcdefghijklmnopqrstuvwxyz") #endif #if defined amxx176d register_cvar("ctf_nades","hhff") #else nades = register_cvar("ctf_nades","hhff") #endif respawntime = register_cvar("ctf_respawntime","3.0") maxcaps = register_cvar("ctf_maxcaps","25") votecvar = register_cvar("ctf_vote","1") votelength = register_cvar("ctf_votelength","20.0") votedelay = register_cvar("ctf_votedelay","180.0") voterounddelay = register_cvar("ctf_voterounddelay","5.0") spawnprotection = register_cvar("ctf_spawnprotection","1") //register_clcmd("say /spawnme","respawn_player") //register_clcmd("say_team /spawnme","respawn_player") register_clcmd("say /guns","cmd_guns") register_clcmd("say_team /guns","cmd_guns") register_clcmd("say guns","cmd_guns") register_clcmd("say_team guns","cmd_guns") register_clcmd("say /ctfvote","say_vote_hook") register_clcmd("say_team /ctfvote","say_vote_hook") register_concmd("amx_ctf_addweap","cmd_addweap",ADMIN_BAN,"<Weapon> Un-Restricts a weapon from the weapons menu.") register_concmd("amx_ctf_removeweap","cmd_delweap",ADMIN_BAN,"<Weapon> Restricts a weapon from the weapons menu.") register_concmd("amx_ctf_set_tflag","cmd_set_tflag",ADMIN_BAN,"Sets your current location to the new T Flag Spawn Location.") register_concmd("amx_ctf_set_ctflag","cmd_set_ctflag",ADMIN_BAN,"Sets your current location to the new CT Flag Spawn Location.") register_concmd("amx_ctf_off","cmd_off",ADMIN_BAN,"Turn CTF Off") register_concmd("amx_ctf_on","cmd_on",ADMIN_BAN,"Turn CTF On") register_menucmd(register_menuid("WeaponMethodMenu"),(1<<0)|(1<<1)|(1<<2),"weapon_method_pushed") register_menucmd(register_menuid("PrimaryWeaponSelect"),(1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9),"prim_weapons_pushed") register_menucmd(register_menuid("SecWeaponSelect"),(1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7),"sec_weapons_pushed") register_menucmd(register_menuid("ctfvote"),(1<<0)|(1<<1), "Key_Hook") register_forward(FM_Think,"FM_Think_Hook") register_forward(FM_PlayerPreThink,"FM_PlayerPreThink_Hook") register_forward(FM_SetModel,"Hook_SetModel",1) register_event("DeathMsg","DeathMsg","a") register_event("SendAudio","endround","a","2=%!MRAD_terwin","2=%!MRAD_ctwin","2=%!MRAD_rounddraw") register_logevent("newround",2,"1=Round_Start") saytext_msgid = get_user_msgid("SayText") maxplayers = get_maxplayers() if(get_pcvar_num(togglecvar)) { ctf_on() } } /* cmd_delweap cmd_addweap */ public cmd_delweap(id,level,cid) { if(!cmd_access(id,level,cid,2)) { return PLUGIN_HANDLED } new arg[32] read_argv(1,arg,31) new cvar_value[32] #if defined amxx176d get_cvar_string("ctf_weapons",cvar_value,31) #else get_pcvar_string(allowableweapons,cvar_value,31) #endif new flags = read_flags(cvar_value) for(new i=0;i<26;i++) { if(equali(arg,weapon_names[i])) { new remove_flag = power(2,i) if(flags & remove_flag) { console_print(id,"[AMXX] Removing weapon %s from the choice list.",weapon_names[i]) flags -= remove_flag get_flags(flags,cvar_value,31) set_cvar_string("ctf_weapons",cvar_value) } else { console_print(id,"[AMXX] Weapon %s is already off choice list.",weapon_names[i]) } break; } } return PLUGIN_HANDLED } public cmd_addweap(id,level,cid) { if(!cmd_access(id,level,cid,2)) { return PLUGIN_HANDLED } new arg[32] read_argv(1,arg,31) new cvar_value[32] #if defined amxx176d get_cvar_string("ctf_weapons",cvar_value,31) #else get_pcvar_string(allowableweapons,cvar_value,31) #endif for(new i=0;i<26;i++) { if(equali(arg,weapon_names[i])) { new flags = read_flags(cvar_value) new add_flag = power(2,i) if(!(flags & add_flag)) { console_print(id,"[AMXX] Adding weapon %s to the choice list.",weapon_names[i]) flags += add_flag get_flags(flags,cvar_value,31) set_cvar_string("ctf_weapons",cvar_value) } else { console_print(id,"[AMXX] Weapon %s is already on choice list.",weapon_names[i]) } break; } } return PLUGIN_HANDLED } /* Respawn on Team Select */ public client_putinserver(id) { set_task(1.0,"catch_jointeam",id,"",0,"b") ask[id] = true firsttime[id] = true } public catch_jointeam(id) { if(get_pcvar_num(togglecvar) && is_user_connected(id)) { static CsTeams:team team = cs_get_user_team(id) if(team==CS_TEAM_T || team==CS_TEAM_T) { remove_task(id) respawn_player(id) } } else { remove_task(id) } } /* Base Respawn Code */ public respawn_player(id) { if(get_pcvar_num(togglecvar) && is_user_connected(id)) { //Make the engine think he is spawning set_pev(id,pev_deadflag,DEAD_RESPAWNABLE) set_pev(id,pev_iuser1,0) dllfunc(DLLFunc_Think,id) //Move his body so if corpse is created it is not in map engfunc(EngFunc_SetOrigin,id,Float:{-4800.0,-4800.0,-4800.0}) //Actual Spawn set_task(0.5,"spawnagain",id) } } public spawnagain(id) { //Make sure he didn't disconnect in the 0.5 seconds that have passed. if(is_user_connected(id)) { //Spawn player spawn(id) dllfunc(DLLFunc_Spawn,id) set_task(1.0,"weapon_method_menu",id) } } /* CSDM Style weapons menu */ public weapon_method_menu(id) { if(is_user_bot(id)) { weapon_picked[0][id] = 16 weapon_picked[1][id] = 23 give_weapons(id) } else if(firsttime[id]) { firsttime[id] = false prim_weapons_menu(id,0) } else { cur_offset[id] = 0 if(ask[id]) { show_menu(id,(1<<0)|(1<<1)|(1<<2),"Weapon Selection Method^n^n1. Last Guns^n2. Last Guns + Save^n3. New Guns",-1,"WeaponMethodMenu") } else { give_weapons(id) } } } public weapon_method_pushed(id,key) { switch(key) { case 0: { ask[id] = true give_weapons(id) } case 1: { new string[200] format(string,199,"[red][CTF][/red] Type [green]guns[/green] to re-activate the gun menu.") show_colored_message(id,string,199) ask[id] = false give_weapons(id) } case 2: { ask[id] = true prim_weapons_menu(id,0) } } return ; } public prim_weapons_menu(id,offset) { if(offset<0) offset = 0 new cvar_value[32] #if defined amxx176d get_cvar_string("ctf_weapons",cvar_value,31) #else get_pcvar_string(allowableweapons,cvar_value,31) #endif new flags = read_flags(cvar_value) new keys, curnum, menu[2048] for(new i=offset;i<19;i++) { if(i==18) { options_on_menu[curnum][id] = 24 keys += (1<<curnum) curnum++ format(menu,2047,"%s^n%d. Random",menu,curnum) break; } else if(flags & power(2,i)) { options_on_menu[curnum][id] = i keys += (1<<curnum) curnum++ format(menu,2047,"%s^n%d. %s",menu,curnum,weapon_names[i]) if(curnum==8) break; } } format(menu,2047,"\ySelect Primary Weapon:\w^n^n%s^n",menu) if(curnum==8 && offset<12) { keys += (1<<8) format(menu,2047,"%s^n9. Next",menu) } if(offset) { keys += (1<<9) format(menu,2047,"%s^n0. Back",menu) } show_menu(id,keys,menu,-1,"PrimaryWeaponSelect") } public prim_weapons_pushed(id,key) { if(key<8) { weapon_picked[0][id] = options_on_menu[key][id] cur_offset[id] = 0 sec_weapons_menu(id,0) } else { if(key==8) cur_offset[id] += 8 if(key==9) cur_offset[id] -= 8 prim_weapons_menu(id,cur_offset[id]) } return ; } public sec_weapons_menu(id,offset) { if(offset<0) offset = 0 new cvar_value[32] #if defined amxx176d get_cvar_string("ctf_weapons",cvar_value,31) #else get_pcvar_string(allowableweapons,cvar_value,31) #endif new flags = read_flags(cvar_value) new keys, curnum, menu[2048] for(new i=18;i<24;i++) { if(flags & power(2,i)) { options_on_menu[curnum][id] = i keys += (1<<curnum) curnum++ format(menu,2047,"%s^n%d. %s",menu,curnum,weapon_names[i]) } } options_on_menu[curnum][id] = 25 keys += (1<<curnum) curnum++ format(menu,2047,"%s^n%d. Random",menu,curnum) format(menu,2047,"\ySelect Secondary Weapon:\w^n^n%s",menu) show_menu(id,keys,menu,-1,"SecWeaponSelect") } public sec_weapons_pushed(id,key) { if(key<8) { weapon_picked[1][id] = options_on_menu[key][id] } give_weapons(id) return ; } public give_weapons(id) { strip_user_weapons(id) give_item(id,"weapon_knife") new weapon[32] new csw = csw_contant(weapon_picked[0][id]) get_weaponname(csw,weapon,31) give_item(id,weapon) cs_set_user_bpammo(id,csw,999) csw = csw_contant(weapon_picked[1][id]) get_weaponname(csw,weapon,31) give_item(id,weapon) cs_set_user_bpammo(id,csw,999) #if defined amxx176d get_cvar_string("ctf_nades",weapon,31) #else get_pcvar_string(nades,weapon,31) #endif new he, flash, smoke for(new i=0;i<strlen(weapon);i++) { switch(weapon[i]) { case 'h': he++ case 'f': flash++ case 's': smoke++ } } if(he) give_item(id,"weapon_hegrenade"), cs_set_user_bpammo(id,CSW_HEGRENADE,he) if(flash) give_item(id,"weapon_flashbang"), cs_set_user_bpammo(id,CSW_FLASHBANG,flash) if(smoke) give_item(id,"weapon_smokegrenade"), cs_set_user_bpammo(id,CSW_SMOKEGRENADE,smoke) #if defined amxx176d get_cvar_string("ctf_weapons",weapon,31) #else get_pcvar_string(allowableweapons,weapon,31) #endif new flags = read_flags(weapon) if(flags & CTF_VESTHELM) cs_set_user_armor(id,100,CS_ARMOR_VESTHELM) else if(flags & CTF_VEST) cs_set_user_armor(id,100,CS_ARMOR_KEVLAR) } public csw_contant(weapon) { new num = 29 switch(weapon) { case 0: num = 3 case 1: num = 5 case 2: num = 7 case 3: num = 8 case 4: num = 12 case 5: num = 13 case 6: num = 14 case 7: num = 15 case 8: num = 18 case 9: num = 19 case 10: num = 20 case 11: num = 21 case 12: num = 22 case 13: num = 23 case 14: num = 24 case 15: num = 27 case 16: num = 28 case 17: num = 30 case 18: num = 1 case 19: num = 10 case 20: num = 11 case 21: num = 16 case 22: num = 17 case 23: num = 26 case 24: { new s_weapon[32] #if defined amxx176d get_cvar_string("ctf_weapons",s_weapon,31) #else get_pcvar_string(allowableweapons,s_weapon,31) #endif new flags = read_flags(s_weapon) do { num = random_num(0,18) if(!(num & flags)) { num = -1 } } while(num==-1) num = csw_contant(num) } case 25: { new s_weapon[32] #if defined amxx176d get_cvar_string("ctf_weapons",s_weapon,31) #else get_pcvar_string(allowableweapons,s_weapon,31) #endif new flags = read_flags(s_weapon) do { num = random_num(18,23) if(!(num & flags)) { num = -1 } } while(num==-1) num = csw_contant(num) } } return num; } public cmd_guns(id) { ask[id] = true weapon_method_menu(id) } /* Weapon Despawn */ public Hook_SetModel(ent,model[]) { if(get_pcvar_num(togglecvar) && pev_valid(ent) && ent>maxplayers) { if(containi(model,"models/w_")==0) { if(containi(model,"nade")!=-1 || containi(model,"flash")!=-1) { set_task(2.0,"remove_nade_ent",ent,model,31) } else { set_task(0.1,"remove_ent",ent,model,31) } } } } public remove_ent(model[32],ent) { if(pev_valid(ent)) { static model2[32] pev(ent,pev_model,model2,31) if(equal(model,model2)) engfunc(EngFunc_RemoveEntity,ent) } } public remove_nade_ent(model[32],ent) { if(pev_valid(ent)) { static model2[32] pev(ent,pev_model,model2,31) if(equal(model,model2)) { static Float:velocity[3] pev(ent,pev_velocity,velocity) if(!velocity[0] && !velocity[1] && !velocity[2]) set_pev(ent,pev_flags,FL_KILLME) } } } /* Base Setup - Spawn Protection & Flag Spawn */ public plugin_precache() { precache_model(holo_model) precache_model(red_flag_model) precache_model(blue_flag_model) beamsprite = precache_model("sprites/dot.spr") precache_model("models/scientist.mdl") if(get_pcvar_num(register_cvar("ctf_sounds","1"))) { play_sounds = true precache_sound(flag_captured) precache_sound(flag_returned) precache_sound(flag_taken) } } public cmd_set_tflag(id,level,cid) { if(!cmd_access(id,level,cid,1)) { return PLUGIN_HANDLED } setflagspawn(id,0) console_print(id,"[CTF] T Flag Spawn Location Saved.") return PLUGIN_HANDLED } public cmd_set_ctflag(id,level,cid) { if(!cmd_access(id,level,cid,1)) { return PLUGIN_HANDLED } setflagspawn(id,1) console_print(id,"[CTF] CT Flag Spawn Location Saved.") return PLUGIN_HANDLED } public setflagspawn(id,team) { new bool:readfromfile = false new configfile[200] get_configsdir(configfile,199) format(configfile,199,"%s/CTF_FlagSpawns.ini",configfile) new mapname[32] get_mapname(mapname,31) new string[200] format(string,199,"%s | T | ",mapname) new Float:origin[3], Float:origin2[3] switch(team) { case 0: { pev(flag_holder[1],pev_origin,origin2) pev(id,pev_origin,origin) engfunc(EngFunc_SetOrigin,flag_holder[0],origin) } case 1: { pev(flag_holder[0],pev_origin,origin) pev(id,pev_origin,origin2) engfunc(EngFunc_SetOrigin,flag_holder[1],origin2) } } if(file_exists(configfile)) { new read[200], trash, Fsize = file_size(configfile,1) for(new i=0;i<Fsize;i++) { read_file(configfile,i,read,199,trash) if(containi(read,string)==0) { format(string,199,"%s | T | %f %f %f | CT | %f %f %f",mapname,origin[0],origin[1],origin[2],origin2[0],origin2[1],origin2[2]) write_file(configfile,string,i) readfromfile = true break; } } } if(!readfromfile) { format(string,199,"%s | T | %f %f %f | CT | %f %f %f",mapname,origin[0],origin[1],origin[2],origin2[0],origin2[1],origin2[2]) write_file(configfile,string,-1) } } public find_minmaxs() { new Float:origin[3], i new ent = engfunc(EngFunc_FindEntityByString,maxplayers,"classname","info_player_deathmatch") while(ent) { if(pev_valid(ent)) { pev(ent,pev_origin,origin) for(i=0;i<3;i++) { if(origin[i] < mins[0][i]) mins[0][i] = origin[i] if(origin[i] > maxs[0][i]) maxs[0][i] = origin[i] } } ent = engfunc(EngFunc_FindEntityByString,ent,"classname","info_player_deathmatch") } ent = engfunc(EngFunc_FindEntityByString,maxplayers,"classname","info_player_start") while(ent) { if(pev_valid(ent)) { pev(ent,pev_origin,origin) for(i=0;i<3;i++) { if(origin[i] < mins[1][i]) mins[1][i] = origin[i] if(origin[i] > maxs[1][i]) maxs[1][i] = origin[i] } } ent = engfunc(EngFunc_FindEntityByString,ent,"classname","info_player_start") } maxs[0][2] += 70.0 mins[1][2] -= 70.0 maxs[0][0] += 32.0 mins[1][0] -= 32.0 maxs[0][1] += 32.0 mins[1][1] -= 32.0 new Float:T_origin[3], Float:CT_origin[3] get_flagstand_origins(CT_origin,T_origin) ent = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"info_target")) set_pev(ent,pev_classname,"Flagstand_Model") engfunc(EngFunc_SetModel,ent,holo_model) set_pev(ent,pev_effects,EF_BRIGHTLIGHT) set_pev(ent,pev_renderfx,kRenderFxGlowShell) set_pev(ent,pev_rendercolor,Float:{255.0,0.0,0.0}) set_pev(ent,pev_rendermode,kRenderNormal) set_pev(ent,pev_renderamt,255.0) set_pev(ent,pev_gaitsequence,0) set_pev(ent,pev_sequence,0) set_pev(ent,pev_framerate,0.7) engfunc(EngFunc_SetOrigin,ent,T_origin) engfunc(EngFunc_DropToFloor,ent) pev(ent,pev_origin,origin) origin[2] += 36.0 engfunc(EngFunc_SetOrigin,ent,origin) set_pev(ent,pev_nextthink,1.0) flagstand_ents[0] = ent flag_holder[0] = ent ent = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"info_target")) set_pev(ent,pev_classname,"Flagstand_Model") engfunc(EngFunc_SetModel,ent,holo_model) set_pev(ent,pev_effects,EF_BRIGHTLIGHT) set_pev(ent,pev_renderfx,kRenderFxGlowShell) set_pev(ent,pev_rendercolor,Float:{0.0,0.0,255.0}) set_pev(ent,pev_rendermode,kRenderNormal) set_pev(ent,pev_renderamt,255.0) set_pev(ent,pev_gaitsequence,0) set_pev(ent,pev_sequence,0) set_pev(ent,pev_framerate,0.7) engfunc(EngFunc_SetOrigin,ent,CT_origin) engfunc(EngFunc_DropToFloor,ent) pev(ent,pev_origin,origin) origin[2] += 36.0 engfunc(EngFunc_SetOrigin,ent,origin) set_pev(ent,pev_nextthink,1.0) flagstand_ents[1] = ent flag_holder[1] = ent for(new i=0;i<2;i++) { for(new j=0;j<3;j++) { I_max[i][j] = floatround(maxs[i][j]) I_min[i][j] = floatround(mins[i][j]) } } set_task(5.0,"create_beamsprites") set_task(10.0,"create_beamsprites",1500,"",0,"b") ent = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"info_target")) set_pev(ent,pev_classname,"CTF_T_Flag") engfunc(EngFunc_SetModel,ent,red_flag_model) set_pev(ent,pev_movetype,MOVETYPE_FLY) FM_Think_Hook(ent) ent = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"info_target")) set_pev(ent,pev_classname,"CTF_CT_Flag") engfunc(EngFunc_SetModel,ent,blue_flag_model) set_pev(ent,pev_movetype,MOVETYPE_FLY) FM_Think_Hook(ent) } public get_flagstand_origins(Float:CT_origin[3],Float:T_origin[3]) { new i new Float:midpoint[2][3] for(i=0;i<2;i++) { for(new j=0;j<3;j++) { midpoint[i][j] = (maxs[i][j] + mins[i][j]) / 2.0 } } new configfile[200] get_configsdir(configfile,199) format(configfile,199,"%s/CTF_FlagSpawns.ini",configfile) T_origin[0] = midpoint[0][0] T_origin[1] = midpoint[0][1] T_origin[2] = midpoint[0][2] CT_origin[0] = midpoint[1][0] CT_origin[1] = midpoint[1][1] CT_origin[2] = midpoint[1][2] new mapname[32] get_mapname(mapname,31) new string[200] format(string,199,"%s | T | ",mapname) if(file_exists(configfile)) { new read[200], trash, Fsize = file_size(configfile,1) for(new i=0;i<Fsize;i++) { read_file(configfile,i,read,199,trash) if(containi(read,string)==0) { format(read,199,read[strlen(string)]) replace_all(read,199," | CT |","") strbreak(read,string,199,read,199) T_origin[0] = str_to_float(string) strbreak(read,string,199,read,199) T_origin[1] = str_to_float(string) strbreak(read,string,199,read,199) T_origin[2] = str_to_float(string) strbreak(read,string,199,read,199) CT_origin[0] = str_to_float(string) strbreak(read,string,199,read,199) CT_origin[1] = str_to_float(string) strbreak(read,string,199,read,199) CT_origin[2] = str_to_float(string) break; } } } return ; } public FM_Think_Hook(ent) { if(pev_valid(ent)) { static classname[32] pev(ent,pev_classname,classname,31) if(equal(classname,"Flagstand_Model")) { static Float:angles[3] pev(ent,pev_angles,angles) angles[1] += 0.3 while(angles[1]>180.0) angles[1] -= 360.0 set_pev(ent,pev_angles,angles) set_pev(ent,pev_nextthink,1.0) } else if(equal(classname,"CTF_T_Flag")) { Flag_Think_Hook(ent,0) set_pev(ent,pev_nextthink,1.0) } else if(equal(classname,"CTF_CT_Flag")) { Flag_Think_Hook(ent,1) set_pev(ent,pev_nextthink,1.0) } } } public create_beamsprites() { if(get_pcvar_num(spawnprotection)) { //T Base create_beam_message(I_max[0][0],I_max[0][1],I_max[0][2],I_max[0][0],I_min[0][1],I_max[0][2],255,0) //create_beam_message(I_max[0][0],I_max[0][1],I_min[0][2],I_max[0][0],I_min[0][1],I_min[0][2],255,0) create_beam_message(I_max[0][0],I_max[0][1],(I_max[0][2] + I_min[0][2]) / 2,I_max[0][0],I_min[0][1],(I_max[0][2] + I_min[0][2]) / 2,255,0) create_beam_message(I_max[0][0],I_max[0][1],I_max[0][2],I_min[0][0],I_max[0][1],I_max[0][2],255,0) //create_beam_message(I_max[0][0],I_max[0][1],I_min[0][2],I_min[0][0],I_max[0][1],I_min[0][2],255,0) create_beam_message(I_max[0][0],I_max[0][1],(I_max[0][2] + I_min[0][2]) / 2,I_min[0][0],I_max[0][1],(I_max[0][2] + I_min[0][2]) / 2,255,0) create_beam_message(I_min[0][0],I_max[0][1],I_max[0][2],I_min[0][0],I_min[0][1],I_max[0][2],255,0) //create_beam_message(I_min[0][0],I_max[0][1],I_min[0][2],I_min[0][0],I_min[0][1],I_min[0][2],255,0) create_beam_message(I_min[0][0],I_max[0][1],(I_max[0][2] + I_min[0][2]) / 2,I_min[0][0],I_min[0][1],(I_max[0][2] + I_min[0][2]) / 2,255,0) create_beam_message(I_min[0][0],I_min[0][1],I_max[0][2],I_max[0][0],I_min[0][1],I_max[0][2],255,0) //create_beam_message(I_min[0][0],I_min[0][1],I_min[0][2],I_max[0][0],I_min[0][1],I_min[0][2],255,0) create_beam_message(I_min[0][0],I_min[0][1],(I_max[0][2] + I_min[0][2]) / 2,I_max[0][0],I_min[0][1],(I_max[0][2] + I_min[0][2]) / 2,255,0) //CT Base create_beam_message(I_max[1][0],I_max[1][1],I_max[1][2],I_max[1][0],I_min[1][1],I_max[1][2],0,255) //create_beam_message(I_max[1][0],I_max[1][1],I_min[1][2],I_max[1][0],I_min[1][1],I_min[1][2],255,0) create_beam_message(I_max[1][0],I_max[1][1],(I_max[1][2] + I_min[1][2]) / 2,I_max[1][0],I_min[1][1],(I_max[1][2] + I_min[1][2]) / 2,0,255) create_beam_message(I_max[1][0],I_max[1][1],I_max[1][2],I_min[1][0],I_max[1][1],I_max[1][2],0,255) //create_beam_message(I_max[1][0],I_max[1][1],I_min[1][2],I_min[1][0],I_max[1][1],I_min[1][2],255,0) create_beam_message(I_max[1][0],I_max[1][1],(I_max[1][2] + I_min[1][2]) / 2,I_min[1][0],I_max[1][1],(I_max[1][2] + I_min[1][2]) / 2,0,255) create_beam_message(I_min[1][0],I_max[1][1],I_max[1][2],I_min[1][0],I_min[1][1],I_max[1][2],0,255) //create_beam_message(I_min[1][0],I_max[1][1],I_min[1][2],I_min[1][0],I_min[1][1],I_min[1][2],255,0) create_beam_message(I_min[1][0],I_max[1][1],(I_max[1][2] + I_min[1][2]) / 2,I_min[1][0],I_min[1][1],(I_max[1][2] + I_min[1][2]) / 2,0,255) create_beam_message(I_min[1][0],I_min[1][1],I_max[1][2],I_max[1][0],I_min[1][1],I_max[1][2],0,255) //create_beam_message(I_min[1][0],I_min[1][1],I_min[1][2],I_max[1][0],I_min[1][1],I_min[1][2],255,0) create_beam_message(I_min[1][0],I_min[1][1],(I_max[1][2] + I_min[1][2]) / 2,I_max[1][0],I_min[1][1],(I_max[1][2] + I_min[1][2]) / 2,0,255) } } public create_beam_message(origin1_0,origin1_1,origin1_2,origin2_0,origin2_1,origin2_2,r,b) { message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(0) //TE_BEAMPOINTS write_coord(origin1_0) write_coord(origin1_1) write_coord(origin1_2) write_coord(origin2_0) write_coord(origin2_1) write_coord(origin2_2) write_short(beamsprite) write_byte(1) // framestart write_byte(1) // framerate write_byte(110) // life in 0.1's write_byte(5) // width write_byte(0) // noise write_byte(r) write_byte(0) write_byte(b) write_byte(200) // brightness write_byte(0) // speed message_end() } public FM_PlayerPreThink_Hook(id) { if(is_user_alive(id) && !is_user_bot(id) && get_pcvar_num(spawnprotection) && get_pcvar_num(togglecvar) && id!=flag_holder[0] && id!=flag_holder[1]) { static Float:origin[3] pev(id,pev_origin,origin) if(is_in_safezone[id]) { new buttons = pev(id,pev_button) if(buttons & IN_ATTACK) buttons -= IN_ATTACK if(buttons & IN_ATTACK2) buttons -= IN_ATTACK2 set_pev(id,pev_button,buttons) buttons = pev(id,pev_oldbuttons) if(buttons & IN_ATTACK) buttons -= IN_ATTACK if(buttons & IN_ATTACK2) buttons -= IN_ATTACK2 set_pev(id,pev_oldbuttons,buttons) if(!((origin[0]<=maxs[0][0] && origin[0]>=mins[0][0] && origin[1]<=maxs[0][1] && origin[1]>=mins[0][1]) || (origin[0]<=maxs[1][0] && origin[0]>=mins[1][0] && origin[1]<=maxs[1][1] && origin[1]>=mins[1][1]))) { unsafezone(id) } } else if((origin[0]<=maxs[0][0] && origin[0]>=mins[0][0] && origin[1]<=maxs[0][1] && origin[1]>=mins[0][1]) || (origin[0]<=maxs[1][0] && origin[0]>=mins[1][0] && origin[1]<=maxs[1][1] && origin[1]>=mins[1][1])) { switch(cs_get_user_team(id)) { case CS_TEAM_T: in_safezone(id,255,0,0) case CS_TEAM_CT: in_safezone(id,0,0,255) default: in_safezone(id,0,255,0) } } } } public in_safezone(id,r,g,b) { set_user_godmode(id,1) set_user_rendering(id,kRenderFxGlowShell,r,g,b,kRenderTransColor,50) is_in_safezone[id] = true message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},id) write_short(~0) write_short(~0) write_short(1<<12) write_byte(r) write_byte(g) write_byte(b) write_byte(100) message_end() new param[3] param[0] = r param[1] = g param[2] = b if(!task_exists(id + 20000)) set_task(8.0,"reflash",id + 20000,param,3,"b") set_task(0.5,"reflash",id + 20000,param,3) } public reflash(param[3],id) { id -= 20000 if(!is_in_safezone[id] || !is_user_alive(id)) { remove_task(id + 20000) } else { message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},id) write_short(~0) write_short(~0) write_short(1<<12) write_byte(param[0]) write_byte(param[1]) write_byte(param[2]) write_byte(100) message_end() } } public unsafezone(id) { set_user_godmode(id) set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,255) is_in_safezone[id] = false message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},id) write_short(~0) write_short(~0) write_short(1<<12) write_byte(0) write_byte(0) write_byte(0) write_byte(1) message_end() remove_task(id + 20000) } /* Flag Think */ public Flag_Think_Hook(ent,team) { if(pev_valid(flag_holder[team])) { static Float:origin[3], Float:origin2[3] pev(flag_holder[team],pev_origin,origin) origin[2] += 16.0 pev(ent,pev_origin,origin2) if(get_distance_f(origin,origin2)>50.0) engfunc(EngFunc_SetOrigin,ent,origin) if(flag_holder[team]!=flagstand_ents[team] && flag_holder[(team + 1) % 2]==flagstand_ents[(team + 1) % 2]) { pev(flagstand_ents[(team + 1) % 2],pev_origin,origin) if(get_distance_f(origin2,origin)<PICKUP_DISTANCE) { new string[200] new cvar_value = get_pcvar_num(maxcaps) new ministring[4] if(team) { ministring = "CT" TScore++ if(cvar_value<=TScore) { format(string,199,"[red][CTF][/red] Game Over. [green]Ts[/green] won.") show_colored_message(0,string,199) endmap() } } else { ministring = "T" CTScore++ if(cvar_value<=CTScore) { format(string,199,"[red][CTF][/red] Game Over. [green]CTs[/green] won.") show_colored_message(0,string,199) endmap() } } new name[32] get_user_name(flag_holder[team],name,31) format(string,199,"[red][CTF][/red] [green]%s[/green] captured the [green]%s[/green] flag.",name,ministring) if(play_sounds) client_cmd(0,"mp3 play sound/%s",flag_captured) show_colored_message(0,string,199) flag_holder[team] = flagstand_ents[team] write_hudmsg() return ; } } pev(flag_holder[team],pev_velocity,origin) set_pev(ent,pev_velocity,origin) } if(flag_holder[team]==flagstand_ents[team] || !flag_holder[team]) { static Float:origin[3] static Float:flag_origin[3] pev(ent,pev_origin,flag_origin) static players[32], num get_players(players,num,"ach") for(new i=0;i<num;i++) { if(get_user_team(players[i])!=(team + 1)) { pev(players[i],pev_origin,origin) if(get_distance_f(origin,flag_origin)<PICKUP_DISTANCE) { new ministring[4] if(team) ministring = "CT" else ministring = "T" flag_holder[team] = players[i] new name[32] new string[200] get_user_name(players[i],name,31) format(string,199,"[red][CTF][/red] [green]%s[/green] picked up the [green]%s[/green] flag.",name,ministring) if(play_sounds) client_cmd(0,"mp3 play sound/%s",flag_taken) show_colored_message(0,string,199) flag_holder[team] = players[i] write_hudmsg() unsafezone(players[i]) break; } } else if(!flag_holder[team]) { pev(players[i],pev_origin,origin) if(get_distance_f(origin,flag_origin)<PICKUP_DISTANCE) { new ministring[4] if(team) ministring = "CT" else ministring = "T" flag_holder[team] = players[i] new name[32] new string[200] get_user_name(players[i],name,31) format(string,199,"[red][CTF][/red] [green]%s[/green] returned the [green]%s[/green] flag.",name,ministring) if(play_sounds) client_cmd(0,"mp3 play sound/%s",flag_returned) show_colored_message(0,string,199) flag_holder[team] = flagstand_ents[team] write_hudmsg() break; } } } } return ; } public client_disconnect(id) { if(read_data(2)==flag_holder[0]) { flag_holder[0] = 0 new string[200] format(string,199,"[red][CTF][/red] [green]UNKNOWN[/green] dropped the [green]T[/green] flag.") if(play_sounds) client_cmd(0,"mp3 play sound/%s",flag_taken) show_colored_message(0,string,199) write_hudmsg() } else if(read_data(2)==flag_holder[1]) { flag_holder[1] = 0 new string[200] format(string,199,"[red][CTF][/red] [green]UNKNOWN[/green] dropped the [green]CT[/green] flag.") if(play_sounds) client_cmd(0,"mp3 play sound/%s",flag_taken) show_colored_message(0,string,199) write_hudmsg() } } public DeathMsg() { new victim = read_data(2) if(is_user_connected(victim)) { if(victim==flag_holder[0]) { flag_holder[0] = 0 new name[32] new string[200] get_user_name(victim,name,31) format(string,199,"[red][CTF][/red] [green]%s[/green] dropped the [green]T[/green] flag.",name) show_colored_message(0,string,199) write_hudmsg() } else if(victim==flag_holder[1]) { flag_holder[1] = 0 new name[32] new string[200] get_user_name(victim,name,31) format(string,199,"[red][CTF][/red] [green]%s[/green] dropped the [green]CT[/green] flag.",name) show_colored_message(0,string,199) write_hudmsg() } set_task(get_pcvar_float(respawntime),"respawn_player",victim) } } public show_colored_message(id,string[],maxlen) { replace_all(string,maxlen,"[blue]","^x03") replace_all(string,maxlen,"[/blue]","^x01") replace_all(string,maxlen,"[red]","^x03") replace_all(string,maxlen,"[/red]","^x01") replace_all(string,maxlen,"[green]","^x04") replace_all(string,maxlen,"[/green]","^x01") format(string,maxlen,"^x04^x01%s",string) static q q++ if(!id) { static players[32], num get_players(players,num,"ch") for(new i=0;i<num;i++) { message_begin(MSG_ONE,saytext_msgid,{0,0,0},players[i]) write_byte(players[i]) write_string(string) message_end() } } else { message_begin(MSG_ONE,saytext_msgid,{0,0,0},id) write_byte(id) write_string(string) message_end() } } public write_hudmsg() { new flagloc[32] if(!flag_holder[0]) { format(flagloc,31,"On Ground") } else if(flag_holder[0]==flagstand_ents[0]) { format(flagloc,31,"Base") } else if(is_user_alive(flag_holder[0])) { get_user_name(flag_holder[0],flagloc,31) } set_hudmessage(255, 0, 0, -1.0, 0.03, 0, 6.0, 12.0, 0.0, 0.0) show_hudmessage(0,"[ %d ] T Flag: %s",TScore,flagloc) if(!flag_holder[1]) { format(flagloc,31,"On Ground") } else if(flag_holder[1]==flagstand_ents[0]) { format(flagloc,31,"Base") } else if(is_user_alive(flag_holder[1])) { get_user_name(flag_holder[1],flagloc,31) } set_hudmessage(0, 0, 255, -1.0, 0.03, 0, 6.0, 12.0, 0.0, 0.0,3) show_hudmessage(0,"_^n [ %d ] CT Flag: %s",CTScore,flagloc) } public endmap() { new trash new map[32] new configfile[200] get_basedir(configfile,199) format(configfile,199,"%s/maps.ini",configfile) format(map,31,"de_dust") if(file_exists(configfile)) read_file(configfile,random_num(0,file_size(configfile,1) - 1),map,31,trash) if(!is_map_valid(map)) { if(file_size(configfile,1)<3) { server_cmd("amx_map de_dust2;amx_map de_dust2_cz") } else { set_task(0.1,"endmap") } } else server_cmd("amx_map %s",map) } /* CTF Vote (From v2.0) */ public say_vote_hook(id) { if(!get_pcvar_num(votecvar)) { client_print(id,print_chat,"[CTF] Voting disabled") } else if(roundend) { client_print(id,print_chat,"[CTF] Voting can't start. People are buying.") } else if(voting) { client_print(id,print_chat,"[CTF] Voting currently in progrss.") } else if(voted) { client_print(id,print_chat,"[CTF] Can't vote this soon after a vote.") } else if(get_pcvar_num(togglecvar)) { voting=true voted=true show_menu(0,(1<<0)|(1<<1),"\bTurn CTF off?^n^n\w1. Yes^n\w2. No",-1,"ctfvote") set_task(get_pcvar_float(votelength),"voting_over",0) set_task(get_pcvar_float(votedelay),"voted_over") } else { voting=true voted=true show_menu(0,(1<<0)|(1<<1),"\bTurn CTF on?^n^n\w1. Yes^n\w2. No",-1,"ctfvote") set_task(get_pcvar_float(votelength),"voting_over",1) set_task(get_pcvar_float(votedelay),"voted_over") } } public Key_Hook(id,key) { if(voting) { client_print(id,print_chat,"[CTF] Vote Accepted.") if(!key) yes++ else no++ } } public voting_over(num) { if(num) { client_print(0,print_chat,"[CTF] Voting to turn CTF on results: Yes: %d | No: %d",yes,no) if(yes>no) { ctf_on() } } else { client_print(0,print_chat,"[CTF] Voting to turn CTF off results: Yes: %d | No: %d",yes,no) if(yes>no) { ctf_off() } } yes=0 no=0 voting=false } public voted_over() { voted=false } public endround() { roundend = true set_task(7.0 + get_pcvar_float(voterounddelay),"roundstart") } public roundstart() { roundend = false } /* Off / On Functions */ public ctf_off() { set_pcvar_num(togglecvar,0) remove_task(1234) remove_task(1500) engfunc(EngFunc_SetOrigin,flagstand_ents[0],Float:{-4800.0,-4800.0,-4800.0}) engfunc(EngFunc_SetOrigin,flagstand_ents[1],Float:{-4800.0,-4800.0,-4800.0}) flag_holder[0] = flagstand_ents[0] flag_holder[1] = flagstand_ents[1] add_objectives() for(new i=1;i<=32;i++) { if(is_user_alive(i) && is_in_safezone[i]) { unsafezone(i) } } } public ctf_on() { set_pcvar_num(togglecvar,1) set_task(10.0,"create_beamsprites",1500,"",0,"b") if(!pev_valid(flagstand_ents[0]) || !pev_valid(flagstand_ents[1])) { set_task(0.5,"find_minmaxs") } else { new Float:T_origin[3], Float:CT_origin[3] get_flagstand_origins(CT_origin,T_origin) engfunc(EngFunc_SetOrigin,flagstand_ents[0],T_origin) engfunc(EngFunc_SetOrigin,flagstand_ents[1],CT_origin) engfunc(EngFunc_DropToFloor,flagstand_ents[0]) engfunc(EngFunc_DropToFloor,flagstand_ents[1]) pev(flagstand_ents[0],pev_origin,T_origin) pev(flagstand_ents[1],pev_origin,CT_origin) T_origin[2] += 36.0 CT_origin[2] += 36.0 engfunc(EngFunc_SetOrigin,flagstand_ents[0],T_origin) engfunc(EngFunc_SetOrigin,flagstand_ents[1],CT_origin) } set_task(10.0,"write_hudmsg",1234,"",0,"b") remove_objectives() set_task(10.0,"ctf_restartround") remove_task(5547) remove_task(5548) client_print(0,print_center,"[CTF] CTF Enabled. Round Restarting in 10 seconds.") } public ctf_restartround() { set_cvar_num("sv_restartround",1) for(new i=1;i<=32;i++) { if(is_user_connected(i)) { firsttime[i] = true weapon_method_menu(i) } } } /* Off / On Commands */ public cmd_off(id,level,cid) { if(!cmd_access(id,level,cid,1)) { return PLUGIN_HANDLED } if(get_pcvar_num(togglecvar)) { console_print(id,"[CTF] CTF Turned Off.") ctf_off() new string[200] format(string,199,"[red][CTF][/red] CTF Turned [green]Off[/green].") show_colored_message(0,string,199) } else { console_print(id,"[CTF] CTF Is Already Turned Off.") } return PLUGIN_HANDLED } public cmd_on(id,level,cid) { if(!cmd_access(id,level,cid,1)) { return PLUGIN_HANDLED } if(!get_pcvar_num(togglecvar)) { console_print(id,"[CTF] CTF Turned On.") ctf_on() new string[200] format(string,199,"[red][CTF][/red] CTF Turned [green]On[/green].") show_colored_message(0,string,199) } else { console_print(id,"[CTF] CTF Is Already Turned On.") } return PLUGIN_HANDLED } /* Remove Map Objectives */ public remove_objectives() { new ent for(new i=0;i<MAX_OBJ_TYPES;i++) { ent = engfunc(EngFunc_FindEntityByString,maxplayers,"classname",map_objectives[i]) while(ent) { if(pev_valid(ent)) { objective_type[num_objectives] = i pev(ent,pev_origin,objective[num_objectives]) pev(ent,pev_size,objectiveminsize[num_objectives],objectivemaxsize[num_objectives]) pev(ent,pev_solid,objective_solidity[num_objectives]) engfunc(EngFunc_RemoveEntity,ent) num_objectives++ } ent = engfunc(EngFunc_FindEntityByString,ent,"classname",map_objectives[i]) } } give_c4 = false } public add_objectives() { new ent for(num_objectives--;num_objectives>=0;num_objectives--) { if(objective_type[num_objectives]==0 || objective_type[num_objectives]==5) give_c4 = true ent = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,map_objectives[objective_type[num_objectives]])) set_pev(ent,pev_classname,map_objectives[objective_type[num_objectives]]) set_pev(ent,pev_origin,objective[num_objectives]) set_pev(ent,pev_solid,objective_solidity[num_objectives]) engfunc(EngFunc_SetSize,ent,objectiveminsize[num_objectives],objectivemaxsize[num_objectives]) set_pev(ent,pev_size,objectiveminsize[num_objectives],objectivemaxsize[num_objectives]) dllfunc(DLLFunc_Spawn,ent) dllfunc(DLLFunc_Think,ent) for(new i=0;i<3;i++) { objective[num_objectives][i] = 0.0 objectiveminsize[num_objectives][i] = 0.0 objectivemaxsize[num_objectives][i] = 0.0 } } num_objectives=0 } //All this handles de_ maps - making them re-work if ctf is turned off during runtime. public newround() { if(give_c4) set_task(0.5,"manually_give_c4",5547) } public manually_give_c4() { if(!get_pcvar_num(togglecvar)) { new found = 0 static start if(start<1 || start>maxplayers) start = 1 for(;start<=maxplayers;start++) { if(is_user_alive(start) && cs_get_user_team(start)==CS_TEAM_T) { found = start break; } } if(!found) { for(start = 0;start<=maxplayers;start++) { if(is_user_alive(start) && cs_get_user_team(start)==CS_TEAM_T) { found = start break; } } } if(found) give_item(found,"weapon_c4") } set_task(get_cvar_float("mp_roundtime") * 60.0,"force_endround",5548) } public bomb_planted() remove_task(5548) public force_endround() { getweapons() set_task(0.5,"killum") } public getweapons() { static i, i2 for(i=1;i<=maxplayers;i++) { arrayset(weapon[i],0,31) if(is_user_alive(i) && cs_get_user_team(i)==CS_TEAM_T) { armoramount[i] = cs_get_user_armor(i,armortype[i]) for(i2=1;i2<=30;i2++) { if(i2!=2 && i2!=6 && i2!=29) { if(user_has_weapon(i,i2)) { weapon[i][i2] = cs_get_user_bpammo(i,i2) if(!weapon[i][i2]) weapon[i][i2] = 1 } } } } } } public killum() { killing=true new msgblock = get_msg_block(get_user_msgid("DeathMsg")) set_msg_block(get_user_msgid("DeathMsg"),BLOCK_SET) new i for(i=1;i<=maxplayers;i++) { if(is_user_alive(i) && cs_get_user_team(i)==CS_TEAM_T) { user_kill(i) client_print(i,print_chat,"[AMXX] You Failed to complete map objective. Respawning.") set_task(4.0,"spawnum",i) } } set_msg_block(get_user_msgid("DeathMsg"),msgblock) killing=false set_task(4.5,"giveweapons") } public plugin_log() { if(killing) { return PLUGIN_HANDLED } return PLUGIN_CONTINUE } public spawnum(id) { cs_set_user_deaths(id,cs_get_user_deaths(id) - 1) set_user_frags(id,get_user_frags(id) + 1) dllfunc(DLLFunc_Spawn,id) } public giveweapons() { new i, i2 for(i=1;i<=maxplayers;i++) { if(is_user_alive(i) && cs_get_user_team(i)==CS_TEAM_T) { cs_set_user_armor(i,armoramount[i],armortype[i]) strip_user_weapons(i) for(i2=1;i2<=30;i2++) { if(i2!=2 && i2!=6 && i2!=29) { if(weapon[i][i2]) { give_item(i,WeaponNames[i2]) cs_set_user_bpammo(i,i2,weapon[i][i2]) } } } give_item(i,"weapon_knife") } } }
#755784 Co zrobic aby levele nie byly ujemne?
Napisane przez One ShooT w 26.01.2019 16:33
#755398 Just Capture The Flag (Wymarły mod)
Napisane przez One ShooT w 19.01.2019 23:36
https://www.gametrac...thax.com:27015/nie wiem czy wymarły , W PL UMIERA CS a serwerów tylko przybywa
W Polsce nie ma żadnego który by był odpalony, zagranicą ładnie pykają na takich modach
#755312 Just Capture The Flag (Wymarły mod)
Napisane przez One ShooT w 19.01.2019 02:44
Capture The Flag
Opis:
Mod uznany za wymarły na tym Modzie Chodzi o przejęcie jak najwięcej Flag
przeciwnych Drużyn Flagi są CT Niebieska TT Czerwona Flaga CT
Jest położona na Bs (A) Flaga Tt na (RESPIE) TT Gramy do 22 Zebranych flag drużyna która zbierze więcej flag wygrywa.
Gracz który podniesie flagę powinien zostać podświetlany na Kolor flagi. -Usunięte
Dodane Modele dla VIP'ów
Kobieta Sonia
Kobieta Estera
Pluginy:
; AMX Mod X plugins ; Admin Base - Always one has to be activated admin.amxx ; admin base (required for any admin-related) ;admin_sql.amxx ; admin base - SQL version (comment admin.amxx) ; Basic admincmd.amxx ; basic admin console commands adminhelp.amxx ; help command for admin console commands adminslots.amxx ; slot reservation multilingual.amxx ; Multi-Lingual management ; Menus menufront.amxx ; front-end for admin menus cmdmenu.amxx ; command menu (speech, settings) plmenu.amxx ; players menu (kick, ban, client cmds.) ;telemenu.amxx ; teleport menu (Fun Module required!) mapsmenu.amxx ; maps menu (vote, changelevel) pluginmenu.amxx ; Menus for commands/cvars organized by plugin ; Chat / Messages adminchat.amxx ; console chat commands antiflood.amxx ; prevent clients from chat-flooding the server scrollmsg.amxx ; displays a scrolling message imessage.amxx ; displays information messages adminvote.amxx ; vote commands ; Map related nextmap.amxx ; displays next map in mapcycle mapchooser.amxx ; allows to vote for next map timeleft.amxx ; displays time left on map ; Configuration pausecfg.amxx ; allows to pause and unpause some plugins statscfg.amxx ; allows to manage stats plugins via menu and commands ; Counter-Strike ;restmenu.amxx ; restrict weapons menu statsx.amxx ; stats on death or round end (CSX Module required!) ;miscstats.amxx ; bunch of events announcement for Counter-Strike ;stats_logging.amxx ; weapons stats logging (CSX Module required!) ; Enable to use AMX Mod plugins ;amxmod_compat.amxx ; AMX Mod backwards compatibility layer ; Custom - Add 3rd party plugins here ;--------------------------; ;-----------MOD------------; ;--------------------------; crx_showip.amxx ctfmenu.amxx dmc233.amxx jctf.amxx ;GHW_CTF.amxx jctf_sh_buyxp.amxx jctf_sh_getxp.amxx ;--------------------------; ;--------Podstawowe--------; ;--------------------------; admin_spec_esp.amxx ; admin ma wh po śmierci spree.amxx ; najlepszy gracz rundy bullet_damage.amxx kontakt_jb.amxx mutemenu.amxx regulamin.amxx vip.amxx Menu_Broni.amxx ;rangi.amxx przywitanie.amxx kosa.amxx amx_dualmp5.amxx ;--------------------------; ;--------Dodatkowe---------; ;--------------------------; welcome.amxx ; wita admina kill_assist.amxx ; Asysta przy zabijaniu amp.axx ; radio na serwerze axm_parachute.amxx ; spadochron ;--------------------------; ;-----------4FUN-----------; ;--------------------------; lotto.amxx ; lotto ;molotov_cocktail.amxx ; molotova ;] ;--------------------------; ;--------Inne Mody---------; ;--------------------------; 1s1k.amxx ; Jeden strzał - jeden kill ;amx_dualmp5.amxx ; dual mp5 hsonly.amxx ; tylko hs
Dodać Screnny z Serwera :
Dowoland :
https://www5.zippysh...yWbBA/file.html
Edycje/Zmiany?
- Usunięte podświetlenia gdy gracz podnieśię flage
- Odblokowanie wszystkich broni [Były M3 tylko]
- Zmiana menu na działające
- Dodanie noży które dają (Speed,Demage, ITD.)
- Zmiana modeli flag
- Modele kobiet dla VIP
- Dodanie HUD
- Dodanie menu broni
- Usunięcie pola gdzie flagi się znajdowały
- Dodanie losu dla graczy
Edycja/Zmiany Paczki
PatrykCS-Central
oraz
AXEROZ
Jeżeli będą jakieś problemy zgłaszać będą jak najszybciej poprawiane
- AMXX.pl: Support AMX Mod X i SourceMod
- → Przeglądanie profilu: Reputacja: One ShooT
- Regulamin