1. 3oJIoTou Пользователь

    Регистрация:
    07.12.15
    Сообщения:
    21
    Симпатии:
    10
    Пол:
    Мужской
    Приветствую товарищи, знающие толк в этом не легком деле!
    Помогите с плагином пожалуйста.
    Нужно в нем сделать так чтоб нож выбирался в начале раунда(и при этом команда /knife чтоб оставалась) и чтоб выбор ножа можно было запомнить или сохранить(чтоб не надоедал каждый раз и не вылазил). Ну и чтоб нож можно было выбирать один раз за раунд.
    PHP:
    #include <amxmodx>
    #include <engine>
    #include <fakemeta>
    #include <fun>
    #include <amxmisc>
    #include <hamsandwich>
    #include <xs>
    #include <dhudmessage>
    #include <cstrike>

    #define PLUGIN "Knife Mod"
    #define VERSION "1.0" 
    #define AUTHOR "korolr"

    #define TASK_INTERVAL 4.0 
    #define MAX_HEALTH 255 

    new knife_model[33
    new 
    g_Menu

    new CVAR_HIGHSPEED
    new CVAR_LOWSPEED
    new CVAR_LOWGRAV
    new CVAR_NORMGRAV
    new CVAR_HEALTH_ADD
    new CVAR_HEALTH_MAX
    new CVAR_DAMAGE



    public plugin_init(){ 
     
     
    register_plugin(PLUGINVERSIONAUTHOR
     
     
    register_event("Damage","event_damage","be")
     
    register_event("CurWeapon","CurWeapon","be","1=1"
     
     
    g_Menu register_menuid("Knife Mod")
     
    register_menucmd(g_Menu1023,"knifemenu")
     
     
    register_clcmd("say /knife","display_knife")
     
     
    CVAR_HIGHSPEED register_cvar("km_highspeed","340")
     
    CVAR_LOWSPEED register_cvar("km_lowspeed","170")
     
    CVAR_HEALTH_ADD register_cvar("km_addhealth","3")
     
    CVAR_HEALTH_MAX register_cvar("km_maxhealth","70")
     
    CVAR_DAMAGE register_cvar("km_damage","2")
     
    CVAR_LOWGRAV register_cvar("km_lowgravity","400")
     
    CVAR_NORMGRAV get_cvar_pointer("sv_gravity")
     
     
    set_task(480.0,"kmodmsg"0__,"b")
    }

    public 
    plugin_precache(){ 
     
    precache_model("models/knifecso/v_fire_knife.mdl"
     
    precache_model("models/knifecso/v_ninja_knife.mdl")
     
    precache_model("models/knifecso/v_crowbars.mdl")
     
    precache_model("models/knifecso/v_flash_knife.mdl")
     
    precache_model("models/knifecso/v_knife.mdl"


    public 
    display_knife(id){
     new 
    menuBody[512]
     
    add(menuBody511,"\wМеню выбора ножей CSO ^n^n")
     
    add(menuBody511,"1. Мачето \r(Большой урон/Малеьнька скорость)\w^n")
     
    add(menuBody511,"2. Бак нож \r(Не слышно шагов)\w^n")
     
    add(menuBody511,"3. Быстрый нож \r(Большая скорость)\w^n")
     
    add(menuBody511,"4. Лёгкий нож \r(Гравити)\w^n")
     
    add(menuBody511,"5. Асасин \r(Регенирация здаровья)\w^n^n")
     
    add(menuBody511,"0. Exit^n")
     
     new 
    keys =( 1<<1<<1<<1<<1<<1<<)
     
    show_menu(idkeysmenuBody,-1,"Knife Mod")
    }

    public 
    knifemenu(idkey){
     switch(
    key
     {
     case 
    0SetKnife(id 4)
     case 
    1SetKnife(id 2)
     case 
    2SetKnife(id 3)
     case 
    3SetKnife(id 1)
     case 
    4SetKnife(id 0)
     default: return 
    PLUGIN_HANDLED
     
    }
     
    SaveData(id)
     return 
    PLUGIN_HANDLED


    public 
    SetKnife(id Knife){
     
    knife_model[id]= Knife
     
     
    new ClipAmmoWeapon get_user_weapon(idClipAmmo
     if ( 
    Weapon != CSW_KNIFE )
     return 
    PLUGIN_HANDLED
     
     
    new vModel[56],pModel[56]
     
     switch(
    Knife)
    {
     case 
    0:{
     
    format(vModel,55,"models/knifecso/v_knife.mdl")

    }
     case 
    1:{
     
    format(vModel,55,"models/knifecso/v_fire_knife.mdl")
    }
     case 
    2:{
     
    format(vModel,55,"models/knifecso/v_flash_knife.mdl")
    }
     case 
    3:{
     
    format(vModel,55,"models/knifecso/v_crowbars.mdl")
    }
     case 
    4:{
     
    format(vModel,55,"models/knifecso/v_ninja_knife.mdl")
    }

     
     
    entity_set_string(idEV_SZ_viewmodelvModel)
     
    entity_set_string(idEV_SZ_weaponmodelpModel)
     
     return 
    PLUGIN_HANDLED
    }

    public 
    event_damageid ){
     
     new 
    victim_id id;
     if(!
    is_user_connectedvictim_id )) return PLUGIN_CONTINUE
     
    new dmg_take read_data);
     new 
    dmgtype read_data);
     new 
    Float:multiplier get_pcvar_float(CVAR_DAMAGE);
     new 
    Float:damage dmg_take multiplier;
     new 
    health get_user_healthvictim_id );
     
     new 
    iWeapIDattacker_id get_user_attackervictim_idiWeapID );
     
     if(!
    is_user_connectedattacker_id )||!is_user_alivevictim_id )){
     return 
    PLUGIN_HANDLED
     
    }
     
     if( 
    iWeapID == CSW_KNIFE && knife_model[attacker_id]== ){
     
     if( 
    floatround(damage)>= health ){
     if( 
    victim_id == attacker_id ){
     return 
    PLUGIN_CONTINUE
     
    }else{
     
    log_killattacker_idvictim_id,"knife");
    }
     
     return 
    PLUGIN_CONTINUE
     
    }else {
     if( 
    victim_id == attacker_id ) return PLUGIN_CONTINUE
     
     fakedamage
    victim_id,"weapon_knife"damagedmgtype );
    }
    }
     return 
    PLUGIN_CONTINUE
    }

    public 
    CurWeapon(id)
    {
     new 
    Weapon read_data(2)
     
     
    // Set Knife Model
     
    SetKnife(idknife_model[id]) 
     
     
    // Task Options
     
     
    if(knife_model[id]== &&!task_exists(id)&& Weapon == CSW_KNIFE)
     
    set_task(TASK_INTERVAL ,"task_healing",id,_,_,"b")
     else if(
    task_exists(id))
     
    remove_task(id)
     
     
    // Abilities
     
    set_user_footsteps(id ,((knife_model[id]== && Weapon == CSW_KNIFE)? 0))
     
     new 
    Float:Gravity =((knife_model[id]== && Weapon == CSW_KNIFE)? get_pcvar_float(CVAR_LOWGRAV): get_pcvar_float(CVAR_NORMGRAV))/ 800.0
     set_user_gravity
    (id Gravity)
     
     
    // Speed
     
    new Float:Speed
     
    if(Weapon != CSW_KNIFE || knife_model[id]< 3)
     return 
    PLUGIN_CONTINUE
     
    else if(knife_model[id]== 3)
     
    Speed get_pcvar_float(CVAR_HIGHSPEED)
     else if(
    knife_model[id]== 4)
     
    Speed get_pcvar_float(CVAR_LOWSPEED)
     
     
    set_user_maxspeed(idSpeed)
     
     return 
    PLUGIN_HANDLED 
     
    }

    stock log_kill(killervictimweapon[],headshot){
     
    user_silentkillvictim );
     
     
    message_beginMSG_ALLget_user_msgid("DeathMsg"),{0,0,0}, );
     
    write_bytekiller );
     
    write_bytevictim );
     
    write_byteheadshot );
     
    write_stringweapon );
     
    message_end();
     
     new 
    kfrags get_user_fragskiller );
     
    set_user_fragskillerkfrags++);
     new 
    vfrags get_user_fragsvictim );
     
    set_user_fragsvictimvfrags++);
     
     return 
    PLUGIN_CONTINUE



    public 
    task_healing(id){ 
     new 
    addhealth get_pcvar_num(CVAR_HEALTH_ADD
     if (!
    addhealth)
     return 
     
     new 
    maxhealth get_pcvar_num(CVAR_HEALTH_MAX
     if (
    maxhealth MAX_HEALTH){ 
     
    set_pcvar_num(CVAR_HEALTH_MAXMAX_HEALTH
     
    maxhealth MAX_HEALTH 
     

     
     new 
    health get_user_health(id
     
     if (
    is_user_alive(id)&&(health maxhealth)){ 
     
    set_user_health(idhealth addhealth)
     
    set_hudmessage(02550,-1.00.2501.02.00.10.14)
     
    show_hudmessage(id,"<< !!HEAL IN PROGRESS!! >>")
     
    message_begin(MSG_ONEget_user_msgid("ScreenFade"),{0,0,0}, id)
     
    write_short(1<<10)
     
    write_short(1<<10)
     
    write_short(0x0000)
     
    write_byte(0)
     
    write_byte(200)
     
    write_byte(0)
     
    write_byte(75)
     
    message_end()
    }
     
     else {
     if (
    is_user_alive(id)&&(health maxhealth))
     
    remove_task(id)
    }


    public 
    client_disconnect(id){ 
     if(
    task_exists(id)) remove_task(id



    public 
    kmodmsg(){ 
     
     
    client_print(0,print_chat,"[AMXX] Type /knife to change your knife skins")


    public 
    client_authorized(id)
    {
     
    LoadData(id)
    }

    SaveData(id)

     
     new 
    authid[32]
     
    get_user_authid(idauthid31)
     
     new 
    vaultkey[64]
     new 
    vaultdata[64]
     
     
    format(vaultkey63,"KMOD_%s"authid)
     
    format(vaultdata63,"%d"knife_model[id])
     
    set_vaultdata(vaultkeyvaultdata)
    }

    LoadData(id

     new 
    authid[32
     
    get_user_authid(id,authid,31)
     
     new 
    vaultkey[64], vaultdata[64]
     
     
    format(vaultkey63,"KMOD_%s"authid)
     
    get_vaultdata(vaultkeyvaultdata63)
     
    knife_model[id]= str_to_num(vaultdata)
     

    /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
    *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
    */