Raised This Month: $12 Target: $400
 3% 

About this plugin


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
nixh
Member
Join Date: Nov 2013
Old 11-23-2014 , 13:22   About this plugin
Reply With Quote #1

Does anyone knows why this plugin doesn't work? because im out of ideas.

PHP Code:
#include <amxmodx>
#include <engine>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <colorchat>

#define PLUGIN "JailBreak Pets"
#define VERSION "1.0"
#define AUTHOR "OverGame"

#pragma tabsize 0

new g_Cvar[5]

new const 
gModel[] = "models/player/wolf/wolf.mdl"
new const gClassname[] = "JBDog"

new g_Name[32], g_Temp[10]
new 
Players[32], NumPlayer
new g_Attackg_AScore

enum _
:GIBS
{
HEAD,
LEG,
BONE,
LUNG,
GIB
}

new 
gModelGibs[GIBS]
new 
gSpriteBlood

new iNPC_ID
new iPlayer_ID

new Float:fNPCOrigin[3]

public 
plugin_init()
{
register_plugin(PLUGINVERSIONAUTHOR)

register_think(gClassname"NPCThink")

g_Cvar[1] = register_cvar("jbdog_health""200")
g_Cvar[2] = register_cvar("jbdog_speed""350")
g_Cvar[3] = register_cvar("jbdog_distance""100")

register_clcmd("petsmenu""pets_menu")

register_dictionary("jbpets_lang.txt")
}

public 
plugin_precache()
{
precache_modelgModel )

gModelGibs[HEAD] = precache_model("models/gib_skull.mdl")
gModelGibs[LEG] = precache_model("models/gib_legbone.mdl")
gModelGibs[BONE] = precache_model("models/gib_b_bone.mdl")
gModelGibs[LUNG] = precache_model("models/gib_lung.mdl")
gModelGibs[GIB] = precache_model("models/gib_b_gib.mdl")

gSpriteBlood precache_model("sprites/blood.spr")

}

public 
pets_menu(id)
{
static 
s_MenuItem[64]
formatex(s_MenuItemcharsmax(s_MenuItem), "\d[%L]\r %L"LANG_PLAYER"PRIFIX"LANG_PLAYER"MENU_NAME1")
new 
menu menu_create(s_MenuItem"pets_hand" )

if ( 
get_user_flags(id) & ADMIN_LEVEL_C && get_user_team(id) == )
{
menu_additem(menu"\yУстановить координаты","1")
menu_additem(menu"\yСоздатель питомца","2")
menu_additem(menu"\yНатравить на игрока","3")
menu_additem(menu"\yСледовать за игроком","4")
menu_additem(menu"\yПозвать к себе","5")
} else {
menu_additem(menu"\dУстановить координаты","1")
menu_additem(menu"\dСоздатель питомца","2")
menu_additem(menu"\dНатравить на игрока","3")
menu_additem(menu"\dСледовать за игроком","4")
menu_additem(menu"\dПозвать к себе","5")
}

menu_setprop(menuMPROP_BACKNAME"Назад")
menu_setprop(menuMPROP_NEXTNAME"Далее")
menu_setprop(menuMPROP_EXITNAME"Выход")

menu_display(id,menu,0)
return 
PLUGIN_HANDLED
}

public 
pets_hand(idmenuitem)
{
if(
item == MENU_EXIT)
{
menu_destroy(menu)
return 
PLUGIN_HANDLED
}

new 
data[6], iName[64], accesscallback
menu_item_getinfo
(menuitemaccessdata5iName63callback)

new 
key str_to_num(data)

switch(
key)
{
case 
1:{
if ( 
get_user_flags(id) & ADMIN_LEVEL_C && get_user_team(id) == )
{
ColorChat(id,NORMAL,"^4[%L]^1 %L"LANG_PLAYER"PRIFIX"LANG_PLAYER"Y_X_PET")
NPCOrigin(id)
pets_menu(id)
} else {
ColorChat(id,NORMAL,"^4[%L]^1 %L^3 %L"LANG_PLAYER"PRIFIX"LANG_PLAYER"FLAG_NO"LANG_PLAYER"FLAG_ON_PET")
pets_menu(id)
}
}
case 
2:{
if ( 
get_user_flags(id) & ADMIN_LEVEL_C && get_user_team(id) == )
{
NPCCreate(id)
pets_menu(id)
} else {
ColorChat(id,NORMAL,"^4[%L]^1 %L^3 %L"LANG_PLAYER"PRIFIX"LANG_PLAYER"FLAG_NO"LANG_PLAYER"FLAG_ON_PET")
pets_menu(id)
}
}
case 
3:{
if ( 
get_user_flags(id) & ADMIN_LEVEL_C && get_user_team(id) == )
{
pets_attack_menu(id)
g_Attack 0
} else {
ColorChat(id,NORMAL,"^4[%L]^1 %L^3 %L"LANG_PLAYER"PRIFIX"LANG_PLAYER"FLAG_NO"LANG_PLAYER"FLAG_ON_PET")
pets_menu(id)
}
}
case 
4:{
if ( 
get_user_flags(id) & ADMIN_LEVEL_C && get_user_team(id) == )
{
pets_go_menu(id)
g_Attack 0
} else {
ColorChat(id,NORMAL,"^4[%L]^1 %L^3 %L"LANG_PLAYER"PRIFIX"LANG_PLAYER"FLAG_NO"LANG_PLAYER"FLAG_ON_PET")
pets_menu(id)
}
}
case 
5:{
if ( 
get_user_flags(id) & ADMIN_LEVEL_C && get_user_team(id) == )
{
iPlayer_ID id
g_Attack 
0
} else {
ColorChat(id,NORMAL,"^4[%L]^1 %L^3 %L"LANG_PLAYER"PRIFIX"LANG_PLAYER"FLAG_NO"LANG_PLAYER"FLAG_ON_PET")
pets_menu(id)
}
}
}
return 
PLUGIN_HANDLED
}

