Как добавить путь к модельки игрока если она не стандартная.

Сообщения
166
Реакции
34
Помог
3 раз(а)
Недопустимый заголовок темы
Не большое предисловие, за интересовал плагин кража одежды с убитого противника.
В официальной теме не на шел упоминания про замену модельки администратора.
На других ресурсах указано, что данный плагин способен на это.
Сравнив два исходных кода, не нашел в них отличия. Разумнее предположить, что это дезинформация, возможно перевели описание плагина с официального ресурса не правильно.
Сам плагин
Код:
/* AMX ModX script.
*
* CovertOps © 2003, Phreak
* inspired by Krypt-Keep3r
* This file is provided as is (no warranties).
*
* Usage:
*   The Players can use "getclothes" to steal the clothes from
*   corpses.
*   After round end all models are turned back to normal.
*
* Setup:
*   CovertOps can be disabled by setting amx_covertops to 0
*
* Known Bugs:
*   After been switched to the other team (for example by a team balancer)
*   You will get the model you've used in your old team. FIXED by xmdxtremekiller
*
* Version history:
*   v1.0F
*   Converted to amxmodx and fixed bug mentioned as above and also added help in game.
*   v0.2a
*   - increased array size
*   v0.2
*   - added sound when taking clothes
*   - clothes can only be taken one time per round
*   v0.1
*   - initial version
*/

#include <amxmodx>
#include <cstrike>

new pl_origins[33][3]
new pl_skins[33][32]
new bool:pl_carmouflaged[33] = {false,...}
new bool:pl_taken[33] = {false,...}

public get_clothes(id) {
    if (get_cvar_num("amx_covertops")==0)
        return PLUGIN_HANDLED
    if (!is_user_alive(id))
        return PLUGIN_HANDLED
    new cur_origin[3],players[32],pl_num=0,dist,last_dist=99999,last_id,model[32]
    get_user_origin(id,cur_origin,0)
    get_players(players,pl_num,"b")
    if (pl_num>0) {
        for (new i=0;i<pl_num;i++) {
            if (players[i]!=id) {
                dist = get_distance(cur_origin,pl_origins[players[i]])
                if (dist<last_dist) {
                    last_id = players[i]
                    last_dist = dist
                }
            }
        }
        if (last_dist<80) {
            if (pl_taken[last_id]) {
                client_print(id,print_chat,"These clothes have already been taken.")
                return PLUGIN_CONTINUE
            }
            get_user_info(last_id,"model",model,31)
            get_user_info(id,"model",pl_skins[id],31)
            cs_set_user_model(id, model)
            pl_carmouflaged[id] = true
            pl_taken[last_id] = true
            emit_sound(id,CHAN_VOICE,"items/tr_kevlar.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
            client_print(id,print_chat,"You are now looking like a %s",model)
            client_cmd(id,"say_team Don't shoot, I'm going undercover !")
            return PLUGIN_CONTINUE
        }
    }
    client_print(id,print_chat,"There is no corpse nearby to get clothes from")
    return PLUGIN_CONTINUE
}

public player_die() {
    new victim = read_data(2)
    get_user_origin(victim,pl_origins[victim],0)
    if (pl_carmouflaged[victim]) {
        cs_set_user_model(victim, pl_skins[victim])
    }
    return PLUGIN_CONTINUE
}

public new_round(id){
    if (pl_carmouflaged[id]) {
        cs_reset_user_model(id)
        pl_carmouflaged[id] = false
    } else {
        get_user_info(id,"model",pl_skins[id],31)
    }
    pl_taken[id] = false
    return PLUGIN_CONTINUE
}

public covert_help(id){
    client_print(id,print_chat,"Use the bind for CovertOps, in console: bind x getclothes")
    client_print(id,print_chat,"x can be any key you want it to be.")
    return PLUGIN_CONTINUE
}

public plugin_precache(){
    precache_sound( "items/tr_kevlar.wav")
    return PLUGIN_CONTINUE
}

public plugin_init()
{
    register_plugin("CovertOps","1.0F","Xmdxtremekiller")
    register_clcmd("say_team getclothes","covert_help")
    register_clcmd("say /covertops","covert_help")
    register_clcmd("getclothes","get_clothes")
    register_event("ResetHUD", "new_round", "b")
    register_event("DeathMsg","player_die","a")
    register_cvar("amx_covertops","1")
    return PLUGIN_CONTINUE
}
В части этого кода, как я понимаю и есть этот функционал, который заменяет одну модельку игрока на противоположную (противника)
Код:
public get_clothes(id) {
    if (get_cvar_num("amx_covertops")==0)
        return PLUGIN_HANDLED
    if (!is_user_alive(id))
        return PLUGIN_HANDLED
    new cur_origin[3],players[32],pl_num=0,dist,last_dist=99999,last_id,model[32]
    get_user_origin(id,cur_origin,0)
    get_players(players,pl_num,"b")
    if (pl_num>0) {
        for (new i=0;i<pl_num;i++) {
            if (players[i]!=id) {
                dist = get_distance(cur_origin,pl_origins[players[i]])
                if (dist<last_dist) {
                    last_id = players[i]
                    last_dist = dist
                }
            }
        }
}
Вот собственно и вопрос, нужно прописать путь до модельки администратора обеих команд и нужно как то проверять игрока, администратор он или нет.
Я правильно понимаю.
16 Апр 2019
new const g_szModel[] = "/models/ct_admin"
16 Апр 2019
Вроде понял с чего нужно начать

Код:
public plugin_precache()
{
    precache_model("models/player/adminct/adminct.mdl")
    precache_model("models/player/admint/admint.mdl")
}
16 Апр 2019
Заголовок подправил, извиняюсь
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу