Am vazut ca multa lume ma roaga sa postez acest plugin sau sa-l cumpere si i-am refuzat , sper ca am putut sa va ajut.
Nume: Furien Shop ( OutStanding ) - original plugin's !
Versiune: 2.3beta
Descarcare: http://www.multiupload.nl/1XAZXTHC30 sau http://www.girlshare.ro/33215483.4
Autor: Sprit3x & Fantasy , meritele le merita in primu rand Sprit3x pentru rabdarea si ajutorul lui .
Credite: Hades & aragon pentru magic wand
Instalare:
1. Fisierul FurienShop.sma il puneti in addons/amxmodx/scripting
2. Fisierul FurienShop.amxx il puneti in addons/amxmodx/plugins
3. Fisierul MagicWand.sma il puneti in addons/amxmodx/scripting
4. Fisierul MagicWand.amxx il puneti in addons/amxmodx/scripting
5. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:
Code: Select all
FurienShop.amxx
MagicWand.amxx
Comenzi publice (se tasteaza in joc prin apasarea tastei Y):
- /shop - afiseaza regulile
shop - afiseaza regulile
Sau apasati tasta "M" si va deschide shop-ul ca la zombie
O sa postez in curand.
Furien Shop Source cod :
- | Afiseaza codul
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <fakemeta> #include <fakemeta_util> #include <fun> #include <engine> #include <hamsandwich> #include <fm_credits> // Constante const KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0 new const MODEL_PARACHUTE[] = "models/parachute.mdl" new const modelsknife[] = "models/FurienOutStanding/v_knife_outstanding1.mdl" new const modelsknife2[] = "models/FurienOutStanding/v_knife_outstanding2.mdl" new const cfgfile[] = "fm_shop.cfg" // Define Pet #define PET_FLAG pev_flTimeStepSound #define PET_KILLED 389 #define SetUserNoFlash(%1) g_bHasNoFlash |= 1<<(%1&31) #define RemoveUserNoFlash(%1) g_bHasNoFlash &= ~(1<<(%1&31)) #define HasUserNoFlash(%1) g_bHasNoFlash & 1<<(%1&31) #define IsPlayer(%1) ( 1 <= %1 <= maxplayers) #define FLASHBANG_SEARCH_RADIUS 1500.0 // Variables new Float:g_FallSpeed, has_sknife[33] = 0, has_sknife2[33] = 0, item_pet[33], item_have[33], Float:item_leaptime[33], bool:g_has_speed[33], maxplayers, g_msgSayText, g_hebuyable = 1, hpack[33] = 0, g_bHasNoFlash // Bools new bool:g_has_parachute[33], g_para_ent[33], bool:has_nf[33] // Cvars new cvar_parachute, cvar_skcost, cvar_sk2cost, cvar_pkcost, cvar_hecost, cvar_defcost, cvar_hpcost, cvar_apcost, cvar_nfcost, cvar_fallspeed, cvar_petcost // Constants static const pet_model[] = "models/stukabat.mdl" static const pet_sounds[][] = { "bullchicken/bc_die1.wav", "bullchicken/bc_die2.wav", "bullchicken/bc_die3.wav", "bullchicken/bc_idle1.wav", "bullchicken/bc_pain3.wav" } static const pet_idle = 13 static const pet_run = 13 static const pet_die = 5 static const Float:pet_idle_speed = 0.3 static const Float:pet_run_speed = 10.0 static const Float:player_gravity = 0.65 public plugin_init() { // Register Plugin register_plugin("[FM] Shop", "1.0", "Sprit3x & Fantasy - Member OutStanding Team Scripting") // Register Menu register_clcmd("say /shop", "shophandle") register_clcmd("say shop", "shophandle") register_clcmd("chooseteam", "shophandle") register_clcmd("fshop", "furienshop") register_clcmd("say /pet", "buypet") register_clcmd("sayteam /pet", "buypet") // Menu Definer register_menu("menu_shop", KEYSMENU , "shophandler") // Ham Register RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage") RegisterHam(Ham_Spawn, "player", "player_spawn", 1) // Register Event register_event("CurWeapon", "Event_CurrentWeapon", "be", "1=1") register_event("HLTV", "event_round_start", "a", "1=0", "2=0") register_event("DeathMsg","DeathMsg","a") // Register Forwarduri register_forward(FM_Think,"FM_Think_hook") register_forward(FM_PlayerPreThink, "FM_PlayerPreThink_hook") register_forward(FM_FindEntityInSphere, "FindEntityInSphere") // Register Cvars cvar_parachute = register_cvar("furienshop_parachute", "1") cvar_fallspeed = register_cvar("furienshop_parachute_fallspeed", "75") cvar_skcost = register_cvar("furienshop_skcost", "10") cvar_pkcost = register_cvar("furienshop_pkcost", "10") cvar_hecost = register_cvar("furienshop_hecost", "12") cvar_defcost = register_cvar("furienshop_defcost", "13") cvar_hpcost = register_cvar("furienshop_hpcost", "14") cvar_apcost = register_cvar("furienshop_apcost", "11") cvar_nfcost = register_cvar("furienshop_nfcost", "10") cvar_petcost = register_cvar("furienshop_petcost", "5") cvar_sk2cost = register_cvar("furienshop_sk2cost", "15") // Register Messages g_msgSayText = get_user_msgid("SayText") maxplayers = get_maxplayers() } public plugin_cfg() { // Get configs dir new cfgdir[32] get_configsdir(cfgdir, charsmax(cfgdir)) // Execute config file server_cmd("exec %s/%s", cfgdir, cfgfile) set_task(1.0, "cache_settings") } public client_putinserver(id) { g_has_parachute[id] = false RemoveUserNoFlash(id) } public cache_settings() g_FallSpeed = get_pcvar_float(cvar_fallspeed) * -1.0 public DeathMsg() { new id = read_data(2) if (item_have[id]) { kill_pet(id) item_have[id] = 0 } if (g_has_speed[id]) g_has_speed[id] = false else if (has_sknife[id]) has_sknife[id] = 0 else if (has_sknife2[id]) has_sknife2[id] = 0 } public event_round_start() { new i, entid = -1 for (i=0; i<33; i++) { g_has_parachute = false if (hpack) hpack = 0 } g_bHasNoFlash = 0 while((entid = fm_find_ent_by_class(entid, "zp_bat"))) { if(pev(entid,PET_FLAG) == PET_KILLED) { fm_remove_entity(entid) } } } public shophandle(id) { if (!is_user_alive(id)) return client_cmd(id, "fshop") } public plugin_precache() { new i = 0 for(i = 0; i < sizeof pet_sounds; i++) precache_sound(pet_sounds) precache_model(pet_model) precache_model(MODEL_PARACHUTE) precache_model(modelsknife) precache_model(modelsknife2) } public Event_CurrentWeapon(id) { new weaponid = read_data(2) if (cs_get_user_team(id) == CS_TEAM_T && has_sknife[id]) { if (weaponid == CSW_KNIFE) set_pev(id, pev_viewmodel2, modelsknife) } else if (cs_get_user_team(id) == CS_TEAM_T && has_sknife2[id]) { if (weaponid == CSW_KNIFE) set_pev(id, pev_viewmodel2, modelsknife2) } } public furienshop(id) { static menu[ 2048 char ] , len len = 0 len += formatex( menu[ len ] , charsmax( menu ) - len , "\yFurien Ultimate Shop Shop\r [v2.3beta]\w^nAvailable Credits: %d^n^n", fm_get_credits(id)) if (cs_get_user_team(id) != CS_TEAM_CT) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r1.\w Super Knife [x2] -\r %d credite^n", get_pcvar_num(cvar_skcost)) else len += formatex( menu[ len ] , charsmax( menu ) - len , "\r1.\w Pachet HP+AP -\r %d credite^n", get_pcvar_num(cvar_pkcost)) if (cs_get_user_team(id) != CS_TEAM_T) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r2.\w Harry Potter's Wand\y [NEW]\w -\r 50 credite^n") else len += formatex( menu[ len ] , charsmax( menu ) - len , "\r2.\w Super Knife [x3] -\r %d credite^n", get_pcvar_num(cvar_sk2cost)) if (cs_get_user_team(id) != CS_TEAM_CT) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r3.\w HE Grenade -\r %d credite^n", get_pcvar_num(cvar_hecost)) else len += formatex( menu[ len ] , charsmax( menu ) - len , "\r3.\w Defuse Kit -\r %d credite^n", get_pcvar_num(cvar_defcost)) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r4.\w 50 HP -\r %d credite^n", get_pcvar_num(cvar_hpcost)) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r5.\w 100 AP -\r %d credite^n", get_pcvar_num(cvar_apcost)) if (cs_get_user_team(id) != CS_TEAM_CT) len += formatex( menu[ len ] , charsmax( menu ) - len , "\d6. No Flash - %d credite^n^n", get_pcvar_num(cvar_nfcost)) else len += formatex( menu[ len ] , charsmax( menu ) - len , "\r6.\w No Flash -\r %d credite^n^n", get_pcvar_num(cvar_nfcost)) if (cs_get_user_team(id) != CS_TEAM_T) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r7.\w Buy Pet -\r %d credite^n^n", get_pcvar_num(cvar_petcost)) len += formatex( menu[ len ], charsmax( menu ) - len, "\r0. \wExit" ) set_pdata_int(id , 205, 0, 5) show_menu(id, KEYSMENU, menu, -1, "menu_shop") } public shophandler(id, key) { switch(key) { case 0: { if (cs_get_user_team(id) != CS_TEAM_CT) { if (fm_get_credits(id) >= get_pcvar_num(cvar_skcost)) { has_sknife[id] = 1 client_cmd(id, "weapon_knife") set_pev(id, pev_viewmodel2, modelsknife) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t Super Knife!") fm_set_credits(id, fm_get_credits(id) - get_pcvar_num(cvar_skcost)) }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") }else{ if (hpack[id] < 1) { if (fm_get_credits(id) >= get_pcvar_num(cvar_pkcost)) { if (get_user_health(id) >= 400 && get_user_armor(id) >= 250) { client_printcolor(id, "!g[SHOP]!n Ai atins limita maxima de Pachete de HP+AP!") return PLUGIN_CONTINUE } hpack[id]++ set_user_health(id, get_user_health(id) + 250) set_user_armor(id, get_user_armor(id) + 250) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t Pachet HP+AP!") fm_set_credits(id, fm_get_credits(id) - get_pcvar_num(cvar_pkcost)) }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") }else client_printcolor(id, "!g[SHOP]!n Nu poti cumpara HP Upgrade decat odata pe runda!") } } case 1: { if (cs_get_user_team(id) != CS_TEAM_T) { if (fm_get_credits(id) >= 50) { client_printcolor(id, "!g[SHOP]!n Ai cumparat!t Harry Potter's Wand!") client_cmd(id, "vbcq23n1267ghfas") fm_set_credits(id, fm_get_credits(id) - 50) }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") }else{ if (fm_get_credits(id) >= get_pcvar_num(cvar_sk2cost)) { has_sknife2[id] = 1 client_cmd(id, "weapon_knife") set_pev(id, pev_viewmodel2, modelsknife2) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t Super Knife[x3]!") fm_set_credits(id, fm_get_credits(id) - get_pcvar_num(cvar_sk2cost)) }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite.") } } case 2: { if (cs_get_user_team(id) != CS_TEAM_CT) { if (g_hebuyable) { if (fm_get_credits(id) >= get_pcvar_num(cvar_hecost)) { g_hebuyable = 0 set_task(10.0, "hebuy", id) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t HE Grenade!") give_item(id, "weapon_hegrenade") fm_set_credits(id, fm_get_credits(id) - get_pcvar_num(cvar_hecost)) }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") }else client_printcolor(id, "!g[SHOP]!n Trebuie sa astepti 10 secunde pentru a cumpara o grenada") }else{ if (fm_get_credits(id) >= get_pcvar_num(cvar_defcost)) { client_printcolor(id, "!g[SHOP]!n Ai cumparat!t Defuse Kit!") give_item(id, "item_thighpack") fm_set_credits(id, fm_get_credits(id) - get_pcvar_num(cvar_defcost)) }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") } } case 3: { if (get_user_health(id) >= 250) { client_printcolor(id, "!g[SHOP]!n Ai atins limita de viata!") return PLUGIN_CONTINUE } else if (fm_get_credits(id) >= get_pcvar_num(cvar_hpcost)) { set_user_health(id, get_user_health(id) + 50) fm_set_credits(id, fm_get_credits(id) - get_pcvar_num(cvar_hpcost)) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t 50 HP!") }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") return PLUGIN_CONTINUE } case 4: { if (get_user_armor(id) >= 500) { client_printcolor(id, "!g[SHOP]!n Ai atins limita maxima de armura!") return PLUGIN_CONTINUE } else if (fm_get_credits(id) >= get_pcvar_num(cvar_apcost)) { set_user_armor(id, get_user_armor(id) + 100) fm_set_credits(id, fm_get_credits(id) - get_pcvar_num(cvar_apcost)) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t 100 AP!") }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") return PLUGIN_CONTINUE } case 5: { if (cs_get_user_team(id) != CS_TEAM_CT) { return PLUGIN_HANDLED }else{ if( ~HasUserNoFlash(id) ) { if (fm_get_credits(id) >= get_pcvar_num(cvar_nfcost)) { has_nf[id] = true SetUserNoFlash(id) fm_set_credits(id, fm_get_credits(id) - get_pcvar_num(cvar_nfcost)) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t No Flash!") } }else client_printcolor(id, "!g[SHOP]!n Ai deja No Flash!") } } case 6: { if (cs_get_user_team(id) != CS_TEAM_T) { if (!item_have[id]) { if (fm_get_credits(id) >= get_pcvar_num(cvar_petcost)) { create_pet(id) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t PET!") fm_set_credits(id, fm_get_credits(id) - get_pcvar_num(cvar_petcost)) }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") }else client_printcolor(id, "!g[SHOP]!n Detii deja un^3 PET!") } } default : return PLUGIN_CONTINUE } return PLUGIN_CONTINUE } public hebuy(id) { g_hebuyable = 1 remove_task(id) } public fw_TakeDamage(victim, inflictor, attacker, Float:damage) { if (victim == attacker || !is_user_connected(attacker)) return HAM_IGNORED if (has_sknife[attacker] && get_user_weapon(attacker) == CSW_KNIFE) { damage *= 2.0 SetHamParamFloat(4, damage) } else if(has_sknife2[attacker] && get_user_weapon(attacker) == CSW_KNIFE) { damage *= 3.0 SetHamParamFloat(4, damage) } return HAM_IGNORED } public FindEntityInSphere(id, Float:fVecOrigin[3], Float:flRadius) { if( flRadius == FLASHBANG_SEARCH_RADIUS ) { while( IsPlayer( (id=engfunc(EngFunc_FindEntityInSphere, id, fVecOrigin, flRadius)) ) ) { if( ~HasUserNoFlash(id) && is_user_alive(id) ) { forward_return(FMV_CELL, id) return FMRES_SUPERCEDE } } forward_return(FMV_CELL, 0) return FMRES_SUPERCEDE } return FMRES_IGNORED } public player_spawn(player) { if (!is_user_connected(player)) return HAM_IGNORED if (cs_get_user_team(player) != CS_TEAM_CT) { kill_pet(player) item_have[player] = 0 return HAM_IGNORED } else if(item_have[player]) { fm_set_user_gravity(player, player_gravity) set_user_health(player, get_user_health(player) + 250) set_user_armor(player, get_user_armor(player) + 350) g_has_speed[player] = true } parachute_reset(player) return HAM_IGNORED } public client_PreThink(id) { //Parachute model animation information //0 - deploy - 84 frames //1 - idle - 39 frames //2 - detach - 29 frames if (!g_has_parachute[id]) return; static flags, Float:frame, button, oldbutton button = get_user_button(id) oldbutton = get_user_oldbutton(id) flags = get_entity_flags(id) if (g_para_ent[id] > 0 && (flags & FL_ONGROUND)) { if (get_pcvar_num(cvar_parachute)) { if (entity_get_int(g_para_ent[id],EV_INT_sequence) != 2) { entity_set_int(g_para_ent[id], EV_INT_sequence, 2) entity_set_int(g_para_ent[id], EV_INT_gaitsequence, 1) entity_set_float(g_para_ent[id], EV_FL_frame, 0.0) entity_set_float(g_para_ent[id], EV_FL_fuser1, 0.0) entity_set_float(g_para_ent[id], EV_FL_animtime, 0.0) return; } frame = entity_get_float(g_para_ent[id],EV_FL_fuser1) + 2.0 entity_set_float(g_para_ent[id],EV_FL_fuser1,frame) entity_set_float(g_para_ent[id],EV_FL_frame,frame) if (frame > 254.0) parachute_reset(id) } else parachute_reset(id) return; } if (button & IN_USE) { new Float:velocity[3]; entity_get_vector(id, EV_VEC_velocity, velocity); if (velocity[2] < 0.0) { if(g_para_ent[id] <= 0) { g_para_ent[id] = create_entity("info_target") if(g_para_ent[id] > 0) { entity_set_string(g_para_ent[id],EV_SZ_classname,"parachute") entity_set_edict(g_para_ent[id], EV_ENT_aiment, id) entity_set_edict(g_para_ent[id], EV_ENT_owner, id) entity_set_int(g_para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW) entity_set_model(g_para_ent[id], MODEL_PARACHUTE) entity_set_int(g_para_ent[id], EV_INT_sequence, 0) entity_set_int(g_para_ent[id], EV_INT_gaitsequence, 1) entity_set_float(g_para_ent[id], EV_FL_frame, 0.0) entity_set_float(g_para_ent[id], EV_FL_fuser1, 0.0) } } else if (g_para_ent[id] > 0) { entity_set_int(id, EV_INT_sequence, 3) entity_set_int(id, EV_INT_gaitsequence, 1) entity_set_float(id, EV_FL_frame, 1.0) entity_set_float(id, EV_FL_framerate, 1.0) velocity[2] = (velocity[2] + 40.0 < g_FallSpeed) ? velocity[2] + 40.0 : g_FallSpeed entity_set_vector(id, EV_VEC_velocity, velocity) if (entity_get_int(g_para_ent[id],EV_INT_sequence) == 0) { frame = entity_get_float(g_para_ent[id],EV_FL_fuser1) + 1.0 entity_set_float(g_para_ent[id],EV_FL_fuser1,frame) entity_set_float(g_para_ent[id],EV_FL_frame,frame) if (frame > 100.0) { entity_set_float(g_para_ent[id], EV_FL_animtime, 0.0) entity_set_float(g_para_ent[id], EV_FL_framerate, 0.4) entity_set_int(g_para_ent[id], EV_INT_sequence, 1) entity_set_int(g_para_ent[id], EV_INT_gaitsequence, 1) entity_set_float(g_para_ent[id], EV_FL_frame, 0.0) entity_set_float(g_para_ent[id], EV_FL_fuser1, 0.0) } } } } else if (g_para_ent[id] > 0) parachute_reset(id) } else if ((oldbutton & IN_USE) && g_para_ent[id] > 0) parachute_reset(id) } parachute_reset(id, remove = 0) { if(g_para_ent[id] > 0 && is_valid_ent(g_para_ent[id])) { remove_entity(g_para_ent[id]); g_para_ent[id] = 0 } if (!remove) g_has_parachute[id] = true else g_has_parachute[id] = false } public buypet(id) { if (!is_user_alive(id)) { client_printcolor(id, "^4[Furien Pet]^1 Nu poti cumpara pet cand esti mort.") return PLUGIN_CONTINUE } if (cs_get_user_team(id) != CS_TEAM_CT) { client_printcolor(id, "^4[Furien Pet]^1 Numai^3 Anti-furienii^1 pot cumpara pet.") return PLUGIN_CONTINUE } if (!item_have[id]) { if (fm_get_credits(id) >= get_pcvar_num(cvar_petcost)) { fm_set_credits(id, fm_get_credits(id) - get_pcvar_num(cvar_petcost)) client_printcolor(id, "^4[Furien Pet]^1 Ai cumparat^3 PET.") create_pet(id) }else client_printcolor(id, "^4[Furien Pet]^1 Nu ai destule^3 credite.") }else client_printcolor(id, "^4[Furien Pet]^1 Detii deja un pet!") return PLUGIN_CONTINUE } public client_disconnect(id) { remove_task(id) parachute_reset(id, 1) } public kill_pet(id) { if(pev_valid(item_pet[id])) { set_pev(item_pet[id],pev_sequence,pet_die) set_pev(item_pet[id],pev_gaitsequence,pet_die) set_pev(item_pet[id],pev_framerate,1.0) set_pev(item_pet[id],PET_FLAG,PET_KILLED) fm_drop_to_floor(item_pet[id]) item_have[id] = 0 g_has_speed[id] = false } item_pet[id] = 0 } public create_pet(id) { item_pet[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString,"info_target")) set_pev(item_pet[id],pev_classname,"zp_bat") engfunc(EngFunc_SetModel,item_pet[id],pet_model) new Float:origin[3] pev(id,pev_origin,origin) set_pev(item_pet[id],pev_origin,origin) set_pev(item_pet[id],pev_solid,SOLID_TRIGGER) set_pev(item_pet[id],pev_movetype,MOVETYPE_FLY) set_pev(item_pet[id],pev_owner,33) set_pev(item_pet[id],pev_nextthink,1.0) set_pev(item_pet[id],pev_sequence,0) set_pev(item_pet[id],pev_gaitsequence,0) set_pev(item_pet[id],pev_framerate,1.0) set_pev(item_pet[id], pev_renderfx, kRenderFxGlowShell) set_pev(item_pet[id], pev_rendercolor, Float:{0.0, 0.0, 200.0}) fm_set_user_gravity(id,player_gravity) set_user_health(id, get_user_health(id) + 250) set_user_armor(id, get_user_armor(id) + 350) engfunc(EngFunc_EmitSound,item_pet[id],CHAN_AUTO,pet_sounds[random_num(0,sizeof pet_sounds - 1)],1.0, 1.2, 0, PITCH_NORM) item_have[id] = 1 g_has_speed[id] = true } public FM_Think_hook(ent) { for(new i = 0; i <= maxplayers; i++) { if(ent == item_pet) { static Float:origin[3] static Float:origin2[3] static Float:velocity[3] pev(ent,pev_origin,origin2) get_offset_origin_body(i,Float:{50.0,0.0,0.0},origin) if(get_distance_f(origin,origin2) > 300.0) { set_pev(ent,pev_origin,origin) } else if(get_distance_f(origin,origin2) > 80.0) { get_speed_vector(origin2,origin,250.0,velocity) set_pev(ent,pev_velocity,velocity) if(pev(ent,pev_sequence) != pet_run || pev(ent,pev_framerate) != pet_run_speed) { set_pev(ent,pev_sequence,pet_run) set_pev(ent,pev_gaitsequence,pet_run) set_pev(ent,pev_framerate,pet_run_speed) } } else if(get_distance_f(origin,origin2) < 75.0) { if(pev(ent,pev_sequence) != pet_idle || pev(ent,pev_framerate) != pet_idle_speed) { set_pev(ent,pev_sequence,pet_idle) set_pev(ent,pev_gaitsequence,pet_idle) set_pev(ent,pev_framerate,pet_idle_speed) } set_pev(ent,pev_velocity,Float:{0.0,0.0,0.0}) } pev(i,pev_origin,origin) origin[2] = origin2[2] entity_set_aim(ent,origin) set_pev(ent,pev_nextthink,1.0) break } } } public FM_PlayerPreThink_hook(id) { if (!is_user_alive(id)) return if(allowed_leap(id)) { static Float:velocity[3] velocity_by_aim(id, 500, velocity) velocity[2] = 300.0 set_pev(id, pev_velocity, velocity) item_leaptime[id] = get_gametime() } } public allowed_leap(id) { if(!item_have[id]) return false if (!(pev(id, pev_flags) & FL_ONGROUND) || fm_get_speed(id) < 80) return false static buttons buttons = pev(id, pev_button) if (!is_user_bot(id) && (!(buttons & IN_JUMP) || !(buttons & IN_DUCK))) return false if (get_gametime() - item_leaptime[id] < 3) return false return true } public is_a_player(ent) { if(ent > 0 && ent < 33) return true return false } public remove_pet(ent) { if(pev_valid(ent)) fm_remove_entity(ent) } // Get entity's speed (from fakemeta_util) stock get_offset_origin_body(ent,const Float:offset[3],Float:origin[3]) { if(!pev_valid(ent)) return 0; new Float:angle[3] pev(ent,pev_angles,angle) pev(ent,pev_origin,origin) origin[0] += floatcos(angle[1],degrees) * offset[0] origin[1] += floatsin(angle[1],degrees) * offset[0] origin[1] += floatcos(angle[1],degrees) * offset[1] origin[0] += floatsin(angle[1],degrees) * offset[1] return 1; } stock get_speed_vector(const Float:origin1[3],const Float:origin2[3],Float:speed, Float:new_velocity[3]) { new_velocity[0] = origin2[0] - origin1[0] new_velocity[1] = origin2[1] - origin1[1] new_velocity[2] = origin2[2] - origin1[2] new Float:num = floatsqroot(speed*speed / (new_velocity[0]*new_velocity[0] + new_velocity[1]*new_velocity[1] + new_velocity[2]*new_velocity[2])) new_velocity[0] *= num new_velocity[1] *= num new_velocity[2] *= num return 1; } stock entity_set_aim(ent,const Float:origin2[3],bone=0) { if(!pev_valid(ent)) return 0; static Float:origin[3] origin[0] = origin2[0] origin[1] = origin2[1] origin[2] = origin2[2] static Float:ent_origin[3], Float:angles[3] if(bone) engfunc(EngFunc_GetBonePosition,ent,bone,ent_origin,angles) else pev(ent,pev_origin,ent_origin) origin[0] -= ent_origin[0] origin[1] -= ent_origin[1] origin[2] -= ent_origin[2] static Float:v_length v_length = vector_length(origin) static Float:aim_vector[3] aim_vector[0] = origin[0] / v_length aim_vector[1] = origin[1] / v_length aim_vector[2] = origin[2] / v_length static Float:new_angles[3] vector_to_angle(aim_vector,new_angles) new_angles[0] *= -1 if(new_angles[1]>180.0) new_angles[1] -= 360 if(new_angles[1]<-180.0) new_angles[1] += 360 if(new_angles[1]==180.0 || new_angles[1]==-180.0) new_angles[1]=-179.999999 set_pev(ent,pev_angles,new_angles) set_pev(ent,pev_fixangle,1) return 1; } // Stockuri stock client_printcolor(const id, const message[], any:...) { new g_message[191]; vformat(g_message, charsmax(g_message), message, 3) replace_all(g_message, charsmax(g_message), "!g", "^4") replace_all(g_message, charsmax(g_message), "!n", "^1") replace_all(g_message, charsmax(g_message), "!t", "^3") if(is_user_connected(id)) { message_begin(MSG_ONE_UNRELIABLE, g_msgSayText,_, id) write_byte(id) write_string(g_message) message_end() } }
Magic Wand source cod:
- | Afiseaza codul
/* Plugin generated by AMXX-Studio */ #include < amxmodx > #include < cstrike > #include < hamsandwich > #include < fakemeta_util > #include < fm_credits > #include " engine " #define PLUGIN "New Plug-In" #define VERSION "0.0.1" #define AUTHOR "Hades , Aragon & Sprit3x" new g_has_wand[33] new HarrySound [ ] = "FurienOutStanding/magic_wand_start.wav"; new Harry_Ammo [ 33 ]; new Float: HarryLastShotTime [ 33 ]; new HarryFireSound [ ] = "FurienOutStanding/magic_wand_shoot1.wav"; new HarryHitSound [ ] = "FurienOutStanding/magic_wand_hit.wav"; new HarryHitSound2 [ ] = "FurienOutStanding/magic_wand_shoot2.wav"; new HarryModel [ ] = "models/FurienOutStanding/v_magic_wand.mdl"; new HarryBeam, HarryExp, HarryExp2, DeathSprite; new HarryDamageCvar, HarryDamageCvar2; public plugin_init ( ) { register_event ( "DeathMsg", "eDeath", "a" ); register_event ( "CurWeapon", "CurrentWeapon", "be", "1=1" ); register_forward ( FM_CmdStart, "Harry_CmdStart" ); RegisterHam ( Ham_Spawn, "player", "Ham_SpawnCallback", 1 ); HarryDamageCvar = register_cvar ( "harry_damage", "80" ); HarryDamageCvar2 = register_cvar ( "harry_damage2", "200" ); register_clcmd ( "vbcq23n1267ghfas", "wand") } public plugin_precache ( ) { precache_sound ( HarrySound ); precache_sound ( HarryFireSound ); precache_sound ( HarryHitSound ); precache_sound ( HarryHitSound2 ); precache_model ( HarryModel ); HarryBeam = precache_model ( "sprites/FurienOutStanding/magic_wand_beam.spr" ); HarryExp = precache_model ( "sprites/FurienOutStanding/magic_wand_exp2.spr" ); HarryExp2 = precache_model ( "sprites/FurienOutStanding/magic_wand_exp3.spr" ); register_plugin ( "MagicWand", VERSION, "Sprit3x" ); } public wand(id) { g_has_wand[id] = true client_cmd(id, "weapon_knife") Harry_Ammo[id] = 50 } public eDeath() { static iVictim iVictim = read_data(2) if (g_has_wand[iVictim]) g_has_wand[iVictim] = false } public client_putinserver ( id ) { g_has_wand [ id ] = false; Harry_Ammo [ id ] = 0; } public client_disconnect ( id ) { g_has_wand [ id ] = false; Harry_Ammo [ id ] = 0; } public CurrentWeapon ( id ) { if ( get_user_weapon ( id ) == CSW_KNIFE && g_has_wand [ id ] ) { set_pev ( id, pev_viewmodel2, HarryModel ); } } public Ham_SpawnCallback ( id ) { if ( !is_user_alive ( id ) ) return; g_has_wand [ id ] = false; remove_task ( id ); return; } public Harry_CmdStart ( id, uc_handle, seed ) { if ( is_user_alive ( id ) && g_has_wand [ id ] ) { static CurButton; CurButton = get_uc ( uc_handle, UC_Buttons ); new Float:flNextAttack = get_pdata_float ( id, 83, 5 ); if ( CurButton & IN_ATTACK ) { if ( get_user_weapon ( id ) == CSW_KNIFE && g_has_wand [ id ] ) { if ( Harry_Ammo [ id ] > 0 && flNextAttack <= 0.0 ) { if ( get_gametime ( ) - HarryLastShotTime [ id ] > 0.35 ) { set_weapon_anim ( id, random_num ( 3,5 ) ); emit_sound ( id, CHAN_WEAPON, HarryFireSound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM ); Harry_Fire ( id ); if ( Harry_Ammo [ id ] > 0 ) { set_hudmessage ( 0, 127, 255, 0.01, 0.90, 0, 6.0, 1.0 ); show_hudmessage ( id, "Remaining Ammo: %d", Harry_Ammo [ id ] ); } else if ( Harry_Ammo [ id ] <= 0 ) { set_hudmessage ( 255, 0, 0, 0.01, 0.90, 0, 6.0, 1.0 ); show_hudmessage ( id, "No Ammo" ); } static Float:Punch_Angles[3]; Punch_Angles[0] = -5.0; Punch_Angles[1] = 0.0; Punch_Angles[2] = 0.0; set_pev(id, pev_punchangle, Punch_Angles); Harry_Ammo [ id ] -= 1; HarryLastShotTime [ id ] = get_gametime(); } } CurButton &= ~IN_ATTACK; set_uc ( uc_handle, UC_Buttons, CurButton ); } } else if ( CurButton & IN_ATTACK2 ) { if ( get_user_weapon ( id ) == CSW_KNIFE && g_has_wand [ id ] ) { if ( Harry_Ammo [ id ] >= 5 && flNextAttack <= 0.0 ) { if ( get_gametime ( ) - HarryLastShotTime [ id ] > 0.75 ) { set_weapon_anim ( id, random_num ( 5,10 ) ); emit_sound ( id, CHAN_WEAPON, HarryFireSound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM ); Harry_Fire2 ( id ); set_hudmessage ( 0, 127, 255, 0.01, 0.90, 0, 6.0, 1.0 ); show_hudmessage ( id, "Remaining Ammo: %d", Harry_Ammo [ id ] ); static Float:Punch_Angles[3]; Punch_Angles[0] = -5.0; Punch_Angles[1] = 0.0; Punch_Angles[2] = 0.0; set_pev(id, pev_punchangle, Punch_Angles); Harry_Ammo [ id ] -= 5; HarryLastShotTime [ id ] = get_gametime(); } } CurButton &= ~IN_ATTACK2; set_uc ( uc_handle, UC_Buttons, CurButton ); } } } else if ( is_user_alive ( id ) && !g_has_wand [ id ] ) { return PLUGIN_CONTINUE; } return PLUGIN_CONTINUE; } public Harry_Fire ( id ) { static Victim, Body, EndOrigin[3], BeamOrigin[3]; get_user_origin(id, BeamOrigin, 3) ; get_user_origin(id, EndOrigin, 3); message_begin(MSG_BROADCAST,SVC_TEMPENTITY); write_byte(TE_BEAMENTPOINT); write_short(id | 0x1000); write_coord(BeamOrigin[0]); // Start X write_coord(BeamOrigin[1]); // Start Y write_coord(BeamOrigin[2]); // Start Z write_short(HarryBeam); // Sprite write_byte(1); // Start frame write_byte(1); // Frame rate write_byte(1); // Life write_byte(40); // Line width write_byte(0); // Noise write_byte(66); // Red write_byte(161); // Green write_byte(255); // Blue write_byte(150); // Brightness write_byte(25); // Scroll speed message_end(); message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(3); write_coord(EndOrigin[0]); write_coord(EndOrigin[1]); write_coord(EndOrigin[2]); write_short(HarryExp); write_byte(10); write_byte(15); write_byte(4); message_end(); get_user_aiming(id, Victim, Body, 999999); if(is_user_connected(Victim)) { new Float:Damage = float(get_damage_body(Body, get_pcvar_float ( HarryDamageCvar ) )); new Float:VictimOrigin[3]; VictimOrigin[0] = float(EndOrigin[0]); VictimOrigin[1] = float(EndOrigin[1]); VictimOrigin[2] = float(EndOrigin[2]); if(get_user_health(Victim) - get_pcvar_float ( HarryDamageCvar ) >= 1 && is_user_alive(Victim) && !fm_get_user_godmode(Victim) && get_user_team(Victim) != get_user_team(id)) { new originnn[3]; get_user_origin ( Victim, originnn, 0 ); message_begin(MSG_PAS, SVC_TEMPENTITY, originnn); write_byte(TE_BEAMCYLINDER); write_coord(originnn[0]); write_coord(originnn[1]); write_coord(originnn[2]+10); write_coord(originnn[0]); write_coord(originnn[1]); write_coord(originnn[2]+60); write_short(HarryExp); write_byte(0); write_byte(0); write_byte(3); write_byte(60); write_byte(0); write_byte(0); //255 write_byte(0); //255 write_byte(255); //255 //BLUE write_byte(255); //255 write_byte(0); message_end(); Create_TE_SPRITETRAIL3( originnn, originnn, DeathSprite, 50, 10, 2, 50, 10 ); make_knockback(Victim, VictimOrigin, 3*get_pcvar_float ( HarryDamageCvar )); ExecuteHam(Ham_TakeDamage, Victim, id, id, Damage, DMG_NERVEGAS); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Damage"), _, Victim); write_byte(0); write_byte(0); write_long(DMG_SHOCK); write_coord(0) ; write_coord(0); write_coord(0); message_end(); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, Victim); write_short(1<<13); write_short(1<<14); write_short(0x0000); write_byte(255); write_byte(122); write_byte(122); write_byte(100) ; message_end(); message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, Victim); write_short(0xFFFF); write_short(1<<13); write_short(0xFFFF) ; message_end(); } else if(get_user_health(Victim) - get_pcvar_float ( HarryDamageCvar ) < 1 && is_user_alive(Victim) && !fm_get_user_godmode(Victim) && get_user_team(Victim) != get_user_team(id)) { new originnn[3]; get_user_origin ( Victim, originnn, 0 ); message_begin(MSG_PAS, SVC_TEMPENTITY, originnn); write_byte(TE_BEAMCYLINDER); write_coord(originnn[0]); write_coord(originnn[1]); write_coord(originnn[2]+10); write_coord(originnn[0]); write_coord(originnn[1]); write_coord(originnn[2]+60); write_short(HarryExp); write_byte(0); write_byte(0); write_byte(3); write_byte(60); write_byte(0); write_byte(0); //255 write_byte(0); //255 write_byte(255); //255 //BLUE write_byte(255); //255 write_byte(0); message_end(); Create_TE_SPRITETRAIL3( originnn, originnn, DeathSprite, 50, 10, 2, 50, 10 ); make_knockback(Victim, VictimOrigin, 3*get_pcvar_float ( HarryDamageCvar )); death_message(id, Victim, 1, "Magic Wand"); } } else { static ClassName[32]; pev(Victim, pev_classname, ClassName, charsmax(ClassName)); if(equal(ClassName, "func_breakable")) { if(entity_get_float(Victim, EV_FL_health) <= 80) { force_use(id, Victim); } } } emit_sound(id, CHAN_WEAPON, HarryHitSound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM); } public Harry_Fire2 ( id ) { static Victim, Body, EndOrigin[3], BeamOrigin[3]; get_user_origin(id, BeamOrigin, 3) ; get_user_origin(id, EndOrigin, 3); message_begin(MSG_BROADCAST,SVC_TEMPENTITY); write_byte(TE_BEAMENTPOINT); write_short(id | 0x1000); write_coord(BeamOrigin[0]); // Start X write_coord(BeamOrigin[1]); // Start Y write_coord(BeamOrigin[2]); // Start Z write_short(HarryBeam); // Sprite write_byte(1); // Start frame write_byte(1); // Frame rate write_byte(1); // Life write_byte(40); // Line width write_byte(0); // Noise write_byte(255); // Red write_byte(0); // Green write_byte(0); // Blue write_byte(150); // Brightness write_byte(25); // Scroll speed message_end(); message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(3); write_coord(EndOrigin[0]); write_coord(EndOrigin[1]); write_coord(EndOrigin[2]); write_short(HarryExp2); write_byte(10); write_byte(15); write_byte(4); message_end(); get_user_aiming(id, Victim, Body, 999999); if(is_user_connected(Victim)) { new Float:Damage = float(get_damage_body(Body, get_pcvar_float ( HarryDamageCvar ) )); new Float:VictimOrigin[3]; VictimOrigin[0] = float(EndOrigin[0]); VictimOrigin[1] = float(EndOrigin[1]); VictimOrigin[2] = float(EndOrigin[2]); if(get_user_health(Victim) - get_pcvar_float ( HarryDamageCvar2 ) >= 1 && is_user_alive(Victim) && !fm_get_user_godmode(Victim) && get_user_team(Victim) != get_user_team(id)) { new originnn[3]; get_user_origin ( Victim, originnn, 0 ); message_begin(MSG_PAS, SVC_TEMPENTITY, originnn); write_byte(TE_BEAMCYLINDER); write_coord(originnn[0]); write_coord(originnn[1]); write_coord(originnn[2]+10); write_coord(originnn[0]); write_coord(originnn[1]); write_coord(originnn[2]+60); write_short(HarryExp2); write_byte(0); write_byte(0); write_byte(3); write_byte(60); write_byte(0); write_byte(255); //255 write_byte(0); //255 write_byte(0); //255 //BLUE write_byte(255); //255 write_byte(0); message_end(); Create_TE_SPRITETRAIL3( originnn, originnn, DeathSprite, 50, 10, 2, 50, 10 ); make_knockback(Victim, VictimOrigin, 3*get_pcvar_float ( HarryDamageCvar2 )); ExecuteHam(Ham_TakeDamage, Victim, id, id, Damage, DMG_NERVEGAS); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Damage"), _, Victim); write_byte(0); write_byte(0); write_long(DMG_NERVEGAS); write_coord(0) ; write_coord(0); write_coord(0); message_end(); message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, Victim); write_short(1<<13); write_short(1<<14); write_short(0x0000); write_byte(0); write_byte(255); write_byte(0); write_byte(100) ; message_end(); message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, Victim); write_short(0xFFFF); write_short(1<<13); write_short(0xFFFF) ; message_end(); } else if(get_user_health(Victim) - get_pcvar_float ( HarryDamageCvar2 ) < 1 && is_user_alive(Victim) && !fm_get_user_godmode(Victim) && get_user_team(Victim) != get_user_team(id)) { new originnn[3]; get_user_origin ( Victim, originnn, 0 ); message_begin(MSG_PAS, SVC_TEMPENTITY, originnn); write_byte(TE_BEAMCYLINDER); write_coord(originnn[0]); write_coord(originnn[1]); write_coord(originnn[2]+10); write_coord(originnn[0]); write_coord(originnn[1]); write_coord(originnn[2]+60); write_short(HarryExp2); write_byte(0); write_byte(0); write_byte(3); write_byte(60); write_byte(0); write_byte(255); //255 write_byte(0); //255 write_byte(0); //255 //BLUE write_byte(255); //255 write_byte(0); message_end(); Create_TE_SPRITETRAIL3( originnn, originnn, DeathSprite, 50, 10, 2, 50, 10 ); make_knockback(Victim, VictimOrigin, 3*get_pcvar_float ( HarryDamageCvar2 )); death_message(id, Victim, 1, "Double Magic Wand"); } } else { static ClassName[32]; pev(Victim, pev_classname, ClassName, charsmax(ClassName)); if(equal(ClassName, "func_breakable")) { if(entity_get_float(Victim, EV_FL_health) <= 80) { force_use(id, Victim); } } } emit_sound(id, CHAN_WEAPON, HarryHitSound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM); } // Make knockback public make_knockback(Victim, Float:origin[3], Float:maxspeed) { // Get and set velocity new Float:fVelocity[3]; kickback(Victim, origin, maxspeed, fVelocity); entity_set_vector(Victim, EV_VEC_velocity, fVelocity); return(1); } public ShakeScreen( id, const Float:seconds ) { message_begin( MSG_ONE, get_user_msgid( "ScreenShake" ), { 0, 0, 0 }, id ); write_short( floatround( 4096.0 * seconds, floatround_round ) ); write_short( floatround( 4096.0 * seconds, floatround_round ) ); write_short( 1<<13 ); message_end( ); } public FadeScreen( id, const Float:seconds, const redd, const greenn, const bluee, const alpha ) { message_begin( MSG_ONE, get_user_msgid( "ScreenFade" ), _, id ); write_short( floatround( 4096.0 * seconds, floatround_round ) ); write_short( floatround( 4096.0 * seconds, floatround_round ) ); write_short( 0x0000 ); write_byte( redd ); write_byte( greenn ); write_byte( bluee ); write_byte( alpha ); message_end( ); } stock get_name( id ) { new name[ 32 ]; get_user_name( id, name, sizeof ( name ) -1 ); return name; } // Extra calulation for knockback stock kickback(ent, Float:fOrigin[3], Float:fSpeed, Float:fVelocity[3]) { // Find origin new Float:fEntOrigin[3]; entity_get_vector(ent, EV_VEC_origin, fEntOrigin); // Do some calculations new Float:fDistance[3]; fDistance[0] = fEntOrigin[0] - fOrigin[0]; fDistance[1] = fEntOrigin[1] - fOrigin[1]; fDistance[2] = fEntOrigin[2] - fOrigin[2]; new Float:fTime =(vector_distance(fEntOrigin,fOrigin) / fSpeed); fVelocity[0] = fDistance[0] / fTime; fVelocity[1] = fDistance[1] / fTime; fVelocity[2] = fDistance[2] / fTime; return(fVelocity[0] && fVelocity[1] && fVelocity[2]); } stock death_message(Killer, Victim, ScoreBoard, const Weapon[]) { // Block death msg set_msg_block(get_user_msgid("DeathMsg"), BLOCK_SET); ExecuteHamB(Ham_Killed, Victim, Killer, 2); set_msg_block(get_user_msgid("DeathMsg"), BLOCK_NOT); // Death make_deathmsg(Killer, Victim, 0, Weapon); cs_set_user_money(Killer, cs_get_user_money(Killer) + 300); // Update score board if(ScoreBoard) { message_begin(MSG_BROADCAST, get_user_msgid("ScoreInfo")); write_byte(Killer); // id write_short(pev(Killer, pev_frags)); // frags write_short(cs_get_user_deaths(Killer)); // deaths write_short(0); // class? write_short(get_user_team(Killer)); // team message_end(); message_begin(MSG_BROADCAST, get_user_msgid("ScoreInfo")); write_byte(Victim); // id write_short(pev(Victim, pev_frags)); // frags write_short(cs_get_user_deaths(Victim)); // deaths write_short(0); // class? write_short(get_user_team(Victim)); // team message_end(); } } stock set_weapon_anim(id, anim) { set_pev(id, pev_weaponanim, anim); if(is_user_connected(id)) { message_begin(MSG_ONE, SVC_WEAPONANIM, _, id); write_byte(anim); write_byte(pev(id, pev_body)); message_end(); } } stock get_damage_body(body, Float:damage) { switch(body) { case HIT_HEAD: damage *= 4.0; case HIT_STOMACH: damage *= 1.1; case HIT_CHEST: damage *= 1.5; case HIT_LEFTARM: damage *= 0.77; case HIT_RIGHTARM: damage *= 0.77; case HIT_LEFTLEG: damage *= 0.75; case HIT_RIGHTLEG: damage *= 0.75; default: damage *= 1.0; } return floatround(damage); } stock Create_TE_SPRITETRAIL3(start[3], end[3], iSprite, count, life, scale, velocity, random ){ message_begin( MSG_BROADCAST,SVC_TEMPENTITY) write_byte( TE_SPRITETRAIL ) write_coord( start[0] ) // start position (X) write_coord( start[1] ) // start position (Y) write_coord( start[2] + 40 ) // start position (Z) write_coord( end[0] ) // end position (X) write_coord( end[1] ) // end position (Y) write_coord( end[2] ) // end position (Z) write_short( iSprite ) // sprite index write_byte( count ) // count write_byte( life) // life in 0.1's write_byte( scale) // scale in 0.1's write_byte( velocity ) // velocity along vector in 10's write_byte( random ) // randomness of velocity in 10's message_end() } stock UTIL_CreateBeamCylinder( origin[ 3 ], addrad, sprite, startfrate, framerate, life, width, amplitude, red, green, blue, brightness, speed ) { message_begin( MSG_PVS, SVC_TEMPENTITY, origin ); write_byte( TE_BEAMCYLINDER ); write_coord( origin[ 0 ] ); write_coord( origin[ 1 ] ); write_coord( origin[ 2 ] ); write_coord( origin[ 0 ] ); write_coord( origin[ 1 ] ); write_coord( origin[ 2 ] + addrad ); write_short( sprite ); write_byte( startfrate ); write_byte( framerate ); write_byte(life ); write_byte( width ); write_byte( amplitude ); write_byte( red ); write_byte( green ); write_byte( blue ); write_byte( brightness ); write_byte( speed ); message_end(); }
fm_credits.inc include:
- | Afiseaza codul
native fm_get_credits(index) native fm_set_credits(index, value)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
FurienShop pe nativele lui askhanar !
- | Afiseaza codul
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <fakemeta> #include <fakemeta_util> #include <fun> #include <engine> #include <hamsandwich> #include <fcs> // Constante const KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0 new const MODEL_PARACHUTE[] = "models/parachute.mdl" new const modelsknife[] = "models/FurienOutStanding/v_knife_outstanding1.mdl" new const modelsknife2[] = "models/FurienOutStanding/v_knife_outstanding2.mdl" new const cfgfile[] = "fm_shop.cfg" // Define Pet #define PET_FLAG pev_flTimeStepSound #define PET_KILLED 389 #define SetUserNoFlash(%1) g_bHasNoFlash |= 1<<(%1&31) #define RemoveUserNoFlash(%1) g_bHasNoFlash &= ~(1<<(%1&31)) #define HasUserNoFlash(%1) g_bHasNoFlash & 1<<(%1&31) #define IsPlayer(%1) ( 1 <= %1 <= maxplayers) #define FLASHBANG_SEARCH_RADIUS 1500.0 // Variables new Float:g_FallSpeed, has_sknife[33] = 0, has_sknife2[33] = 0, item_pet[33], item_have[33], Float:item_leaptime[33], bool:g_has_speed[33], maxplayers, g_msgSayText, g_hebuyable = 1, hpack[33] = 0, g_bHasNoFlash // Bools new bool:g_has_parachute[33], g_para_ent[33], bool:has_nf[33] // Cvars new cvar_parachute, cvar_skcost, cvar_sk2cost, cvar_pkcost, cvar_hecost, cvar_defcost, cvar_hpcost, cvar_apcost, cvar_nfcost, cvar_fallspeed, cvar_petcost // Constants static const pet_model[] = "models/stukabat.mdl" static const pet_sounds[][] = { "bullchicken/bc_die1.wav", "bullchicken/bc_die2.wav", "bullchicken/bc_die3.wav", "bullchicken/bc_idle1.wav", "bullchicken/bc_pain3.wav" } static const pet_idle = 13 static const pet_run = 13 static const pet_die = 5 static const Float:pet_idle_speed = 0.3 static const Float:pet_run_speed = 10.0 static const Float:player_gravity = 0.65 public plugin_init() { // Register Plugin register_plugin("[FM] Shop", "1.0", "Sprit3x & Fantasy - Member OutStanding Team Scripting") // Register Menu register_clcmd("say /shop", "shophandle") register_clcmd("say shop", "shophandle") register_clcmd("chooseteam", "shophandle") register_clcmd("fshop", "furienshop") register_clcmd("say /pet", "buypet") register_clcmd("sayteam /pet", "buypet") // Menu Definer register_menu("menu_shop", KEYSMENU , "shophandler") // Ham Register RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage") RegisterHam(Ham_Spawn, "player", "player_spawn", 1) // Register Event register_event("CurWeapon", "Event_CurrentWeapon", "be", "1=1") register_event("HLTV", "event_round_start", "a", "1=0", "2=0") register_event("DeathMsg","DeathMsg","a") // Register Forwarduri register_forward(FM_Think,"FM_Think_hook") register_forward(FM_PlayerPreThink, "FM_PlayerPreThink_hook") register_forward(FM_FindEntityInSphere, "FindEntityInSphere") // Register Cvars cvar_parachute = register_cvar("furienshop_parachute", "1") cvar_fallspeed = register_cvar("furienshop_parachute_fallspeed", "75") cvar_skcost = register_cvar("furienshop_skcost", "10") cvar_pkcost = register_cvar("furienshop_pkcost", "10") cvar_hecost = register_cvar("furienshop_hecost", "12") cvar_defcost = register_cvar("furienshop_defcost", "13") cvar_hpcost = register_cvar("furienshop_hpcost", "14") cvar_apcost = register_cvar("furienshop_apcost", "11") cvar_nfcost = register_cvar("furienshop_nfcost", "10") cvar_petcost = register_cvar("furienshop_petcost", "5") cvar_sk2cost = register_cvar("furienshop_sk2cost", "15") // Register Messages g_msgSayText = get_user_msgid("SayText") maxplayers = get_maxplayers() } public plugin_cfg() { // Get configs dir new cfgdir[32] get_configsdir(cfgdir, charsmax(cfgdir)) // Execute config file server_cmd("exec %s/%s", cfgdir, cfgfile) set_task(1.0, "cache_settings") } public client_putinserver(id) { g_has_parachute[id] = false RemoveUserNoFlash(id) } public cache_settings() g_FallSpeed = get_pcvar_float(cvar_fallspeed) * -1.0 public DeathMsg() { new id = read_data(2) if (item_have[id]) { kill_pet(id) item_have[id] = 0 } if (g_has_speed[id]) g_has_speed[id] = false else if (has_sknife[id]) has_sknife[id] = 0 else if (has_sknife2[id]) has_sknife2[id] = 0 } public event_round_start() { new i, entid = -1 for (i=0; i<33; i++) { g_has_parachute = false if (hpack) hpack = 0 } g_bHasNoFlash = 0 while((entid = fm_find_ent_by_class(entid, "zp_bat"))) { if(pev(entid,PET_FLAG) == PET_KILLED) { fm_remove_entity(entid) } } } public shophandle(id) { if (!is_user_alive(id)) return client_cmd(id, "fshop") } public plugin_precache() { new i = 0 for(i = 0; i < sizeof pet_sounds; i++) precache_sound(pet_sounds) precache_model(pet_model) precache_model(MODEL_PARACHUTE) precache_model(modelsknife) precache_model(modelsknife2) } public Event_CurrentWeapon(id) { new weaponid = read_data(2) if (cs_get_user_team(id) == CS_TEAM_T && has_sknife[id]) { if (weaponid == CSW_KNIFE) set_pev(id, pev_viewmodel2, modelsknife) } else if (cs_get_user_team(id) == CS_TEAM_T && has_sknife2[id]) { if (weaponid == CSW_KNIFE) set_pev(id, pev_viewmodel2, modelsknife2) } } public furienshop(id) { static menu[ 2048 char ] , len len = 0 len += formatex( menu[ len ] , charsmax( menu ) - len , "\yFurien Ultimate Shop Shop\r [v2.3beta]\w^nAvailable Credits: %d^n^n", fcs_get_user_credits(id)) if (cs_get_user_team(id) != CS_TEAM_CT) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r1.\w Super Knife [x2] -\r %d credite^n", get_pcvar_num(cvar_skcost)) else len += formatex( menu[ len ] , charsmax( menu ) - len , "\r1.\w Pachet HP+AP -\r %d credite^n", get_pcvar_num(cvar_pkcost)) if (cs_get_user_team(id) != CS_TEAM_T) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r2.\w Harry Potter's Wand\y [NEW]\w -\r 50 credite^n") else len += formatex( menu[ len ] , charsmax( menu ) - len , "\r2.\w Super Knife [x3] -\r %d credite^n", get_pcvar_num(cvar_sk2cost)) if (cs_get_user_team(id) != CS_TEAM_CT) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r3.\w HE Grenade -\r %d credite^n", get_pcvar_num(cvar_hecost)) else len += formatex( menu[ len ] , charsmax( menu ) - len , "\r3.\w Defuse Kit -\r %d credite^n", get_pcvar_num(cvar_defcost)) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r4.\w 50 HP -\r %d credite^n", get_pcvar_num(cvar_hpcost)) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r5.\w 100 AP -\r %d credite^n", get_pcvar_num(cvar_apcost)) if (cs_get_user_team(id) != CS_TEAM_CT) len += formatex( menu[ len ] , charsmax( menu ) - len , "\d6. No Flash - %d credite^n^n", get_pcvar_num(cvar_nfcost)) else len += formatex( menu[ len ] , charsmax( menu ) - len , "\r6.\w No Flash -\r %d credite^n^n", get_pcvar_num(cvar_nfcost)) if (cs_get_user_team(id) != CS_TEAM_T) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r7.\w Buy Pet -\r %d credite^n^n", get_pcvar_num(cvar_petcost)) len += formatex( menu[ len ], charsmax( menu ) - len, "\r0. \wExit" ) set_pdata_int(id , 205, 0, 5) show_menu(id, KEYSMENU, menu, -1, "menu_shop") } public shophandler(id, key) { switch(key) { case 0: { if (cs_get_user_team(id) != CS_TEAM_CT) { if (fcs_get_user_credits(id) >= get_pcvar_num(cvar_skcost)) { has_sknife[id] = 1 client_cmd(id, "weapon_knife") set_pev(id, pev_viewmodel2, modelsknife) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t Super Knife!") fcs_set_user_credits(id, fcs_get_user_credits(id) - get_pcvar_num(cvar_skcost)) }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") }else{ if (hpack[id] < 1) { if (fcs_get_user_credits(id) >= get_pcvar_num(cvar_pkcost)) { if (get_user_health(id) >= 400 && get_user_armor(id) >= 250) { client_printcolor(id, "!g[SHOP]!n Ai atins limita maxima de Pachete de HP+AP!") return PLUGIN_CONTINUE } hpack[id]++ set_user_health(id, get_user_health(id) + 250) set_user_armor(id, get_user_armor(id) + 250) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t Pachet HP+AP!") fcs_set_user_credits(id, fcs_get_user_credits(id) - get_pcvar_num(cvar_pkcost)) }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") }else client_printcolor(id, "!g[SHOP]!n Nu poti cumpara HP Upgrade decat odata pe runda!") } } case 1: { if (cs_get_user_team(id) != CS_TEAM_T) { if (fcs_get_user_credits(id) >= 50) { client_printcolor(id, "!g[SHOP]!n Ai cumparat!t Harry Potter's Wand!") client_cmd(id, "vbcq23n1267ghfas") fcs_set_user_credits(id, fcs_get_user_credits(id) - 50) }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") }else{ if (fcs_get_user_credits(id) >= get_pcvar_num(cvar_sk2cost)) { has_sknife2[id] = 1 client_cmd(id, "weapon_knife") set_pev(id, pev_viewmodel2, modelsknife2) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t Super Knife[x3]!") fcs_set_user_credits(id, fcs_get_user_credits(id) - get_pcvar_num(cvar_sk2cost)) }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite.") } } case 2: { if (cs_get_user_team(id) != CS_TEAM_CT) { if (g_hebuyable) { if (fcs_get_user_credits(id) >= get_pcvar_num(cvar_hecost)) { g_hebuyable = 0 set_task(10.0, "hebuy", id) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t HE Grenade!") give_item(id, "weapon_hegrenade") fcs_set_user_credits(id, fcs_get_user_credits(id) - get_pcvar_num(cvar_hecost)) }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") }else client_printcolor(id, "!g[SHOP]!n Trebuie sa astepti 10 secunde pentru a cumpara o grenada") }else{ if (fcs_get_user_credits(id) >= get_pcvar_num(cvar_defcost)) { client_printcolor(id, "!g[SHOP]!n Ai cumparat!t Defuse Kit!") give_item(id, "item_thighpack") fcs_set_user_credits(id, fcs_get_user_credits(id) - get_pcvar_num(cvar_defcost)) }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") } } case 3: { if (get_user_health(id) >= 250) { client_printcolor(id, "!g[SHOP]!n Ai atins limita de viata!") return PLUGIN_CONTINUE } else if (fcs_get_user_credits(id) >= get_pcvar_num(cvar_hpcost)) { set_user_health(id, get_user_health(id) + 50) fcs_set_user_credits(id, fcs_get_user_credits(id) - get_pcvar_num(cvar_hpcost)) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t 50 HP!") }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") return PLUGIN_CONTINUE } case 4: { if (get_user_armor(id) >= 500) { client_printcolor(id, "!g[SHOP]!n Ai atins limita maxima de armura!") return PLUGIN_CONTINUE } else if (fcs_get_user_credits(id) >= get_pcvar_num(cvar_apcost)) { set_user_armor(id, get_user_armor(id) + 100) fcs_set_user_credits(id, fcs_get_user_credits(id) - get_pcvar_num(cvar_apcost)) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t 100 AP!") }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") return PLUGIN_CONTINUE } case 5: { if (cs_get_user_team(id) != CS_TEAM_CT) { return PLUGIN_HANDLED }else{ if( ~HasUserNoFlash(id) ) { if (fcs_get_user_credits(id) >= get_pcvar_num(cvar_nfcost)) { has_nf[id] = true SetUserNoFlash(id) fcs_set_user_credits(id, fcs_get_user_credits(id) - get_pcvar_num(cvar_nfcost)) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t No Flash!") } }else client_printcolor(id, "!g[SHOP]!n Ai deja No Flash!") } } case 6: { if (cs_get_user_team(id) != CS_TEAM_T) { if (!item_have[id]) { if (fcs_get_user_credits(id) >= get_pcvar_num(cvar_petcost)) { create_pet(id) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t PET!") fcs_set_user_credits(id, fcs_get_user_credits(id) - get_pcvar_num(cvar_petcost)) }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") }else client_printcolor(id, "!g[SHOP]!n Detii deja un^3 PET!") } } default : return PLUGIN_CONTINUE } return PLUGIN_CONTINUE } public hebuy(id) { g_hebuyable = 1 remove_task(id) } public fw_TakeDamage(victim, inflictor, attacker, Float:damage) { if (victim == attacker || !is_user_connected(attacker)) return HAM_IGNORED if (has_sknife[attacker] && get_user_weapon(attacker) == CSW_KNIFE) { damage *= 2.0 SetHamParamFloat(4, damage) } else if(has_sknife2[attacker] && get_user_weapon(attacker) == CSW_KNIFE) { damage *= 3.0 SetHamParamFloat(4, damage) } return HAM_IGNORED } public FindEntityInSphere(id, Float:fVecOrigin[3], Float:flRadius) { if( flRadius == FLASHBANG_SEARCH_RADIUS ) { while( IsPlayer( (id=engfunc(EngFunc_FindEntityInSphere, id, fVecOrigin, flRadius)) ) ) { if( ~HasUserNoFlash(id) && is_user_alive(id) ) { forward_return(FMV_CELL, id) return FMRES_SUPERCEDE } } forward_return(FMV_CELL, 0) return FMRES_SUPERCEDE } return FMRES_IGNORED } public player_spawn(player) { if (!is_user_connected(player)) return HAM_IGNORED if (cs_get_user_team(player) != CS_TEAM_CT) { kill_pet(player) item_have[player] = 0 return HAM_IGNORED } else if(item_have[player]) { fm_set_user_gravity(player, player_gravity) set_user_health(player, get_user_health(player) + 250) set_user_armor(player, get_user_armor(player) + 350) g_has_speed[player] = true } parachute_reset(player) return HAM_IGNORED } public client_PreThink(id) { //Parachute model animation information //0 - deploy - 84 frames //1 - idle - 39 frames //2 - detach - 29 frames if (!g_has_parachute[id]) return; static flags, Float:frame, button, oldbutton button = get_user_button(id) oldbutton = get_user_oldbutton(id) flags = get_entity_flags(id) if (g_para_ent[id] > 0 && (flags & FL_ONGROUND)) { if (get_pcvar_num(cvar_parachute)) { if (entity_get_int(g_para_ent[id],EV_INT_sequence) != 2) { entity_set_int(g_para_ent[id], EV_INT_sequence, 2) entity_set_int(g_para_ent[id], EV_INT_gaitsequence, 1) entity_set_float(g_para_ent[id], EV_FL_frame, 0.0) entity_set_float(g_para_ent[id], EV_FL_fuser1, 0.0) entity_set_float(g_para_ent[id], EV_FL_animtime, 0.0) return; } frame = entity_get_float(g_para_ent[id],EV_FL_fuser1) + 2.0 entity_set_float(g_para_ent[id],EV_FL_fuser1,frame) entity_set_float(g_para_ent[id],EV_FL_frame,frame) if (frame > 254.0) parachute_reset(id) } else parachute_reset(id) return; } if (button & IN_USE) { new Float:velocity[3]; entity_get_vector(id, EV_VEC_velocity, velocity); if (velocity[2] < 0.0) { if(g_para_ent[id] <= 0) { g_para_ent[id] = create_entity("info_target") if(g_para_ent[id] > 0) { entity_set_string(g_para_ent[id],EV_SZ_classname,"parachute") entity_set_edict(g_para_ent[id], EV_ENT_aiment, id) entity_set_edict(g_para_ent[id], EV_ENT_owner, id) entity_set_int(g_para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW) entity_set_model(g_para_ent[id], MODEL_PARACHUTE) entity_set_int(g_para_ent[id], EV_INT_sequence, 0) entity_set_int(g_para_ent[id], EV_INT_gaitsequence, 1) entity_set_float(g_para_ent[id], EV_FL_frame, 0.0) entity_set_float(g_para_ent[id], EV_FL_fuser1, 0.0) } } else if (g_para_ent[id] > 0) { entity_set_int(id, EV_INT_sequence, 3) entity_set_int(id, EV_INT_gaitsequence, 1) entity_set_float(id, EV_FL_frame, 1.0) entity_set_float(id, EV_FL_framerate, 1.0) velocity[2] = (velocity[2] + 40.0 < g_FallSpeed) ? velocity[2] + 40.0 : g_FallSpeed entity_set_vector(id, EV_VEC_velocity, velocity) if (entity_get_int(g_para_ent[id],EV_INT_sequence) == 0) { frame = entity_get_float(g_para_ent[id],EV_FL_fuser1) + 1.0 entity_set_float(g_para_ent[id],EV_FL_fuser1,frame) entity_set_float(g_para_ent[id],EV_FL_frame,frame) if (frame > 100.0) { entity_set_float(g_para_ent[id], EV_FL_animtime, 0.0) entity_set_float(g_para_ent[id], EV_FL_framerate, 0.4) entity_set_int(g_para_ent[id], EV_INT_sequence, 1) entity_set_int(g_para_ent[id], EV_INT_gaitsequence, 1) entity_set_float(g_para_ent[id], EV_FL_frame, 0.0) entity_set_float(g_para_ent[id], EV_FL_fuser1, 0.0) } } } } else if (g_para_ent[id] > 0) parachute_reset(id) } else if ((oldbutton & IN_USE) && g_para_ent[id] > 0) parachute_reset(id) } parachute_reset(id, remove = 0) { if(g_para_ent[id] > 0 && is_valid_ent(g_para_ent[id])) { remove_entity(g_para_ent[id]); g_para_ent[id] = 0 } if (!remove) g_has_parachute[id] = true else g_has_parachute[id] = false } public buypet(id) { if (!is_user_alive(id)) { client_printcolor(id, "^4[Furien Pet]^1 Nu poti cumpara pet cand esti mort.") return PLUGIN_CONTINUE } if (cs_get_user_team(id) != CS_TEAM_CT) { client_printcolor(id, "^4[Furien Pet]^1 Numai^3 Anti-furienii^1 pot cumpara pet.") return PLUGIN_CONTINUE } if (!item_have[id]) { if (fcs_get_user_credits(id) >= get_pcvar_num(cvar_petcost)) { fcs_set_user_credits(id, fcs_get_user_credits(id) - get_pcvar_num(cvar_petcost)) client_printcolor(id, "^4[Furien Pet]^1 Ai cumparat^3 PET.") create_pet(id) }else client_printcolor(id, "^4[Furien Pet]^1 Nu ai destule^3 credite.") }else client_printcolor(id, "^4[Furien Pet]^1 Detii deja un pet!") return PLUGIN_CONTINUE } public client_disconnect(id) { remove_task(id) parachute_reset(id, 1) } public kill_pet(id) { if(pev_valid(item_pet[id])) { set_pev(item_pet[id],pev_sequence,pet_die) set_pev(item_pet[id],pev_gaitsequence,pet_die) set_pev(item_pet[id],pev_framerate,1.0) set_pev(item_pet[id],PET_FLAG,PET_KILLED) fm_drop_to_floor(item_pet[id]) item_have[id] = 0 g_has_speed[id] = false } item_pet[id] = 0 } public create_pet(id) { item_pet[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString,"info_target")) set_pev(item_pet[id],pev_classname,"zp_bat") engfunc(EngFunc_SetModel,item_pet[id],pet_model) new Float:origin[3] pev(id,pev_origin,origin) set_pev(item_pet[id],pev_origin,origin) set_pev(item_pet[id],pev_solid,SOLID_TRIGGER) set_pev(item_pet[id],pev_movetype,MOVETYPE_FLY) set_pev(item_pet[id],pev_owner,33) set_pev(item_pet[id],pev_nextthink,1.0) set_pev(item_pet[id],pev_sequence,0) set_pev(item_pet[id],pev_gaitsequence,0) set_pev(item_pet[id],pev_framerate,1.0) set_pev(item_pet[id], pev_renderfx, kRenderFxGlowShell) set_pev(item_pet[id], pev_rendercolor, Float:{0.0, 0.0, 200.0}) fm_set_user_gravity(id,player_gravity) set_user_health(id, get_user_health(id) + 250) set_user_armor(id, get_user_armor(id) + 350) engfunc(EngFunc_EmitSound,item_pet[id],CHAN_AUTO,pet_sounds[random_num(0,sizeof pet_sounds - 1)],1.0, 1.2, 0, PITCH_NORM) item_have[id] = 1 g_has_speed[id] = true } public FM_Think_hook(ent) { for(new i = 0; i <= maxplayers; i++) { if(ent == item_pet) { static Float:origin[3] static Float:origin2[3] static Float:velocity[3] pev(ent,pev_origin,origin2) get_offset_origin_body(i,Float:{50.0,0.0,0.0},origin) if(get_distance_f(origin,origin2) > 300.0) { set_pev(ent,pev_origin,origin) } else if(get_distance_f(origin,origin2) > 80.0) { get_speed_vector(origin2,origin,250.0,velocity) set_pev(ent,pev_velocity,velocity) if(pev(ent,pev_sequence) != pet_run || pev(ent,pev_framerate) != pet_run_speed) { set_pev(ent,pev_sequence,pet_run) set_pev(ent,pev_gaitsequence,pet_run) set_pev(ent,pev_framerate,pet_run_speed) } } else if(get_distance_f(origin,origin2) < 75.0) { if(pev(ent,pev_sequence) != pet_idle || pev(ent,pev_framerate) != pet_idle_speed) { set_pev(ent,pev_sequence,pet_idle) set_pev(ent,pev_gaitsequence,pet_idle) set_pev(ent,pev_framerate,pet_idle_speed) } set_pev(ent,pev_velocity,Float:{0.0,0.0,0.0}) } pev(i,pev_origin,origin) origin[2] = origin2[2] entity_set_aim(ent,origin) set_pev(ent,pev_nextthink,1.0) break } } } public FM_PlayerPreThink_hook(id) { if (!is_user_alive(id)) return if(allowed_leap(id)) { static Float:velocity[3] velocity_by_aim(id, 500, velocity) velocity[2] = 300.0 set_pev(id, pev_velocity, velocity) item_leaptime[id] = get_gametime() } } public allowed_leap(id) { if(!item_have[id]) return false if (!(pev(id, pev_flags) & FL_ONGROUND) || fm_get_speed(id) < 80) return false static buttons buttons = pev(id, pev_button) if (!is_user_bot(id) && (!(buttons & IN_JUMP) || !(buttons & IN_DUCK))) return false if (get_gametime() - item_leaptime[id] < 3) return false return true } public is_a_player(ent) { if(ent > 0 && ent < 33) return true return false } public remove_pet(ent) { if(pev_valid(ent)) fm_remove_entity(ent) } // Get entity's speed (from fakemeta_util) stock get_offset_origin_body(ent,const Float:offset[3],Float:origin[3]) { if(!pev_valid(ent)) return 0; new Float:angle[3] pev(ent,pev_angles,angle) pev(ent,pev_origin,origin) origin[0] += floatcos(angle[1],degrees) * offset[0] origin[1] += floatsin(angle[1],degrees) * offset[0] origin[1] += floatcos(angle[1],degrees) * offset[1] origin[0] += floatsin(angle[1],degrees) * offset[1] return 1; } stock get_speed_vector(const Float:origin1[3],const Float:origin2[3],Float:speed, Float:new_velocity[3]) { new_velocity[0] = origin2[0] - origin1[0] new_velocity[1] = origin2[1] - origin1[1] new_velocity[2] = origin2[2] - origin1[2] new Float:num = floatsqroot(speed*speed / (new_velocity[0]*new_velocity[0] + new_velocity[1]*new_velocity[1] + new_velocity[2]*new_velocity[2])) new_velocity[0] *= num new_velocity[1] *= num new_velocity[2] *= num return 1; } stock entity_set_aim(ent,const Float:origin2[3],bone=0) { if(!pev_valid(ent)) return 0; static Float:origin[3] origin[0] = origin2[0] origin[1] = origin2[1] origin[2] = origin2[2] static Float:ent_origin[3], Float:angles[3] if(bone) engfunc(EngFunc_GetBonePosition,ent,bone,ent_origin,angles) else pev(ent,pev_origin,ent_origin) origin[0] -= ent_origin[0] origin[1] -= ent_origin[1] origin[2] -= ent_origin[2] static Float:v_length v_length = vector_length(origin) static Float:aim_vector[3] aim_vector[0] = origin[0] / v_length aim_vector[1] = origin[1] / v_length aim_vector[2] = origin[2] / v_length static Float:new_angles[3] vector_to_angle(aim_vector,new_angles) new_angles[0] *= -1 if(new_angles[1]>180.0) new_angles[1] -= 360 if(new_angles[1]<-180.0) new_angles[1] += 360 if(new_angles[1]==180.0 || new_angles[1]==-180.0) new_angles[1]=-179.999999 set_pev(ent,pev_angles,new_angles) set_pev(ent,pev_fixangle,1) return 1; } // Stockuri stock client_printcolor(const id, const message[], any:...) { new g_message[191]; vformat(g_message, charsmax(g_message), message, 3) replace_all(g_message, charsmax(g_message), "!g", "^4") replace_all(g_message, charsmax(g_message), "!n", "^1") replace_all(g_message, charsmax(g_message), "!t", "^3") if(is_user_connected(id)) { message_begin(MSG_ONE_UNRELIABLE, g_msgSayText,_, id) write_byte(id) write_string(g_message) message_end() } }
fcs.inc
- | Afiseaza codul
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <fcs> #define PLUGIN "FCS Example" #define VERSION "1.0" public plugin_init( ) { register_plugin( PLUGIN, VERSION, "Askhanar" ); register_clcmd( "say /test", "say_Credite" ); register_clcmd( "say /test2", "say_FreeCredits" ); // Add your code here... } public say_Credite( id ) { new iCredits = fcs_get_user_credits( id ); client_print( id, print_chat, "[FCS TEST]: Ai %i credite!", iCredits ); } public say_FreeCredits( id ) { new iCredits = fcs_get_user_credits( id ); new iNewCredits = fcs_set_user_credits( id, iCredits + 5 ); client_print( id, print_chat, "[FCS TEST]: Ai primit %i credite, si acum ai in total %i !", iCredits, iNewCredits ); }
FurienShop facut pe creditele lui Aragon !
- | Afiseaza codul
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <fakemeta> #include <fakemeta_util> #include <fun> #include <engine> #include <hamsandwich> #include <aragon> // Constante const KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0 new const MODEL_PARACHUTE[] = "models/parachute.mdl" new const modelsknife[] = "models/FurienOutStanding/v_knife_outstanding1.mdl" new const modelsknife2[] = "models/FurienOutStanding/v_knife_outstanding2.mdl" new const cfgfile[] = "fm_shop.cfg" // Define Pet #define PET_FLAG pev_flTimeStepSound #define PET_KILLED 389 #define SetUserNoFlash(%1) g_bHasNoFlash |= 1<<(%1&31) #define RemoveUserNoFlash(%1) g_bHasNoFlash &= ~(1<<(%1&31)) #define HasUserNoFlash(%1) g_bHasNoFlash & 1<<(%1&31) #define IsPlayer(%1) ( 1 <= %1 <= maxplayers) #define FLASHBANG_SEARCH_RADIUS 1500.0 // Variables new Float:g_FallSpeed, has_sknife[33] = 0, has_sknife2[33] = 0, item_pet[33], item_have[33], Float:item_leaptime[33], bool:g_has_speed[33], maxplayers, g_msgSayText, g_hebuyable = 1, hpack[33] = 0, g_bHasNoFlash // Bools new bool:g_has_parachute[33], g_para_ent[33], bool:has_nf[33] // Cvars new cvar_parachute, cvar_skcost, cvar_sk2cost, cvar_pkcost, cvar_hecost, cvar_defcost, cvar_hpcost, cvar_apcost, cvar_nfcost, cvar_fallspeed, cvar_petcost // Constants static const pet_model[] = "models/stukabat.mdl" static const pet_sounds[][] = { "bullchicken/bc_die1.wav", "bullchicken/bc_die2.wav", "bullchicken/bc_die3.wav", "bullchicken/bc_idle1.wav", "bullchicken/bc_pain3.wav" } static const pet_idle = 13 static const pet_run = 13 static const pet_die = 5 static const Float:pet_idle_speed = 0.3 static const Float:pet_run_speed = 10.0 static const Float:player_gravity = 0.65 public plugin_init() { // Register Plugin register_plugin("[FM] Shop", "1.0", "Sprit3x & Fantasy - Member OutStanding Team Scripting") // Register Menu register_clcmd("say /shop", "shophandle") register_clcmd("say shop", "shophandle") register_clcmd("chooseteam", "shophandle") register_clcmd("fshop", "furienshop") register_clcmd("say /pet", "buypet") register_clcmd("sayteam /pet", "buypet") // Menu Definer register_menu("menu_shop", KEYSMENU , "shophandler") // Ham Register RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage") RegisterHam(Ham_Spawn, "player", "player_spawn", 1) // Register Event register_event("CurWeapon", "Event_CurrentWeapon", "be", "1=1") register_event("HLTV", "event_round_start", "a", "1=0", "2=0") register_event("DeathMsg","DeathMsg","a") // Register Forwarduri register_forward(FM_Think,"FM_Think_hook") register_forward(FM_PlayerPreThink, "FM_PlayerPreThink_hook") register_forward(FM_FindEntityInSphere, "FindEntityInSphere") // Register Cvars cvar_parachute = register_cvar("furienshop_parachute", "1") cvar_fallspeed = register_cvar("furienshop_parachute_fallspeed", "75") cvar_skcost = register_cvar("furienshop_skcost", "10") cvar_pkcost = register_cvar("furienshop_pkcost", "10") cvar_hecost = register_cvar("furienshop_hecost", "12") cvar_defcost = register_cvar("furienshop_defcost", "13") cvar_hpcost = register_cvar("furienshop_hpcost", "14") cvar_apcost = register_cvar("furienshop_apcost", "11") cvar_nfcost = register_cvar("furienshop_nfcost", "10") cvar_petcost = register_cvar("furienshop_petcost", "5") cvar_sk2cost = register_cvar("furienshop_sk2cost", "15") // Register Messages g_msgSayText = get_user_msgid("SayText") maxplayers = get_maxplayers() } public plugin_cfg() { // Get configs dir new cfgdir[32] get_configsdir(cfgdir, charsmax(cfgdir)) // Execute config file server_cmd("exec %s/%s", cfgdir, cfgfile) set_task(1.0, "cache_settings") } public client_putinserver(id) { g_has_parachute[id] = false RemoveUserNoFlash(id) } public cache_settings() g_FallSpeed = get_pcvar_float(cvar_fallspeed) * -1.0 public DeathMsg() { new id = read_data(2) if (item_have[id]) { kill_pet(id) item_have[id] = 0 } if (g_has_speed[id]) g_has_speed[id] = false else if (has_sknife[id]) has_sknife[id] = 0 else if (has_sknife2[id]) has_sknife2[id] = 0 } public event_round_start() { new i, entid = -1 for (i=0; i<33; i++) { g_has_parachute[i] = false if (hpack[i]) hpack[i] = 0 } g_bHasNoFlash = 0 while((entid = fm_find_ent_by_class(entid, "zp_bat"))) { if(pev(entid,PET_FLAG) == PET_KILLED) { fm_remove_entity(entid) } } } public shophandle(id) { if (!is_user_alive(id)) return client_cmd(id, "fshop") } public plugin_precache() { new i = 0 for(i = 0; i < sizeof pet_sounds; i++) precache_sound(pet_sounds[i]) precache_model(pet_model) precache_model(MODEL_PARACHUTE) precache_model(modelsknife) precache_model(modelsknife2) } public Event_CurrentWeapon(id) { new weaponid = read_data(2) if (cs_get_user_team(id) == CS_TEAM_T && has_sknife[id]) { if (weaponid == CSW_KNIFE) set_pev(id, pev_viewmodel2, modelsknife) } else if (cs_get_user_team(id) == CS_TEAM_T && has_sknife2[id]) { if (weaponid == CSW_KNIFE) set_pev(id, pev_viewmodel2, modelsknife2) } } public furienshop(id) { static menu[ 2048 char ] , len len = 0 len += formatex( menu[ len ] , charsmax( menu ) - len , "\yFurien Ultimate Shop Shop\r [v2.3beta]\w^nAvailable Credits: %d^n^n", get_user_credits(id)) if (cs_get_user_team(id) != CS_TEAM_CT) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r1.\w Super Knife [x2] -\r %d credite^n", get_pcvar_num(cvar_skcost)) else len += formatex( menu[ len ] , charsmax( menu ) - len , "\r1.\w Pachet HP+AP -\r %d credite^n", get_pcvar_num(cvar_pkcost)) if (cs_get_user_team(id) != CS_TEAM_T) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r2.\w Harry Potter's Wand\y [NEW]\w -\r 50 credite^n") else len += formatex( menu[ len ] , charsmax( menu ) - len , "\r2.\w Super Knife [x3] -\r %d credite^n", get_pcvar_num(cvar_sk2cost)) if (cs_get_user_team(id) != CS_TEAM_CT) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r3.\w HE Grenade -\r %d credite^n", get_pcvar_num(cvar_hecost)) else len += formatex( menu[ len ] , charsmax( menu ) - len , "\r3.\w Defuse Kit -\r %d credite^n", get_pcvar_num(cvar_defcost)) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r4.\w 50 HP -\r %d credite^n", get_pcvar_num(cvar_hpcost)) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r5.\w 100 AP -\r %d credite^n", get_pcvar_num(cvar_apcost)) if (cs_get_user_team(id) != CS_TEAM_CT) len += formatex( menu[ len ] , charsmax( menu ) - len , "\d6. No Flash - %d credite^n^n", get_pcvar_num(cvar_nfcost)) else len += formatex( menu[ len ] , charsmax( menu ) - len , "\r6.\w No Flash -\r %d credite^n^n", get_pcvar_num(cvar_nfcost)) if (cs_get_user_team(id) != CS_TEAM_T) len += formatex( menu[ len ] , charsmax( menu ) - len , "\r7.\w Buy Pet -\r %d credite^n^n", get_pcvar_num(cvar_petcost)) len += formatex( menu[ len ], charsmax( menu ) - len, "\r0. \wExit" ) set_pdata_int(id , 205, 0, 5) show_menu(id, KEYSMENU, menu, -1, "menu_shop") } public shophandler(id, key) { switch(key) { case 0: { if (cs_get_user_team(id) != CS_TEAM_CT) { if (get_user_credits(id) >= get_pcvar_num(cvar_skcost)) { has_sknife[id] = 1 client_cmd(id, "weapon_knife") set_pev(id, pev_viewmodel2, modelsknife) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t Super Knife!") set_user_credits(id, get_user_credits(id) - get_pcvar_num(cvar_skcost)) }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") }else{ if (hpack[id] < 1) { if (get_user_credits(id) >= get_pcvar_num(cvar_pkcost)) { if (get_user_health(id) >= 400 && get_user_armor(id) >= 250) { client_printcolor(id, "!g[SHOP]!n Ai atins limita maxima de Pachete de HP+AP!") return PLUGIN_CONTINUE } hpack[id]++ set_user_health(id, get_user_health(id) + 250) set_user_armor(id, get_user_armor(id) + 250) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t Pachet HP+AP!") set_user_credits(id, get_user_credits(id) - get_pcvar_num(cvar_pkcost)) }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") }else client_printcolor(id, "!g[SHOP]!n Nu poti cumpara HP Upgrade decat odata pe runda!") } } case 1: { if (cs_get_user_team(id) != CS_TEAM_T) { if (get_user_credits(id) >= 50) { client_printcolor(id, "!g[SHOP]!n Ai cumparat!t Harry Potter's Wand!") client_cmd(id, "vbcq23n1267ghfas") set_user_credits(id, get_user_credits(id) - 50) }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") }else{ if (get_user_credits(id) >= get_pcvar_num(cvar_sk2cost)) { has_sknife2[id] = 1 client_cmd(id, "weapon_knife") set_pev(id, pev_viewmodel2, modelsknife2) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t Super Knife[x3]!") set_user_credits(id, get_user_credits(id) - get_pcvar_num(cvar_sk2cost)) }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite.") } } case 2: { if (cs_get_user_team(id) != CS_TEAM_CT) { if (g_hebuyable) { if (get_user_credits(id) >= get_pcvar_num(cvar_hecost)) { g_hebuyable = 0 set_task(10.0, "hebuy", id) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t HE Grenade!") give_item(id, "weapon_hegrenade") set_user_credits(id, get_user_credits(id) - get_pcvar_num(cvar_hecost)) }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") }else client_printcolor(id, "!g[SHOP]!n Trebuie sa astepti 10 secunde pentru a cumpara o grenada") }else{ if (get_user_credits(id) >= get_pcvar_num(cvar_defcost)) { client_printcolor(id, "!g[SHOP]!n Ai cumparat!t Defuse Kit!") give_item(id, "item_thighpack") set_user_credits(id, get_user_credits(id) - get_pcvar_num(cvar_defcost)) }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") } } case 3: { if (get_user_health(id) >= 250) { client_printcolor(id, "!g[SHOP]!n Ai atins limita de viata!") return PLUGIN_CONTINUE } else if (get_user_credits(id) >= get_pcvar_num(cvar_hpcost)) { set_user_health(id, get_user_health(id) + 50) set_user_credits(id, get_user_credits(id) - get_pcvar_num(cvar_hpcost)) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t 50 HP!") }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") return PLUGIN_CONTINUE } case 4: { if (get_user_armor(id) >= 500) { client_printcolor(id, "!g[SHOP]!n Ai atins limita maxima de armura!") return PLUGIN_CONTINUE } else if (get_user_credits(id) >= get_pcvar_num(cvar_apcost)) { set_user_armor(id, get_user_armor(id) + 100) set_user_credits(id, get_user_credits(id) - get_pcvar_num(cvar_apcost)) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t 100 AP!") }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") return PLUGIN_CONTINUE } case 5: { if (cs_get_user_team(id) != CS_TEAM_CT) { return PLUGIN_HANDLED }else{ if( ~HasUserNoFlash(id) ) { if (get_user_credits(id) >= get_pcvar_num(cvar_nfcost)) { has_nf[id] = true SetUserNoFlash(id) set_user_credits(id, get_user_credits(id) - get_pcvar_num(cvar_nfcost)) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t No Flash!") } }else client_printcolor(id, "!g[SHOP]!n Ai deja No Flash!") } } case 6: { if (cs_get_user_team(id) != CS_TEAM_T) { if (!item_have[id]) { if (get_user_credits(id) >= get_pcvar_num(cvar_petcost)) { create_pet(id) client_printcolor(id, "!g[SHOP]!n Ai cumparat!t PET!") set_user_credits(id, get_user_credits(id) - get_pcvar_num(cvar_petcost)) }else client_printcolor(id, "!g[SHOP]!n Nu ai suficiente credite!") }else client_printcolor(id, "!g[SHOP]!n Detii deja un^3 PET!") } } default : return PLUGIN_CONTINUE } return PLUGIN_CONTINUE } public hebuy(id) { g_hebuyable = 1 remove_task(id) } public fw_TakeDamage(victim, inflictor, attacker, Float:damage) { if (victim == attacker || !is_user_connected(attacker)) return HAM_IGNORED if (has_sknife[attacker] && get_user_weapon(attacker) == CSW_KNIFE) { damage *= 2.0 SetHamParamFloat(4, damage) } else if(has_sknife2[attacker] && get_user_weapon(attacker) == CSW_KNIFE) { damage *= 3.0 SetHamParamFloat(4, damage) } return HAM_IGNORED } public FindEntityInSphere(id, Float:fVecOrigin[3], Float:flRadius) { if( flRadius == FLASHBANG_SEARCH_RADIUS ) { while( IsPlayer( (id=engfunc(EngFunc_FindEntityInSphere, id, fVecOrigin, flRadius)) ) ) { if( ~HasUserNoFlash(id) && is_user_alive(id) ) { forward_return(FMV_CELL, id) return FMRES_SUPERCEDE } } forward_return(FMV_CELL, 0) return FMRES_SUPERCEDE } return FMRES_IGNORED } public player_spawn(player) { if (!is_user_connected(player)) return HAM_IGNORED if (cs_get_user_team(player) != CS_TEAM_CT) { kill_pet(player) item_have[player] = 0 return HAM_IGNORED } else if(item_have[player]) { fm_set_user_gravity(player, player_gravity) set_user_health(player, get_user_health(player) + 250) set_user_armor(player, get_user_armor(player) + 350) g_has_speed[player] = true } parachute_reset(player) return HAM_IGNORED } public client_PreThink(id) { //Parachute model animation information //0 - deploy - 84 frames //1 - idle - 39 frames //2 - detach - 29 frames if (!g_has_parachute[id]) return; static flags, Float:frame, button, oldbutton button = get_user_button(id) oldbutton = get_user_oldbutton(id) flags = get_entity_flags(id) if (g_para_ent[id] > 0 && (flags & FL_ONGROUND)) { if (get_pcvar_num(cvar_parachute)) { if (entity_get_int(g_para_ent[id],EV_INT_sequence) != 2) { entity_set_int(g_para_ent[id], EV_INT_sequence, 2) entity_set_int(g_para_ent[id], EV_INT_gaitsequence, 1) entity_set_float(g_para_ent[id], EV_FL_frame, 0.0) entity_set_float(g_para_ent[id], EV_FL_fuser1, 0.0) entity_set_float(g_para_ent[id], EV_FL_animtime, 0.0) return; } frame = entity_get_float(g_para_ent[id],EV_FL_fuser1) + 2.0 entity_set_float(g_para_ent[id],EV_FL_fuser1,frame) entity_set_float(g_para_ent[id],EV_FL_frame,frame) if (frame > 254.0) parachute_reset(id) } else parachute_reset(id) return; } if (button & IN_USE) { new Float:velocity[3]; entity_get_vector(id, EV_VEC_velocity, velocity); if (velocity[2] < 0.0) { if(g_para_ent[id] <= 0) { g_para_ent[id] = create_entity("info_target") if(g_para_ent[id] > 0) { entity_set_string(g_para_ent[id],EV_SZ_classname,"parachute") entity_set_edict(g_para_ent[id], EV_ENT_aiment, id) entity_set_edict(g_para_ent[id], EV_ENT_owner, id) entity_set_int(g_para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW) entity_set_model(g_para_ent[id], MODEL_PARACHUTE) entity_set_int(g_para_ent[id], EV_INT_sequence, 0) entity_set_int(g_para_ent[id], EV_INT_gaitsequence, 1) entity_set_float(g_para_ent[id], EV_FL_frame, 0.0) entity_set_float(g_para_ent[id], EV_FL_fuser1, 0.0) } } else if (g_para_ent[id] > 0) { entity_set_int(id, EV_INT_sequence, 3) entity_set_int(id, EV_INT_gaitsequence, 1) entity_set_float(id, EV_FL_frame, 1.0) entity_set_float(id, EV_FL_framerate, 1.0) velocity[2] = (velocity[2] + 40.0 < g_FallSpeed) ? velocity[2] + 40.0 : g_FallSpeed entity_set_vector(id, EV_VEC_velocity, velocity) if (entity_get_int(g_para_ent[id],EV_INT_sequence) == 0) { frame = entity_get_float(g_para_ent[id],EV_FL_fuser1) + 1.0 entity_set_float(g_para_ent[id],EV_FL_fuser1,frame) entity_set_float(g_para_ent[id],EV_FL_frame,frame) if (frame > 100.0) { entity_set_float(g_para_ent[id], EV_FL_animtime, 0.0) entity_set_float(g_para_ent[id], EV_FL_framerate, 0.4) entity_set_int(g_para_ent[id], EV_INT_sequence, 1) entity_set_int(g_para_ent[id], EV_INT_gaitsequence, 1) entity_set_float(g_para_ent[id], EV_FL_frame, 0.0) entity_set_float(g_para_ent[id], EV_FL_fuser1, 0.0) } } } } else if (g_para_ent[id] > 0) parachute_reset(id) } else if ((oldbutton & IN_USE) && g_para_ent[id] > 0) parachute_reset(id) } parachute_reset(id, remove = 0) { if(g_para_ent[id] > 0 && is_valid_ent(g_para_ent[id])) { remove_entity(g_para_ent[id]); g_para_ent[id] = 0 } if (!remove) g_has_parachute[id] = true else g_has_parachute[id] = false } public buypet(id) { if (!is_user_alive(id)) { client_printcolor(id, "^4[Furien Pet]^1 Nu poti cumpara pet cand esti mort.") return PLUGIN_CONTINUE } if (cs_get_user_team(id) != CS_TEAM_CT) { client_printcolor(id, "^4[Furien Pet]^1 Numai^3 Anti-furienii^1 pot cumpara pet.") return PLUGIN_CONTINUE } if (!item_have[id]) { if (get_user_credits(id) >= get_pcvar_num(cvar_petcost)) { set_user_credits(id, get_user_credits(id) - get_pcvar_num(cvar_petcost)) client_printcolor(id, "^4[Furien Pet]^1 Ai cumparat^3 PET.") create_pet(id) }else client_printcolor(id, "^4[Furien Pet]^1 Nu ai destule^3 credite.") }else client_printcolor(id, "^4[Furien Pet]^1 Detii deja un pet!") return PLUGIN_CONTINUE } public client_disconnect(id) { remove_task(id) parachute_reset(id, 1) } public kill_pet(id) { if(pev_valid(item_pet[id])) { set_pev(item_pet[id],pev_sequence,pet_die) set_pev(item_pet[id],pev_gaitsequence,pet_die) set_pev(item_pet[id],pev_framerate,1.0) set_pev(item_pet[id],PET_FLAG,PET_KILLED) fm_drop_to_floor(item_pet[id]) item_have[id] = 0 g_has_speed[id] = false } item_pet[id] = 0 } public create_pet(id) { item_pet[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString,"info_target")) set_pev(item_pet[id],pev_classname,"zp_bat") engfunc(EngFunc_SetModel,item_pet[id],pet_model) new Float:origin[3] pev(id,pev_origin,origin) set_pev(item_pet[id],pev_origin,origin) set_pev(item_pet[id],pev_solid,SOLID_TRIGGER) set_pev(item_pet[id],pev_movetype,MOVETYPE_FLY) set_pev(item_pet[id],pev_owner,33) set_pev(item_pet[id],pev_nextthink,1.0) set_pev(item_pet[id],pev_sequence,0) set_pev(item_pet[id],pev_gaitsequence,0) set_pev(item_pet[id],pev_framerate,1.0) set_pev(item_pet[id], pev_renderfx, kRenderFxGlowShell) set_pev(item_pet[id], pev_rendercolor, Float:{0.0, 0.0, 200.0}) fm_set_user_gravity(id,player_gravity) set_user_health(id, get_user_health(id) + 250) set_user_armor(id, get_user_armor(id) + 350) engfunc(EngFunc_EmitSound,item_pet[id],CHAN_AUTO,pet_sounds[random_num(0,sizeof pet_sounds - 1)],1.0, 1.2, 0, PITCH_NORM) item_have[id] = 1 g_has_speed[id] = true } public FM_Think_hook(ent) { for(new i = 0; i <= maxplayers; i++) { if(ent == item_pet[i]) { static Float:origin[3] static Float:origin2[3] static Float:velocity[3] pev(ent,pev_origin,origin2) get_offset_origin_body(i,Float:{50.0,0.0,0.0},origin) if(get_distance_f(origin,origin2) > 300.0) { set_pev(ent,pev_origin,origin) } else if(get_distance_f(origin,origin2) > 80.0) { get_speed_vector(origin2,origin,250.0,velocity) set_pev(ent,pev_velocity,velocity) if(pev(ent,pev_sequence) != pet_run || pev(ent,pev_framerate) != pet_run_speed) { set_pev(ent,pev_sequence,pet_run) set_pev(ent,pev_gaitsequence,pet_run) set_pev(ent,pev_framerate,pet_run_speed) } } else if(get_distance_f(origin,origin2) < 75.0) { if(pev(ent,pev_sequence) != pet_idle || pev(ent,pev_framerate) != pet_idle_speed) { set_pev(ent,pev_sequence,pet_idle) set_pev(ent,pev_gaitsequence,pet_idle) set_pev(ent,pev_framerate,pet_idle_speed) } set_pev(ent,pev_velocity,Float:{0.0,0.0,0.0}) } pev(i,pev_origin,origin) origin[2] = origin2[2] entity_set_aim(ent,origin) set_pev(ent,pev_nextthink,1.0) break } } } public FM_PlayerPreThink_hook(id) { if (!is_user_alive(id)) return if(allowed_leap(id)) { static Float:velocity[3] velocity_by_aim(id, 500, velocity) velocity[2] = 300.0 set_pev(id, pev_velocity, velocity) item_leaptime[id] = get_gametime() } } public allowed_leap(id) { if(!item_have[id]) return false if (!(pev(id, pev_flags) & FL_ONGROUND) || fm_get_speed(id) < 80) return false static buttons buttons = pev(id, pev_button) if (!is_user_bot(id) && (!(buttons & IN_JUMP) || !(buttons & IN_DUCK))) return false if (get_gametime() - item_leaptime[id] < 3) return false return true } public is_a_player(ent) { if(ent > 0 && ent < 33) return true return false } public remove_pet(ent) { if(pev_valid(ent)) fm_remove_entity(ent) } // Get entity's speed (from fakemeta_util) stock get_offset_origin_body(ent,const Float:offset[3],Float:origin[3]) { if(!pev_valid(ent)) return 0; new Float:angle[3] pev(ent,pev_angles,angle) pev(ent,pev_origin,origin) origin[0] += floatcos(angle[1],degrees) * offset[0] origin[1] += floatsin(angle[1],degrees) * offset[0] origin[1] += floatcos(angle[1],degrees) * offset[1] origin[0] += floatsin(angle[1],degrees) * offset[1] return 1; } stock get_speed_vector(const Float:origin1[3],const Float:origin2[3],Float:speed, Float:new_velocity[3]) { new_velocity[0] = origin2[0] - origin1[0] new_velocity[1] = origin2[1] - origin1[1] new_velocity[2] = origin2[2] - origin1[2] new Float:num = floatsqroot(speed*speed / (new_velocity[0]*new_velocity[0] + new_velocity[1]*new_velocity[1] + new_velocity[2]*new_velocity[2])) new_velocity[0] *= num new_velocity[1] *= num new_velocity[2] *= num return 1; } stock entity_set_aim(ent,const Float:origin2[3],bone=0) { if(!pev_valid(ent)) return 0; static Float:origin[3] origin[0] = origin2[0] origin[1] = origin2[1] origin[2] = origin2[2] static Float:ent_origin[3], Float:angles[3] if(bone) engfunc(EngFunc_GetBonePosition,ent,bone,ent_origin,angles) else pev(ent,pev_origin,ent_origin) origin[0] -= ent_origin[0] origin[1] -= ent_origin[1] origin[2] -= ent_origin[2] static Float:v_length v_length = vector_length(origin) static Float:aim_vector[3] aim_vector[0] = origin[0] / v_length aim_vector[1] = origin[1] / v_length aim_vector[2] = origin[2] / v_length static Float:new_angles[3] vector_to_angle(aim_vector,new_angles) new_angles[0] *= -1 if(new_angles[1]>180.0) new_angles[1] -= 360 if(new_angles[1]<-180.0) new_angles[1] += 360 if(new_angles[1]==180.0 || new_angles[1]==-180.0) new_angles[1]=-179.999999 set_pev(ent,pev_angles,new_angles) set_pev(ent,pev_fixangle,1) return 1; } // Stockuri stock client_printcolor(const id, const message[], any:...) { new g_message[191]; vformat(g_message, charsmax(g_message), message, 3) replace_all(g_message, charsmax(g_message), "!g", "^4") replace_all(g_message, charsmax(g_message), "!n", "^1") replace_all(g_message, charsmax(g_message), "!t", "^3") if(is_user_connected(id)) { message_begin(MSG_ONE_UNRELIABLE, g_msgSayText,_, id) write_byte(id) write_string(g_message) message_end() } }
Aragon.inc
- | Afiseaza codul
native get_user_credits(index) native set_user_credits(index, value)