Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

2 страниц V   1 2

Спасите...[DR] Knifes By BiZoN исправить

, Проблема с ножом скрости
Статус пользователя shram47
сообщение 23.12.2015, 5:33
Сообщение #1


Стаж: 10 лет
Город: Москва

Сообщений: 222
Благодарностей: 68
Полезность: 173

Ребят, такая с ним проблема ...
1) У Админского нету скорости, хотя типо должна быть.
2)Ножик скорости неисправно работает.
- Любой другой ножик, нужно взять , чтобы способность работала.
А берёшь ножик скорости и даже если у тебя в руках пистолет или автомат ты несёшься быстрее всех.

Может кто помочь? Исправить так:
Что когда нож в курах, тогда и бежишь, а когда переключаешься на оружие то идёшь обычно.


код
Код:
// [DR] Knifes By BiZoN
// Спасибо Eriurias за качественную регенерацию
// Плагин менее затратен в плане нагрузки, в отличие от своих аналогов, использующих CurWeapon вместо Ham_Item_deploy
// Снята затрата двойного прыжка в плане использования события прыжка, а не форвардов, вызывающихся по десятку раз каждую секунду
// Способности работают только тогда, когда в руках нож
// Ну и многое другое, что вы можете увидеть во время работы плагина
// Огромная просьба: если найдете баги или недочеты, пишите, пожалуйста, мне в скайп: vitya12345629 или в ВК: vk.com/6u3oh
// [DR] Knifes By BiZoN

#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "[DR] Knifes"
#define VERSION "1.0"
#define AUTHOR "BiZoN"

#define ADMIN_FLAG ADMIN_BAN // Флаг Админа
#define VIP_FLAG ADMIN_LEVEL_H // Флаг Випа

#define REGENERATION_DELAY 1.0 // Время до регенерации
#define REGENERATION_STEP 7 // Насколько увеличивать HP
#define REGENERATION_MAX 110 // Максимальное кол-во HP

#define Ham_CS_Player_ResetMaxSpeed Ham_Item_PreFrame

new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_0
new szTwoJump[33]
new szTwoJumpNum[33]
new szDoTwoJump[33]
new KnifeId[33]

public plugin_precache()
{
precache_model("models/v_knife.mdl")
precache_model("models/knifes/v_ferrane.mdl")
precache_model("models/knifes/v_terari.mdl")
precache_model("models/knifes/v_ibuki.mdl")
precache_model("models/knifes/v_katana.mdl")
precache_model("models/knifes/v_blink.mdl")

precache_model("models/p_knife.mdl")
precache_model("models/knifes/p_ferrane.mdl")
precache_model("models/knifes/p_terari.mdl")
precache_model("models/knifes/p_ibuki.mdl")
precache_model("models/knifes/p_katana.mdl")
precache_model("models/knifes/p_blink.mdl")

precache_sound("knifes/health.wav")
precache_sound("knifes/blink_hitwall1.wav")
precache_sound("knifes/katana_hitwall1.wav")
precache_sound("knifes/ibuki_hitwall1.wav")
precache_sound("knifes/ibuki_slash1.wav")
precache_sound("knifes/ibuki_deploy1.wav")
precache_sound("knifes/terari_hitwall1.wav")
precache_sound("knifes/ferrane_hitwall1.wav")
}

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_menu("Menu 1", keys, "menu_knife")
register_clcmd("say /knife", "knife_menu")
register_clcmd("say_team /knife", "knife_menu")
register_clcmd("knife", "knife_menu")
register_clcmd("knifes", "knife_menu")
RegisterHam(Ham_CS_Player_ResetMaxSpeed, "player", "OnCBasePlayer_ResetMaxSpeed_P", true);
RegisterHam(Ham_Item_Deploy, "weapon_knife", "SetKnife", 1)
RegisterHam(Ham_Item_Holster, "weapon_knife", "KnifeSet", 1)
RegisterHam(Ham_TakeDamage, "player", "EventDamage", 0)
RegisterHam(Ham_TakeDamage, "player", "TakeDamage", .Post = true)
RegisterHam(Ham_Killed, "player", "KilledPost", .Post = true)
RegisterHam(Ham_Player_Jump, "player", "PreTwoJump")
register_forward(FM_EmitSound, "EmitSound")
}

public client_connect(id)
{
KnifeId[id] = 5
}

public client_disconnect(nClientIndex)
{
remove_task(nClientIndex)
}

public knife_menu(id)
{
static menu[650], iLen
iLen = 0
iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\yМеню \rНожей^n^n")

if(!is_user_connected(id))
return PLUGIN_CONTINUE

if(get_user_flags(id) & ADMIN_FLAG)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \yBlink \d(\rвсе абилити\d) [\rАдмин\d]^n")
keys |= MENU_KEY_1
}else{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \dBlink (\rвсе абилити\d) [\rАдмин\d]^n")
}

if(get_user_flags(id) & VIP_FLAG)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \yKatana \d(\r2х прыжок\d) [\rV.I.P\d]^n")
keys |= MENU_KEY_2
}else{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \dKatana (\r2х прыжок\d) [\rV.I.P\d]^n")
}

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r3. \yIbuki \d(\r2х урон\d)^n")
keys |= MENU_KEY_3

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \yTerari \d(\rскорость +\d)^n")
keys |= MENU_KEY_4

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \yFerrane \d(\rгравитация -\d)^n")
keys |= MENU_KEY_4

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r6. \yStandart \d(\rрегенерация HP\d)^n^n")
keys |= MENU_KEY_4

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r0. \wВыход^n")
keys |= MENU_KEY_0

show_menu(id, keys, menu, -1, "Menu 1")
return PLUGIN_HANDLED
}

public menu_knife(id, key)
{
switch(key)
{
case 0:
{
if(get_user_flags(id) & ADMIN_FLAG)
{
KnifeId[id] = 0
ColorChat(id, GREEN, "[^4Blink^1] Способность: ^4все абилити")
}
}
case 1:
{
if(get_user_flags(id) & VIP_FLAG)
{
KnifeId[id] = 1
ColorChat(id, GREEN, "[^4Katana^1] Способность: ^4двойной прыжок")
}
}
case 2:
{
KnifeId[id] = 2
ColorChat(id, GREEN, "[^4Ibuki^1] Способность: ^4двойной урон")
}
case 3:
{
KnifeId[id] = 3
ColorChat(id, GREEN, "[^4Terari^1] Способность: ^4повышенная скорость")
}
case 4:
{
KnifeId[id] = 4
ColorChat(id, GREEN, "[^4Ferrane^1] Способность: ^4пониженная гравитация")
}
case 5:
{
KnifeId[id] = 5
ColorChat(id, GREEN, "[^4Standart^1] Способность: ^4регенерация HP")
}
}
return PLUGIN_HANDLED
}

public SetKnife(weapon)
{
new id = get_pdata_cbase(weapon, 41, 4)

if(!is_user_connected(id))
return PLUGIN_CONTINUE

if(KnifeId[id] == 0)
{
set_pev(id, pev_viewmodel2, "models/knifes/v_blink.mdl")
set_pev(id, pev_weaponmodel2, "models/knifes/p_blink.mdl")
set_pdata_float(weapon, 58, 400.0)
set_pev(id, pev_gravity, 0.6)
szTwoJump[id] = true
}
if(KnifeId[id] == 1)
{
set_pev(id, pev_viewmodel2, "models/knifes/v_katana.mdl")
set_pev(id, pev_weaponmodel2, "models/knifes/p_katana.mdl")
set_pdata_float(weapon, 58, 250.0)
set_pev(id, pev_gravity, 1.0)
szTwoJump[id] = true
}
if(KnifeId[id] == 2)
{
set_pev(id, pev_viewmodel2, "models/knifes/v_ibuki.mdl")
set_pev(id, pev_weaponmodel2, "models/knifes/p_ibuki.mdl")
set_pdata_float(weapon, 58, 220.0)
set_pev(id, pev_gravity, 1.0)
szTwoJump[id] = false
}
if(KnifeId[id] == 3)
{
set_pev(id, pev_viewmodel2, "models/knifes/v_terari.mdl")
set_pev(id, pev_weaponmodel2, "models/knifes/p_terari.mdl")
set_pdata_float(weapon, 58, 380.0)
set_pev(id, pev_gravity, 1.0)
szTwoJump[id] = false
}
if(KnifeId[id] == 4)
{
set_pev(id, pev_viewmodel2, "models/knifes/v_ferrane.mdl")
set_pev(id, pev_weaponmodel2, "models/knifes/p_ferrane.mdl")
set_pdata_float(weapon, 58, 250.0)
set_pev(id, pev_gravity, 0.7)
szTwoJump[id] = false
}
if(KnifeId[id] == 5)
{
set_pev(id, pev_viewmodel2, "models/v_knife.mdl")
set_pev(id, pev_weaponmodel2, "models/p_knife.mdl")
set_pdata_float(weapon, 58, 250.0)
set_pev(id, pev_gravity, 1.0)
szTwoJump[id] = false
}
return PLUGIN_HANDLED
}