public 
pets_go_menu(id)
{
static 
s_MenuItem2[255]
formatex(s_MenuItem2charsmax(s_MenuItem2), "\d[%L]\r %L"LANG_PLAYER"PRIFIX"LANG_PLAYER"MENU_NAME2")
new 
menu menu_create(s_MenuItem2"pgo_hand")

get_players(PlayersNum"ch")

for(new 
iiNumi++)
{
Player Players[i]

get_user_name(Playerg_Namecharsmax(g_Name))
num_to_str(Playerg_Tempcharsmax(g_Temp))
menu_additem(menug_Nameg_Temp0)
}

menu_setprop(menuMPROP_NEXTNAME"Далее")
menu_setprop(menuMPROP_BACKNAME"Назад")
menu_setprop(menuMPROP_EXITNAME"Выход^n^n\dАвтор: OverGame^nСайт: WwW.OVERCS.Ru")

menu_display(idmenu)
return 
PLUGIN_HANDLED
}

public 
pgo_hand(idmenuitem)
{
if (
item == MENU_EXIT)
{
menu_destroy(menu)
return 
PLUGIN_HANDLED;
}

new 
s_Data[6], s_Name[64], i_Accessi_Callback
menu_item_getinfo
(menuitemi_Accesss_Datacharsmax(s_Data), s_Namecharsmax(s_Name), i_Callback)

Player str_to_num(s_Data)
iPlayer_ID Player

return PLUGIN_HANDLED
}

public 
pets_attack_menu(id)
{
static 
s_MenuItem2[255]
formatex(s_MenuItem2charsmax(s_MenuItem2), "\d[%L]\r %L"LANG_PLAYER"PRIFIX"LANG_PLAYER"MENU_NAME2")
new 
menu menu_create(s_MenuItem2"pattack_hand")

get_players(PlayersNum"ch")

for(new 
iiNumi++)
{
Player Players[i]

get_user_name(Playerg_Namecharsmax(g_Name))
num_to_str(Playerg_Tempcharsmax(g_Temp))
menu_additem(menug_Nameg_Temp0)
}

menu_setprop(menuMPROP_NEXTNAME"Далее")
menu_setprop(menuMPROP_BACKNAME"Назад")
menu_setprop(menuMPROP_EXITNAME"Выход^n^n\dАвтор: OverGame^nСайт: WwW.OVERCS.Ru")

menu_display(idmenu)
return 
PLUGIN_HANDLED
}

public 
pattack_hand(idmenuitem)
{
if (
item == MENU_EXIT)
{
menu_destroy(menu)
return 
PLUGIN_HANDLED;
}

new 
s_Data[6], s_Name[64], i_Accessi_Callback
menu_item_getinfo
(menuitemi_Accesss_Datacharsmax(s_Data), s_Namecharsmax(s_Name), i_Callback)

Player str_to_num(s_Data)
iPlayer_ID Player
g_Attack 
1

return PLUGIN_HANDLED
}

public 
NPCOrigin(id)
{
entity_get_vector(idEV_VEC_originfNPCOrigin)
//client_print(id, print_chat, "[NPC]Origin create")
}

public 
NPCCreate(id)

iPlayer_ID id

if(iNPC_ID)
{
remove_entity(iNPC_ID)
iNPC_ID 0
}

iNPC_ID create_entity("info_target")

if(
pev_validiNPC_ID ))
{
ColorChat(id,NORMAL,"^4[%L]^1 %L"LANG_PLAYER"PRIFIX"LANG_PLAYER"PET_CREATE")
}else{
//client_print(id, print_chat, "[NPC]Error create")
return PLUGIN_HANDLED
}

