Участник
Пользователь
- Сообщения
- 166
- Реакции
- 34
- Помог
- 3 раз(а)
Недопустимый заголовок темы
Не большое предисловие, за интересовал плагин кража одежды с убитого противника.
В официальной теме не на шел упоминания про замену модельки администратора.
На других ресурсах указано, что данный плагин способен на это.
Сравнив два исходных кода, не нашел в них отличия. Разумнее предположить, что это дезинформация, возможно перевели описание плагина с официального ресурса не правильно.
Сам плагин
В части этого кода, как я понимаю и есть этот функционал, который заменяет одну модельку игрока на противоположную (противника)
Вот собственно и вопрос, нужно прописать путь до модельки администратора обеих команд и нужно как то проверять игрока, администратор он или нет.
Я правильно понимаю. new const g_szModel[] = "/models/ct_admin" Вроде понял с чего нужно начать
В официальной теме не на шел упоминания про замену модельки администратора.
На других ресурсах указано, что данный плагин способен на это.
Сравнив два исходных кода, не нашел в них отличия. Разумнее предположить, что это дезинформация, возможно перевели описание плагина с официального ресурса не правильно.
Сам плагин
Код:
/* 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
16 Апр 2019
Код:
public plugin_precache()
{
precache_model("models/player/adminct/adminct.mdl")
precache_model("models/player/admint/admint.mdl")
}
16 Апр 2019
Заголовок подправил, извиняюсь