public KnifeSet(ent)
{
set_pev(get_pdata_cbase(ent, 41, 4), pev_gravity, 1.0)
}

public TakeDamage(nClientIndex)
{
if(is_user_alive(nClientIndex))
{
if (!task_exists(nClientIndex))
set_task(REGENERATION_DELAY, "StartRegeneration" , nClientIndex, _, _, "b")
}
}

public KilledPost(nClientIndex)
{
remove_task(nClientIndex)
}

public StartRegeneration(nClientIndex)
{
static Float:g_iHealthPoint; pev(nClientIndex, pev_health, g_iHealthPoint);

if (g_iHealthPoint >= REGENERATION_MAX)
{
remove_task(nClientIndex);
return PLUGIN_HANDLED;
}

if(get_user_weapon(nClientIndex) == CSW_KNIFE && (KnifeId[nClientIndex] == 0 || KnifeId[nClientIndex] == 5))
{
set_pev(nClientIndex, pev_health, g_iHealthPoint + REGENERATION_STEP);
set_hudmessage(255, 0, 0, -1.0, 0.10, 1, 6.0, 1.0, 0.1, 1.0, 1)
show_hudmessage(nClientIndex, "Регенерация [+ %i HP]", REGENERATION_STEP)
client_cmd(nClientIndex, "spk knifes/health")
}
return PLUGIN_CONTINUE;
}

public EventDamage(victim, inflicator, attacker, Float:damage)
{
if(!is_user_connected(attacker))
return PLUGIN_HANDLED;

if(victim == attacker || !victim)
return PLUGIN_HANDLED;

if(get_user_team(attacker) != get_user_team (victim) && attacker != victim && get_user_weapon(attacker) == CSW_KNIFE && (KnifeId[attacker] == 0 || KnifeId[attacker] == 2))
SetHamParamFloat(4, damage * 2.0)
return PLUGIN_HANDLED;
}

public PreTwoJump(id)
{
if(szTwoJump[id] && get_user_weapon(id) == CSW_KNIFE)
{
new szButton = pev(id, pev_button)
new szOldButton = pev(id, pev_oldbuttons)

if((szButton & IN_JUMP) && !(pev(id, pev_flags) & FL_ONGROUND) && !(szOldButton & IN_JUMP))
{
if(szTwoJumpNum[id] < 1)
{
szDoTwoJump[id] = true
szTwoJumpNum[id]++

PostTwoJump(id)

return PLUGIN_CONTINUE
}
}
if((szButton & IN_JUMP) && (pev(id, pev_flags) & FL_ONGROUND))
{
szTwoJumpNum[id] = 0
}
}
return PLUGIN_CONTINUE
}

public PostTwoJump(id)
{
if(szTwoJump[id])
{
if(!is_user_alive(id))
return PLUGIN_CONTINUE

if(szDoTwoJump[id])
{
new Float:szVelocity[3]
pev(id, pev_velocity, szVelocity)

szVelocity[2] = random_float(295.0,305.0)
set_pev(id, pev_velocity, szVelocity)

szDoTwoJump[id] = false

return PLUGIN_CONTINUE
}
}
return PLUGIN_CONTINUE
}

public OnCBasePlayer_ResetMaxSpeed_P(id)
{
if(!is_user_connected(id))
return PLUGIN_CONTINUE

if(KnifeId[id] == 0)
{
set_pdata_float(id, 58, 400.0)
}
if(KnifeId[id] == 1)
{
set_pdata_float(id, 58, 250.0)
}
if(KnifeId[id] == 2)
{
set_pdata_float(id, 58, 220.0)
}
if(KnifeId[id] == 3)
{
set_pev(id, pev_maxspeed, 380.0)
}
if(KnifeId[id] == 4)
{
set_pdata_float(id, 58, 250.0)
}
if(KnifeId[id] == 5)
{
set_pdata_float(id, 58, 250.0)
}
return PLUGIN_HANDLED
}