entity_set_origin(iNPC_IDfNPCOrigin)

entity_set_float(iNPC_IDEV_FL_takedamage,1.0)

new 
Float:fHealth floatget_pcvar_numg_Cvar[1] ))
entity_set_float(iNPC_IDEV_FL_healthfHealth)

entity_set_model(iNPC_IDgModel)
entity_set_string(iNPC_IDEV_SZ_classnamegClassname)

entity_set_int(iNPC_IDEV_INT_solidSOLID_BBOX)
entity_set_int(iNPC_IDEV_INT_movetypeMOVETYPE_PUSHSTEP)

entity_set_size(iNPC_IDFloat:{-16.0, -16.0, -36.0}, Float:{16.016.036.0})

entity_set_float(iNPC_IDEV_FL_nextthinkhalflife_time() + 0.01)

set_pev(iNPC_IDpev_enemy0)
entity_set_int(iNPC_IDEV_INT_gamestate,1)

entity_set_int(iNPC_IDEV_INT_sequence1)
entity_set_float(iNPC_IDEV_FL_animtimeget_gametime())
entity_set_float(iNPC_IDEV_FL_framerate1.0)
entity_set_float(iNPC_IDEV_FL_frame0.0)

RegisterHamFromEntity(Ham_KillediNPC_ID"NPCKilled")

new 
iWeapon create_entity("info_target")

entity_set_int(iWeaponEV_INT_solidSOLID_NOT)
entity_set_int(iWeaponEV_INT_movetypeMOVETYPE_FOLLOW)
entity_set_edict(iWeaponEV_ENT_aimentiNPC_ID)

return 
PLUGIN_HANDLED
}

public 
damage_attack(id)
{
if ( 
g_AScore <= )
{

set_user_health(Playerget_user_health(Player) - 5)
g_AScore += 1
if ( g_AScore == )
{
g_Attack 0
}

}
}

public 
NPCThinkiEntity )
{
if(!
is_valid_entiEntity ))
return 
FMRES_IGNORED

