搜索
查看: 2798|回复: 6

[AMXX 无源码] 爬梯

[复制链接]
发表于 2009-2-7 19:14:12 | 显示全部楼层 |阅读模式 来自 香港
本帖最后由 hikaru15jp 于 2009-2-8 08:01 编辑

程序作者: xPaw
增补作者: chungkiman
插件名称: ladder
插件语言:  中文
适用版本: AMXX1.76 or above
版权声明:  
说  明:  制作梯的插件,放ladder models 上去再实体化,可爬梯及有爬梯声
Admin指令:
say .ladder        -建立梯子
say .removeladder          -删除梯子

插件由TestingServer提供

本插件是在转贴的,原发贴者没有提供源码
ps.  Mdl档放在cstrike\models
要打开 fakemeta_util modules
看影片就知道了
http://www.youtube.com/watch?v=X5CkJerjihI&eurl=http://www.nightly-love.com/viewthread.php?tid=4252

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
发表于 2009-2-7 20:32:48 | 显示全部楼层 来自 广东佛山
确实很好看
回复

使用道具 举报

发表于 2009-2-7 23:21:43 | 显示全部楼层 来自 广东广州
源码.在这里

#include <amxmodx>
#include <fakemeta_util>

#pragma semicolon 1

#define MODEL "models/ladder.mdl"

// ladder dimensions
new Float:gLadderMinY[3] = {-32.0,-4.0,-32.0};
new Float:gLadderMaxY[3] = { 32.0, 4.0, 32.0};

new bool:gOnLadder[33];

public plugin_init() {
    register_plugin("Ladder", "1.0", "xPaw");
     
    register_clcmd("say .ladder", "cmdCreateLadder");
    register_clcmd("say .removeladder", "cmdDeleteLadder");
     
    register_forward( FM_PlayerPreThink, "fwdPlayerPreThink", 0 );
    register_forward( FM_Touch, "fwdTouch" );
}

public plugin_precache()
    precache_model( MODEL );

public fwdPlayerPreThink(id) {
    if ( is_user_alive(id)) {
        if( gOnLadder[id] ) {
            new Float:velocity[3];
            pev(id, pev_velocity, velocity);
            
            if ( (pev(id, pev_button) & IN_FORWARD) && (velocity[0] == 0.0 || velocity[1] == 0.0) ) {
                velocity[2] = 250.0;
                set_pev(id, pev_velocity, velocity);
            }
            gOnLadder[id] = false;
        }
         
        new ent, body;
        get_user_aiming(id, ent, body, 320);
         
        if (isLadder(ent)) {
            set_hudmessage(0, 25, 255, -1.0, -0.90, 0, 1.0, 1.0, 0.2, 0.2, 1);
            show_hudmessage(id, "First In-Game Ladder.");
        }
    }
}

public fwdTouch(ent, id) {
    if (is_user_alive(id) && isLadder(ent)) {
        set_pev(id, pev_movetype, MOVETYPE_FLY);
         
        gOnLadder[id] = true;
         
        // Velocity way
        new Float:velocity[3];
        pev(id, pev_velocity, velocity);
         
        if ( (pev(id, pev_button) & IN_FORWARD) && (velocity[0] == 0.0 || velocity[1] == 0.0) ) {
            velocity[2] = 250.0;
            set_pev(id, pev_velocity, velocity);
        }
         
    }
}

public cmdCreateLadder( id ) {
    if (get_user_flags(id) & ADMIN_KICK) {
        new Float:vOrigin[3];
        new origin[3];
         
        //get the origin of the player and add Z offset
        get_user_origin(id, origin, 3);
        IVecFVec(origin, vOrigin);
        vOrigin[2] += 4.0;
         
        createLadder( vOrigin );
        client_print(id, print_chat, "* You Spawned Ladder, Have Fun! :-)");
    }
}

public cmdDeleteLadder(id) {
    if (get_user_flags(id) & ADMIN_KICK) {
        new ent, body;
        get_user_aiming(id, ent, body);
         
        if (isLadder(ent)) {
            fm_remove_entity(ent);
            client_print(id, print_chat, "* You Removed Ladder.");
        }
    }
}

createLadder( Float:vOrigin[3] ) {
    new ent = fm_create_entity( "info_target" );
     
    if (fm_is_valid_ent(ent)) {
        set_pev(ent, pev_classname, "xpaw_ladder");
        set_pev(ent, pev_solid, SOLID_BBOX);
        set_pev(ent, pev_movetype, MOVETYPE_NONE);
         
        new Float:vSizeMin[3];
        new Float:vSizeMax[3];
        new Float:vAngles[3];

        vSizeMin = gLadderMinY;
        vSizeMax = gLadderMaxY;
        vAngles[0] = 90.0;
        vAngles[2] = 90.0;
         
        //adjust size min/max vectors depending on scale
        for (new i = 0; i < 3; ++i) {
            if (vSizeMin[i] != 4.0 && vSizeMin[i] != -4.0)
                vSizeMin[i] *= 1.0;
            
            if (vSizeMax[i] != 4.0 && vSizeMax[i] != -4.0)
                vSizeMax[i] *= 1.0;
        }
         
        fm_entity_set_model(ent, MODEL);
        set_pev(ent, pev_angles, vAngles);
        fm_entity_set_size(ent, vSizeMin, vSizeMax);
        fm_entity_set_origin(ent, vOrigin);
         
        return ent;
    }
     
    return 0;
}

bool:isLadder(ent) {
    if (fm_is_valid_ent(ent)) {
        new szClassname[32];
        pev(ent, pev_classname, szClassname, 32);
         
        if (equal(szClassname, "xpaw_ladder"))
            return true;
    }
    return false;
}
回复

使用道具 举报

发表于 2009-2-7 23:22:51 | 显示全部楼层 来自 广东广州
无源码..还要回复干什么.........:o
回复

使用道具 举报

发表于 2009-2-8 00:57:40 | 显示全部楼层 来自 广东阳江
僵尸F用来看看
回复

使用道具 举报

发表于 2009-2-8 00:58:47 | 显示全部楼层 来自 广东阳江
下载太贵了
DT设置得那么高- -
下一个东西要 -5
回复

使用道具 举报

发表于 2009-2-8 16:28:45 | 显示全部楼层 来自 内蒙古巴彦淖尔
还不如直接用爬墙插件,省了打命令!!!
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表