public EmitSound(id, channel, const sound[])
{
if(equal(sound, "weapons/knife_hitwall1.wav"))
{
if(KnifeId[id] == 0)
{
emit_sound(id, channel, "knifes/blink_hitwall1.wav", 1.0, 1.0, 0, 100)
return FMRES_SUPERCEDE
}
else if(KnifeId[id] == 1)
{
emit_sound(id, channel, "knifes/katana_hitwall1.wav", 1.0, 1.0, 0, 100)
return FMRES_SUPERCEDE
}
else if(KnifeId[id] == 2)
{
emit_sound(id, channel, "knifes/ibuki_hitwall1.wav", 1.0, 1.0, 0, 100)
return FMRES_SUPERCEDE
}
else if(KnifeId[id] == 3)
{
emit_sound(id, channel, "knifes/terari_hitwall1.wav", 1.0, 1.0, 0, 100)
return FMRES_SUPERCEDE
}
else if(KnifeId[id] == 4)
{
emit_sound(id, channel, "knifes/ferrane_hitwall1.wav", 1.0, 1.0, 0, 100)
return FMRES_SUPERCEDE
}else{
return HAM_IGNORED
}
}
if(equal(sound, "weapons/knife_slash1.wav") || equal(sound, "weapons/knife_slash2.wav"))
{
if(KnifeId[id] == 2)
{
emit_sound(id, channel, "knifes/ibuki_slash1.wav", 1.0, 1.0, 0, 100)
return FMRES_SUPERCEDE
}else{
return HAM_IGNORED
}
}
if(equal(sound, "weapons/knife_deploy1.wav"))
{
if(KnifeId[id] == 2)
{
emit_sound(id, channel, "knifes/ibuki_deploy1.wav", 1.0, 1.0, 0, 100)
return FMRES_SUPERCEDE
}else{
return HAM_IGNORED
}
}
return HAM_IGNORED
}
colorchat.inc
Код:
#if defined _colorchat_included
#endinput
#endif
#define _colorchat_included

/* ColorChat Support */
#define NORMAL DontChange
#define GREEN DontChange
#define RED Red
#define BLUE Blue
#define GREY Grey
#define ColorChat client_print_color

#define MAX_TRANSLATION_LENGTH 2048

enum {
DontChange = 0,
Grey = -1,
Red = -2,
Blue = -3
};

#define print_team_default DontChange
#define print_team_grey Grey
#define print_team_red Red
#define print_team_blue Blue

stock client_print_color(id, sender, const fmt[], any:...)
{
// check if id is different from 0
if (id && !is_user_connected(id))
{
return 0;
}

if (sender < Blue || sender > 32)
{
sender = DontChange;
}
else if (sender < DontChange)
{
sender = -sender + 32; // align indexes to the TeamInfo ones
}

static const szTeamName[][] =
{
"",
"TERRORIST",
"CT"
};

new szMessage[191];

new iParams = numargs();

// Specific player code
if (id)
{
if (iParams == 3)
{
copy(szMessage, charsmax(szMessage), fmt); // copy so message length doesn't exceed critical 192 value
}
else
{
vformat(szMessage, charsmax(szMessage), fmt, 4);
}

if (sender > (32 - Grey))
{
if (sender > (32 - Blue))
{
sender = id;
}
else
{
_CC_TeamInfo(id, sender, szTeamName[sender - (32 - Grey)]);
}
}
_CC_SayText(id, sender, szMessage);
}

// Send message to all players
else
{
// Figure out if at least 1 player is connected
// so we don't execute useless useless code if not
new iPlayers[32], iNum;
get_players(iPlayers, iNum, "ch");
if (!iNum)
{
return 0;
}

new iMlNumber, i, j;
new Array:aStoreML = ArrayCreate();
if (iParams >= 5) // ML can be used
{
for (j = 3; j < iParams; j++)
{
// retrieve original param value and check if it's LANG_PLAYER value
if (getarg(j) == LANG_PLAYER)
{
i = 0;
// as LANG_PLAYER == -1, check if next parm string is a registered language translation
while ((szMessage[i] = getarg(j + 1, i++))) {}
if (GetLangTransKey(szMessage) != TransKey_Bad)
{
// Store that arg as LANG_PLAYER so we can alter it later
ArrayPushCell(aStoreML, j++);

// Update ML array saire so we'll know 1st if ML is used,
// 2nd how many args we have to alterate
iMlNumber++;
}
}
}
}

// If arraysize == 0, ML is not used
// we can only send 1 MSG_ALL message if sender != 0
if (!iMlNumber)
{
if (iParams == 3)
{
copy(szMessage, charsmax(szMessage), fmt);
}
else
{
vformat(szMessage, charsmax(szMessage), fmt, 4);
}
if (0 < sender < (32 - Blue)) // if 0 is passed, need to loop
{
if (sender > (32 - Grey))
{
_CC_TeamInfo(0, sender, szTeamName[sender - (32 - Grey)]);
}
_CC_SayText(0, sender, szMessage);
return 1;
}
}

if (sender > (32 - Blue))
{
sender = 0; // use receiver index
}

for (--iNum; iNum >= 0; iNum--)
{
id = iPlayers[iNum];

if (iMlNumber)
{
for (j = 0; j < iMlNumber; j++)
{
// Set all LANG_PLAYER args to player index ( = id )
// so we can format the text for that specific player
setarg(ArrayGetCell(aStoreML, j), _, id);
}

// format string for specific player
vformat(szMessage, charsmax(szMessage), fmt, 4);
}

if (sender > (32 - Grey))
{
_CC_TeamInfo(id, sender, szTeamName[sender - (32 - Grey)]);
}
_CC_SayText(id, sender, szMessage);
}

ArrayDestroy(aStoreML);
}
return 1;
}