new Float:fNOrigin[3], Float:fPOrigin[3//Сюда запишем координаты NPC и игрока
new Float:fDistance //Сюда запишем расстяние между ними

pev(iEntitypev_originfNOrigin//Получаем координаты NPC
pev(iPlayer_IDpev_originfPOrigin//Получаем координаты игрока

fDistance get_distance_f(fNOriginfPOrigin//Получаем дистанцию между ними

if(fDistance <= floatget_pcvar_numg_Cvar[3] ) )) //Если дистация межде указанной
{
//client_print(iPlayer_ID, print_center, "[NPC]I caught up with you")

if ( g_Attack == )
{
if ( 
is_user_connected(Player) && is_user_alive(Player) )
{
set_task(2.0,"damage_attack",0,_,_,"a",5)
g_AScore 0
}
}

if(
pev(iEntitypev_sequence) != 1//Если анимация npc установлена не стоячая
{
entity_set_int(iEntityEV_INT_sequence1//Задаем анимацию стоячую
entity_set_float(iEntityEV_FL_animtimeget_gametime()) //Задаем время анимации
entity_set_float(iEntityEV_FL_framerate1.0//Задаем скорость анимации
entity_set_float(iEntityEV_FL_frame0.0//Задаем начальный кадр
}
}else{
if(
pev(iEntitypev_sequence) != 4//Если анимация npc установлена не бега
{
entity_set_int(iEntityEV_INT_sequence4//Задаем анимацию бега
entity_set_float(iEntityEV_FL_animtimeget_gametime()) //Задаем время анимации
entity_set_float(iEntityEV_FL_framerate1.0//Задаем скорость анимации
entity_set_float(iEntityEV_FL_frame0.0//Задаем начальный кадр
}

new 
Float:fAngles[3//Сюда запишем координаты, куда должен будет смотреть NPC
new Float:fVelocity[3//Сюда запишем координаты, куда будет бежать NPC

entity_get_vector(iEntityEV_VEC_anglesfAngles//Получаем

new Float:fX fPOrigin[0] - fNOrigin[0//Расчитываем координаты x
new Float:fZ fPOrigin[1] - fNOrigin[1//Расчитываем координаты z

new Float:fRadian
fRadian 
floatatan(fZ/fXradian//Получаем угол

fAngles[1] = fRadian * (180 3.14//Приваиваем координаты

if(fPOrigin[0] < fNOrigin[0]) //Если координаты игрока относительно x меньше NPC`овскивх
{
fAngles[1] = fAngles[1] - 180.0 //Разворачиваем его
}else{
fAngles[1] = fRadian * (180 3.14//Записываем координаты
}

new 
Float:fSpeed fDistance floatget_pcvar_numg_Cvar[2] ) ) //Задаем скорость

//Записываем координаты куда бежать
fVelocity[0] = (fPOrigin[0] - fNOrigin[0]) / fSpeed
fVelocity
[1] = (fPOrigin[1] - fNOrigin[1]) / fSpeed
fVelocity
[2] = (fPOrigin[2] - fNOrigin[2]) / fSpeed

entity_set_vector
(iEntityEV_VEC_anglesfAngles//Присваиваем новые координаты куда смотреть
entity_set_vector(iEntityEV_VEC_velocityfVelocity//Присваиваем новые координаты куда бежать
}
entity_set_float(iEntityEV_FL_nextthinkhalflife_time() + 0.01//Повторяем
return FMRES_HANDLED
}

public 
NPCKillediEntity )
{
new 
iEntity2 create_entity("info_target"//Создаем нового, тот пропал

if(pev_validiEntity2 )) //Проверяем, создан ли объект
{
//client_print(iPlayer_ID, print_chat, "[NPC]Create Dead create") //Если да, пишем, что создан
}else{
//client_print(iPlayer_ID, print_chat, "[NPC]Error create") //Иначе выводим
return PLUGIN_HANDLED //Прекращаем дальшейнее выполнение функции
}

new 
Float:fOrigin[3], Float:fAngles[3//Запишем, как стоял старый NPC

pev(iEntitypev_originfOrigin//Получаем координаты
pev(iEntitypev_anglesfAngles//Получаем куда смотрит

entity_set_origin(iEntity2fOrigin//Присваиваем
entity_set_vector(iEntity2EV_VEC_anglesfAngles//Присваиваем

entity_set_model(iEntity2gModel//Задаем модель

entity_set_size(iNPC_IDFloat:{-16.0, -16.0, -36.0}, Float:{16.016.036.0}) //Задаем размеры( не путать с размером модели )

entity_set_int(iEntity2EV_INT_sequence108//Задаем анимацию смерти
entity_set_float(iEntity2EV_FL_animtimeget_gametime()) //Задаем время анимации
entity_set_float(iEntity2EV_FL_framerate1.0//Задаем скорость анимации
entity_set_float(iEntity2EV_FL_frame0.0//Задаем начальный кадр

set_task(10.0"GibsNPC"iEntity2//Разорвем на куски npc через 10 сек и уничтожим его.
return PLUGIN_HANDLED //конец
}

public 
GibsNPCiEntity )
{
new 
Float:fOrigin[3//Куда запишем
pev(iEntitypev_originfOrigin//Получаем координаты

for(new isizeof gModelGibsi++) //Разбрасываем кости
{
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(TE_MODEL)
engfunc(EngFunc_WriteCoordfOrigin[0])
engfunc(EngFunc_WriteCoordfOrigin[1])
engfunc(EngFunc_WriteCoordfOrigin[2])
write_coord(random_num(100400))
write_coord(random_num(100400))
write_coord(random_num(100400))
write_angle(random361 ))
write_short(gModelGibs[i])
write_byte(1)
write_byte(125)
message_end()
}

//Создаем кровь
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
write_byte(TE_BLOODSPRITE)
engfunc(EngFunc_WriteCoordfOrigin[0])
engfunc(EngFunc_WriteCoordfOrigin[1])
engfunc(EngFunc_WriteCoordfOrigin[2])
write_short(gSpriteBlood)
write_short(gSpriteBlood)
write_byte(250)
write_byte(20)
message_end()

remove_entityiEntity //Уничтожаем его нахер
//client_print(iPlayer_ID, print_chat, "[NPC]Terminated") //Выводим сообщение что ли


Last edited by YamiKaitou; 11-24-2014 at 10:11.
nixh is offline
Fuck For Fun
Veteran Member
Join Date: Nov 2013
Old 11-23-2014 , 13:29   Re: About this plugin
Reply With Quote #2

error logs?
Fuck For Fun is offline
Send a message via Skype™ to Fuck For Fun
nixh
Member
Join Date: Nov 2013
Old 11-23-2014 , 13:32   Re: About this plugin
Reply With Quote #3

sorry but there is no errors.
nixh is offline
Fuck For Fun
Veteran Member
Join Date: Nov 2013
Old 11-23-2014 , 13:37   Re: About this plugin
Reply With Quote #4

Maybe u missed models/lang/sprites
Fuck For Fun is offline
Send a message via Skype™ to Fuck For Fun
nixh
Member
Join Date: Nov 2013
Old 11-23-2014 , 13:40   Re: About this plugin
Reply With Quote #5

well i did not miss anything, or this just doesn't work only for me.
nixh is offline
simanovich
AlliedModders Donor
Join Date: Jun 2012
Location: Israel
Old 11-24-2014 , 09:31   Re: About this plugin
Reply With Quote #6

Why did u blank ur post?
__________________
simanovich is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 15:22.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode