rxki
Пользователь
- Регистрация
- 5 Янв 2019
- Сообщения
- 208
- Симпатии
- 5
- Пол
- Мужской
Здравствуйте, товарищи. Подскажите, что я не так прописал... Суть паблика: событие бонусного монстра с воровством золота. Мне же нужно было переделать его под доллары. Выдать награду за убийство бонусного монстра получилось (работает), а вот событие воровства не удалось изменить. Почему то, монстр перестал тырить голду.
Вот оригинальный, рабочий паблик, сделанный под воровство золота:
А вот мой вариант, переделанный под доллары:
вроде, сделал по аналогии, все скомпилилось хорошо, а результата нет. Не ворует, жулик Подскажите, где я провтыкал, пожалуйста)
На всякий, прикрепил полный оригинальный исходник плагина.
Вот оригинальный, рабочий паблик, сделанный под воровство золота:
PHP:
public MakeBonusFx(iEnt)
{
iEnt -= TASK_BONUS_FX;
if(!is_valid_ent(iEnt) || g_IsGameEnded)
return;
if(entity_get_float(iEnt, EV_FL_health) <= 0.0)
return;
new entlist[33];
new num
static iChance;
if(!iChance) iChance = g_ConfigValues[CFG_BONUS_STAEL_CHANCE];
if( (num = find_sphere_class(iEnt, "player", g_BonusThiefRange, entlist, 32) ) )
{
new Float:fOrigin[3], Origin[3];
new iPlayer, iRandom;
for(new i ; i < num ; i++)
{
iPlayer = entlist[i];
if(!is_user_alive(iPlayer))
continue;
if(random(iChance - 1) == 0)
{
if(!fm_is_ent_visible(iPlayer, iEnt))
continue;
if(!g_PlayerInfo[iPlayer][PLAYER_GOLD])
continue;
static iMin, iMax;
if(!iMin) iMin = g_ConfigValues[CFG_BONUS_MIN_GOLD]
if(!iMax) iMax = g_ConfigValues[CFG_BONUS_MAX_GOLD]
iRandom = random_num(iMin, iMax)
if(iRandom == 0)
continue;
entity_get_vector(iPlayer, EV_VEC_origin, fOrigin);
message_begin(MSG_BROADCAST, SVC_TEMPENTITY )
write_byte(TE_BEAMENTPOINT)
write_short(iEnt | 0x1000)
write_coord_f(fOrigin[0])
write_coord_f(fOrigin[1])
write_coord_f(fOrigin[2])
write_short(g_SpriteLighting)
write_byte(0) // framerate
write_byte(4) // framerate
write_byte(4) // life
write_byte(40) // width
write_byte(0) // noise
write_byte(255) // r, g, b
write_byte(255) // r, g, b
write_byte(0) // r, g, b
write_byte(255) // brightness
write_byte(10) // speed
message_end()
entity_get_vector(iPlayer, EV_VEC_origin, fOrigin);
FVecIVec(fOrigin, Origin);
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY, Origin,iPlayer) //message begin
write_byte(TE_SPRITETRAIL)
write_coord(Origin[0]) // start position
write_coord(Origin[1])
write_coord(Origin[2])
write_coord(Origin[0] + random_num(-3,3)) // end position
write_coord(Origin[1]+ random_num(-3,3))
write_coord(Origin[2]+ random_num(-3, 3))
write_short(g_SpriteBloodDrop) // sprite index
write_byte(random_num(30, 60)) // count
write_byte(random_num(5, 15)) // life in 0.1's
write_byte(5) // scale in 0.1's
write_byte(random_num(10, 30)) // velocity along vector in 10's
write_byte(random_num(3, 5)) // randomness of velocity in 10's
message_end()
client_cmd(iPlayer, "spk sound/%s", g_SoundFile[SND_COIN]);
static szName[33];
get_user_name(iPlayer, szName, 32);
g_BonusRobbedGold += iRandom;
if(g_PlayerInfo[iPlayer][PLAYER_GOLD] - iRandom <= 0)
{
client_print_color(0, print_team_default, "%s^x01 Бонусный монстр убит и ограблен ^x03%s^x01", CHAT_PREFIX, szName);
g_PlayerInfo[iPlayer][PLAYER_GOLD] = 0
}
else
{
client_print_color(0, print_team_default, "%s^x01 Бонусный монстр украл ^x04%d золота^x01 у ^x03%s^x01", CHAT_PREFIX,iRandom, szName);
g_PlayerInfo[iPlayer][PLAYER_GOLD] -= iRandom;
}
}
}
}
set_task(0.5, "MakeBonusFx", iEnt + TASK_BONUS_FX);
}
PHP:
public MakeBonusFx(iEnt, id)
{
new plMoney[32];
plMoney[id] = cs_get_user_money(id)
iEnt -= TASK_BONUS_FX;
if(!is_valid_ent(iEnt) || g_IsGameEnded)
return;
if(entity_get_float(iEnt, EV_FL_health) <= 0.0)
return;
new entlist[33];
new num
static iChance;
if(!iChance) iChance = g_ConfigValues[CFG_BONUS_STAEL_CHANCE];
if( (num = find_sphere_class(iEnt, "player", g_BonusThiefRange, entlist, 32) ) )
{
new Float:fOrigin[3], Origin[3];
new iPlayer, iRandom;
for(new i ; i < num ; i++)
{
iPlayer = entlist[i];
if(!is_user_alive(iPlayer))
continue;
if(random(iChance - 1) == 0)
{
if(!fm_is_ent_visible(iPlayer, iEnt))
continue;
if(!plMoney[iPlayer])
continue;
static iMin, iMax;
if(!iMin) iMin = g_ConfigValues[CFG_BONUS_MIN_GOLD]
if(!iMax) iMax = g_ConfigValues[CFG_BONUS_MAX_GOLD]
iRandom = random_num(iMin, iMax)
if(iRandom == 0)
continue;
entity_get_vector(iPlayer, EV_VEC_origin, fOrigin);
message_begin(MSG_BROADCAST, SVC_TEMPENTITY )
write_byte(TE_BEAMENTPOINT)
write_short(iEnt | 0x1000)
write_coord_f(fOrigin[0])
write_coord_f(fOrigin[1])
write_coord_f(fOrigin[2])
write_short(g_SpriteLighting)
write_byte(0) // framerate
write_byte(4) // framerate
write_byte(4) // life
write_byte(40) // width
write_byte(0) // noise
write_byte(255) // r, g, b
write_byte(255) // r, g, b
write_byte(0) // r, g, b
write_byte(255) // brightness
write_byte(10) // speed
message_end()
entity_get_vector(iPlayer, EV_VEC_origin, fOrigin);
FVecIVec(fOrigin, Origin);
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY, Origin,iPlayer) //message begin
write_byte(TE_SPRITETRAIL)
write_coord(Origin[0]) // start position
write_coord(Origin[1])
write_coord(Origin[2])
write_coord(Origin[0] + random_num(-3,3)) // end position
write_coord(Origin[1]+ random_num(-3,3))
write_coord(Origin[2]+ random_num(-3, 3))
write_short(g_SpriteBloodDrop) // sprite index
write_byte(random_num(30, 60)) // count
write_byte(random_num(5, 15)) // life in 0.1's
write_byte(5) // scale in 0.1's
write_byte(random_num(10, 30)) // velocity along vector in 10's
write_byte(random_num(3, 5)) // randomness of velocity in 10's
message_end()
client_cmd(iPlayer, "spk sound/%s", g_SoundFile[SND_COIN]);
static szName[33];
get_user_name(iPlayer, szName, 32);
g_BonusRobbedGold += iRandom;
if(cs_set_user_money(id, plMoney[iPlayer] - iRandom <= 0))
{
client_print_color(0, print_team_default, "%s^x01 Бонусный монстр убит и ограблен ^x03%s^x01", CHAT_PREFIX, szName);
cs_set_user_money(id, plMoney[iPlayer] = 0)
}
else
{
client_print_color(0, print_team_default, "%s^x01 Бонусный монстр украл ^x04%d золота^x01 у ^x03%s^x01", CHAT_PREFIX,iRandom, szName);
cs_set_user_money(id, plMoney[iPlayer] -= iRandom);
}
}
}
}
set_task(0.5, "MakeBonusFx", iEnt + TASK_BONUS_FX);
}
На всякий, прикрепил полный оригинальный исходник плагина.
Вложения
-
231,2 KB Просмотры: 2