stock _CC_TeamInfo(iReceiver, iSender, szTeam[])
{
static iTeamInfo = 0;
if (!iTeamInfo)
{
iTeamInfo = get_user_msgid("TeamInfo");
}
message_begin(iReceiver ? MSG_ONE : MSG_ALL, iTeamInfo, _, iReceiver);
write_byte(iSender);
write_string(szTeam);
message_end();
}

stock _CC_SayText(iReceiver, iSender, szMessage[])
{
static iSayText = 0;
if (!iSayText)
{
iSayText = get_user_msgid("SayText");
}

// Prevent sending format and localization strings via chat
for (new i = 0; i < 192; i++)
{
if (szMessage[i] == 0) break;
if (szMessage[i] == '%' ||
szMessage[i] == '#')
szMessage[i] = ' ';
}

message_begin(iReceiver ? MSG_ONE : MSG_ALL, iSayText, _, iReceiver);
write_byte(iSender ? iSender : iReceiver);
if (szMessage[0] > 4)
{
write_byte(1);
szMessage[192 - 2 - 1] = 0; // Two write_byte + string terminator
write_string(szMessage);
}
else
{
szMessage[192 - 1 - 1] = 0; // One write_byte + string terminator
write_string(szMessage);
}
message_end();
}

new _translation_szBuffer[MAX_TRANSLATION_LENGTH];

stock register_dictionary_colored(const filename[])
{
if (!register_dictionary(filename))
{
return 0;
}

new szFileName[256];
get_localinfo("amxx_datadir", szFileName, charsmax(szFileName));
format(szFileName, charsmax(szFileName), "%s/lang/%s", szFileName, filename);
new fp = fopen(szFileName, "rt");
if (!fp)
{
log_amx("Failed to open %s", szFileName);
return 0;
}

new szLang[3], szKey[64], TransKey:iKey;

while (!feof(fp))
{
fgets(fp, _translation_szBuffer, charsmax(_translation_szBuffer));
trim(_translation_szBuffer);

if (_translation_szBuffer[0] == '[')
{
strtok(_translation_szBuffer[1], szLang, charsmax(szLang), _translation_szBuffer, 1, ']');
}
else if (_translation_szBuffer[0])
{
strbreak(_translation_szBuffer, szKey, charsmax(szKey), _translation_szBuffer, charsmax(_translation_szBuffer));
iKey = GetLangTransKey(szKey);
if (iKey != TransKey_Bad)
{
replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "!g", "^4");
replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "!t", "^3");
replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "!n", "^1");
replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "^^4", "^4");
replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "^^3", "^3");
replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "^^1", "^1");
replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "^^n", "^n");
replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "^^t", "^t");
AddTranslation(szLang, iKey, _translation_szBuffer[2]);
}
}
}

fclose(fp);
return 1;
}

/* ML from AMXX 1.8.3 support */
#define register_dictionary register_dictionary_colored
Спасибо DRIVE37 за colorchat

Отредактировал: shram47, - 26.12.2015, 2:49
Прикрепленные файлы:
Прикрепленный файл  dr_knifes.sma ( 11,79 килобайт ) Кол-во скачиваний: 20


Enough to hope for someone's help, I will do it myself and I will not ask anyone. I cope with children and can cope with amxx :thank_you:
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя kolobok1
сообщение 23.12.2015, 7:12
Сообщение #2


Стаж: 11 лет

Сообщений: 464
Благодарностей: 23
Полезность: 71

Кинь в файле.Если просите помочь исправить ошибку,то кидай в файле,после копирования с форума табуляция нарушается.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя DRIVE37
сообщение 23.12.2015, 8:09
Сообщение #3


Стаж: 11 лет

Сообщений: 146
Благодарностей: 14
Полезность: 69

Попробуй этот инклуд

Код:
#if defined _colorchat_included
#endinput
#endif
#define _colorchat_included

/* ColorChat Support */
#define NORMAL DontChange
#define GREEN DontChange
#define RED Red
#define BLUE Blue
#define GREY Grey
#define ColorChat client_print_color

#define MAX_TRANSLATION_LENGTH 2048

enum {
DontChange = 0,
Grey = -1,
Red = -2,
Blue = -3
};

#define print_team_default DontChange
#define print_team_grey Grey
#define print_team_red Red
#define print_team_blue Blue

stock client_print_color(id, sender, const fmt[], any:...)
{
// check if id is different from 0
if (id && !is_user_connected(id))
{
return 0;
}

if (sender < Blue || sender > 32)
{
sender = DontChange;
}
else if (sender < DontChange)
{
sender = -sender + 32; // align indexes to the TeamInfo ones
}

static const szTeamName[][] =
{
"",
"TERRORIST",
"CT"
};

new szMessage[191];

new iParams = numargs();

// Specific player code
if (id)
{
if (iParams == 3)
{
copy(szMessage, charsmax(szMessage), fmt); // copy so message length doesn't exceed critical 192 value
}
else
{
vformat(szMessage, charsmax(szMessage), fmt, 4);
}

if (sender > (32 - Grey))
{
if (sender > (32 - Blue))
{
sender = id;
}
else
{
_CC_TeamInfo(id, sender, szTeamName[sender - (32 - Grey)]);
}
}
_CC_SayText(id, sender, szMessage);
}

// Send message to all players
else
{
// Figure out if at least 1 player is connected
// so we don't execute useless useless code if not
new iPlayers[32], iNum;
get_players(iPlayers, iNum, "ch");
if (!iNum)
{
return 0;
}

new iMlNumber, i, j;
new Array:aStoreML = ArrayCreate();
if (iParams >= 5) // ML can be used
{
for (j = 3; j < iParams; j++)
{
// retrieve original param value and check if it's LANG_PLAYER value
if (getarg(j) == LANG_PLAYER)
{
i = 0;
// as LANG_PLAYER == -1, check if next parm string is a registered language translation
while ((szMessage[i] = getarg(j + 1, i++))) {}
if (GetLangTransKey(szMessage) != TransKey_Bad)
{
// Store that arg as LANG_PLAYER so we can alter it later
ArrayPushCell(aStoreML, j++);

// Update ML array saire so we'll know 1st if ML is used,
// 2nd how many args we have to alterate
iMlNumber++;
}
}
}
}

// If arraysize == 0, ML is not used
// we can only send 1 MSG_ALL message if sender != 0
if (!iMlNumber)
{
if (iParams == 3)
{
copy(szMessage, charsmax(szMessage), fmt);
}
else
{
vformat(szMessage, charsmax(szMessage), fmt, 4);
}
if (0 < sender < (32 - Blue)) // if 0 is passed, need to loop
{
if (sender > (32 - Grey))
{
_CC_TeamInfo(0, sender, szTeamName[sender - (32 - Grey)]);
}
_CC_SayText(0, sender, szMessage);
return 1;
}
}

if (sender > (32 - Blue))
{
sender = 0; // use receiver index
}

for (--iNum; iNum >= 0; iNum--)
{
id = iPlayers[iNum];

if (iMlNumber)
{
for (j = 0; j < iMlNumber; j++)
{
// Set all LANG_PLAYER args to player index ( = id )
// so we can format the text for that specific player
setarg(ArrayGetCell(aStoreML, j), _, id);
}

// format string for specific player
vformat(szMessage, charsmax(szMessage), fmt, 4);
}

if (sender > (32 - Grey))
{
_CC_TeamInfo(id, sender, szTeamName[sender - (32 - Grey)]);
}
_CC_SayText(id, sender, szMessage);
}

ArrayDestroy(aStoreML);
}
return 1;
}

stock _CC_TeamInfo(iReceiver, iSender, szTeam[])
{
static iTeamInfo = 0;
if (!iTeamInfo)
{
iTeamInfo = get_user_msgid("TeamInfo");
}
message_begin(iReceiver ? MSG_ONE : MSG_ALL, iTeamInfo, _, iReceiver);
write_byte(iSender);
write_string(szTeam);
message_end();
}

stock _CC_SayText(iReceiver, iSender, szMessage[])
{
static iSayText = 0;
if (!iSayText)
{
iSayText = get_user_msgid("SayText");
}

// Prevent sending format and localization strings via chat
for (new i = 0; i < 192; i++)
{
if (szMessage[i] == 0) break;
if (szMessage[i] == '%' ||
szMessage[i] == '#')
szMessage[i] = ' ';
}

message_begin(iReceiver ? MSG_ONE : MSG_ALL, iSayText, _, iReceiver);
write_byte(iSender ? iSender : iReceiver);
if (szMessage[0] > 4)
{
write_byte(1);
szMessage[192 - 2 - 1] = 0; // Two write_byte + string terminator
write_string(szMessage);
}
else
{
szMessage[192 - 1 - 1] = 0; // One write_byte + string terminator
write_string(szMessage);
}
message_end();
}

new _translation_szBuffer[MAX_TRANSLATION_LENGTH];

stock register_dictionary_colored(const filename[])
{
if (!register_dictionary(filename))
{
return 0;
}

new szFileName[256];
get_localinfo("amxx_datadir", szFileName, charsmax(szFileName));
format(szFileName, charsmax(szFileName), "%s/lang/%s", szFileName, filename);
new fp = fopen(szFileName, "rt");
if (!fp)
{
log_amx("Failed to open %s", szFileName);
return 0;
}

new szLang[3], szKey[64], TransKey:iKey;

while (!feof(fp))
{
fgets(fp, _translation_szBuffer, charsmax(_translation_szBuffer));
trim(_translation_szBuffer);

if (_translation_szBuffer[0] == '[')
{
strtok(_translation_szBuffer[1], szLang, charsmax(szLang), _translation_szBuffer, 1, ']');
}
else if (_translation_szBuffer[0])
{
strbreak(_translation_szBuffer, szKey, charsmax(szKey), _translation_szBuffer, charsmax(_translation_szBuffer));
iKey = GetLangTransKey(szKey);
if (iKey != TransKey_Bad)
{
replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "!g", "^4");
replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "!t", "^3");
replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "!n", "^1");
replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "^^4", "^4");
replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "^^3", "^3");
replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "^^1", "^1");
replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "^^n", "^n");
replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "^^t", "^t");
AddTranslation(szLang, iKey, _translation_szBuffer[2]);
}
}
}

fclose(fp);
return 1;
}

/* ML from AMXX 1.8.3 support */
#define register_dictionary register_dictionary_colored
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя shram47
сообщение 24.12.2015, 4:40
Сообщение #4


Стаж: 10 лет
Город: Москва

Сообщений: 222
Благодарностей: 68
Полезность: 173

kolobok1, кинул.


DRIVE37, воот, другое дело!

Отредактировал: shram47, - 24.12.2015, 4:41
Прикрепленные файлы:
Прикрепленный файл  dr_knifes.sma ( 11,79 килобайт ) Кол-во скачиваний: 8


Enough to hope for someone's help, I will do it myself and I will not ask anyone. I cope with children and can cope with amxx :thank_you:
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя shram47
сообщение 24.12.2015, 7:18
Сообщение #5


Стаж: 10 лет
Город: Москва

Сообщений: 222
Благодарностей: 68
Полезность: 173

Ребяят, такая с ним проблема ...
1) У Админского нету скорости, хотя типо должна быть.
2)Ножик скорости неисправно работает.
- Любой другой ножик, нужно взять , чтобы способность работала.
А берёшь ножик скорости и даже если у тебя в руках пистолет или автомат ты несёшься быстрее всех.

Может кто помочь? Исправить так:
Что когда нож в курах, тогда и бежишь, а когда переключаешься на оружие то идёшь обычно.


Enough to hope for someone's help, I will do it myself and I will not ask anyone. I cope with children and can cope with amxx :thank_you:
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя shram47
сообщение 26.12.2015, 0:16
Сообщение #6


Стаж: 10 лет
Город: Москва

Сообщений: 222
Благодарностей: 68
Полезность: 173

Блииииин... ребят, весь Google перешарил. Как сделать так и не понял... может кто помочь вникнуть?


Enough to hope for someone's help, I will do it myself and I will not ask anyone. I cope with children and can cope with amxx :thank_you:
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя shram47
сообщение 27.12.2015, 16:33
Сообщение #7


Стаж: 10 лет
Город: Москва

Сообщений: 222
Благодарностей: 68
Полезность: 173

kolobok1, Bloo, ребят, ну неужели помочь не можете????


Enough to hope for someone's help, I will do it myself and I will not ask anyone. I cope with children and can cope with amxx :thank_you:
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 27.12.2015, 18:28
Сообщение #8
Стаж: 11 лет

Сообщений: 981
Благодарностей: 352
Полезность: < 0

shram47, Склад маленького кода там найдешь curweapon_forever.sma изучаешь и сделаешь. Все очень просто!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя shram47
сообщение 28.12.2015, 23:39
Сообщение #9


Стаж: 10 лет
Город: Москва

Сообщений: 222
Благодарностей: 68
Полезность: 173

Цитата(Vaqtincha @ 27.12.2015, 21:24) *
shram47, Склад маленького кода там найдешь curweapon_forever.sma изучаешь и сделаешь. Все очень просто!

попробую...


Enough to hope for someone's help, I will do it myself and I will not ask anyone. I cope with children and can cope with amxx :thank_you:
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя shram47
сообщение 31.12.2015, 7:35
Сообщение #10


Стаж: 10 лет
Город: Москва

Сообщений: 222
Благодарностей: 68
Полезность: 173

Vaqtincha, не фига не дошло до меня в общем ... :( тыкни куда смотреть к коде

Отредактировал: shram47, - 31.12.2015, 7:35


Enough to hope for someone's help, I will do it myself and I will not ask anyone. I cope with children and can cope with amxx :thank_you:
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ThisIsSparta
сообщение 31.12.2015, 9:07
Сообщение #11
Стаж: 11 лет

Сообщений: 566
Благодарностей: 307
Полезность: 600

попробуй так

ps.gif сам на работоспособность не проверял)

Прикрепленные файлы:
Прикрепленный файл  dr_knifes.sma ( 11,29 килобайт ) Кол-во скачиваний: 13
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kolobok1
сообщение 31.12.2015, 14:11
Сообщение #12


Стаж: 11 лет

Сообщений: 464
Благодарностей: 23
Полезность: 71

Vaqtincha, А чего именно через curweapon?Он же вызывается очень часто...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 31.12.2015, 14:23
Сообщение #13
Стаж: 11 лет

Сообщений: 981
Благодарностей: 352
Полезность: < 0

kolobok1, заблуждение... Это смотря как регишь

Отредактировал: Vaqtincha, - 31.12.2015, 14:24
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя shram47
сообщение 1.1.2016, 3:28
Сообщение #14


Стаж: 10 лет
Город: Москва

Сообщений: 222
Благодарностей: 68
Полезность: 173

ThisIsSparta, вобще не пашет speed ;-)


Enough to hope for someone's help, I will do it myself and I will not ask anyone. I cope with children and can cope with amxx :thank_you:
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя dimk
сообщение 3.1.2016, 18:02
Сообщение #15
Стаж: 12 лет

Сообщений: 2
Благодарностей: 1
Полезность: 0

http://cscontrol.ru/load/3-1-0-6038 v2 * Пофиксен баг со скоростью. Использован Ham_CS_Player_ResetMaxSpeed.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя shram47
сообщение 5.1.2016, 4:00
Сообщение #16


Стаж: 10 лет
Город: Москва

Сообщений: 222
Благодарностей: 68
Полезность: 173

Цитата(dimk @ 3.1.2016, 19:57) *
http://cscontrol.ru/load/3-1-0-6038 v2 * Пофиксен баг со скоростью. Использован Ham_CS_Player_ResetMaxSpeed.

Пробовал позавчера (2 числа), получается так:
Беру нож несусь , беру оружие, НЕСУСЬ.... хз что ?
Автор утверждает что какой то плагин блочит :(
Цитата
Любой плагин, обрывающий работу в РЕСЕТ_МАКС_СПИД


Enough to hope for someone's help, I will do it myself and I will not ask anyone. I cope with children and can cope with amxx :thank_you:
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DRIVE37
сообщение 6.1.2016, 22:53
Сообщение #17


Стаж: 11 лет

Сообщений: 146
Благодарностей: 14
Полезность: 69

Цитата(shram47 @ 5.1.2016, 4:56) *
Пробовал позавчера (2 числа), получается так:
Беру нож несусь , беру оружие, НЕСУСЬ.... хз что ?
Автор утверждает что какой то плагин блочит :(

Автор прав, у меня все нормально работает.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DRIVE37
сообщение 10.1.2016, 20:36
Сообщение #18


Стаж: 11 лет

Сообщений: 146
Благодарностей: 14
Полезность: 69

Апну, т.к автор походу не совсем прав, у меня тоже такая же проблема, там домашнем сервере все хорошо работает, я на хостинге не работает скорость, плагины только стандартные левых нет, я думаю это из за билда сервера. Но хз, не подскажете что делать? Проблема такая же как и у Шрама47, не работает скорость вообще, все остальное работает.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DRIVE37
сообщение 10.1.2016, 21:46
Сообщение #19


Стаж: 11 лет

Сообщений: 146
Благодарностей: 14
Полезность: 69

Попробовал по другому выдавать скорость, так она не пропадает когда оружие берешь
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя dimk
сообщение 10.1.2016, 21:51
Сообщение #20
Стаж: 12 лет

Сообщений: 2
Благодарностей: 1
Полезность: 0

попробуй заменить
if(KnifeId[id] == 3)
{
set_pev(id, pev_maxspeed, 380.0)
}
====>
if(KnifeId[id] == 3)
{
set_pdata_float(id, 58, 380.0)
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: