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

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

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

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

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

native: ? true : false

, Помогите решить проблему
Статус пользователя kostyalord14
сообщение 28.2.2014, 18:33
Сообщение #1
Стаж: 12 лет

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

Всем привет, прошу помощи решить проблему с данным плагином которой я засуну в сполер.
Суть проблемы что через дргой плагин не проверяет true или false.
как это решить?

Скрытый текст
Код:
#include <amxmodx>
#include <engine>
#include <fun>
#include <fakemeta>
#include <hamsandwich>

#define FBitSet(%1,%2) (%1 & %2)

new g_item_LongJump
new g_item_HasLongJump[33]

#define MarkUserLongJump(%1) g_item_LongJump |= 1<<(%1 & 31)
#define ClearUserLongJump(%1) g_item_LongJump &= ~( 1<<(%1 & 31) )
#define HasUserLongJump(%1) g_item_LongJump & 1<<(%1 & 31)

new g_item_cvar_MinVelocity,
g_item_cvar_PunchAngle,
g_item_cvar_LongjumpSpeed,
g_item_cvar_ZVelocity;

public plugin_init()
{
register_plugin("Item: Long Jump", "1.0", "kostya-lord")

g_item_cvar_LongjumpSpeed = register_cvar( "longjump_speed" , "350" )
g_item_cvar_PunchAngle = register_cvar( "longjump_punchangle" , "-5" )
g_item_cvar_ZVelocity = register_cvar( "longjump_zvelocity" , "300" )
g_item_cvar_MinVelocity = register_cvar( "longjump_minvelocity" , "50" )

register_event("DeathMsg", "death", "a")
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")

RegisterHam(Ham_Player_Jump, "player", "Player_Jump")
RegisterHam(Ham_Player_Duck, "player", "Player_Duck")
}
public plugin_natives()
{
register_library("item_longjump")
register_native("set_item_longjump", "native_set_item_longjump", 1)
register_native("get_item_longjump", "native_get_item_longjump", 1)
register_native("del_item_longjump", "native_del_item_longjump", 1)
}

public del_longjump(id)
{
if(g_item_HasLongJump[id])
g_item_HasLongJump[id] = false

return true
}

public native_get_item_longjump(plugin, params)
{
new id = get_param(1)

if(!g_item_HasLongJump[id])
{
// return false
return 0
}

// return true
return 1
}

public native_set_item_longjump(id){
return set_longjump(id);
}

public native_del_item_longjump(id){
return del_longjump(id)
}

// Reset on disconnection
public client_disconnect(id)
{
g_item_HasLongJump[id] = false
}

// Reset on death
public death()
{
g_item_HasLongJump[read_data(2)] = false
}

// Reset at round start (for everyone)
public event_round_start()
{
for (new i = 1; i <= 32; i++)
g_item_HasLongJump[i] = false
}

public Player_Duck(id)
{
if( HasUserLongJump(id) )
{
ClearUserLongJump(id)
return HAM_SUPERCEDE
}
return HAM_IGNORED
}

public Player_Jump(id)
{
if( !is_user_alive(id) )
{
return HAM_IGNORED
}

static iFlags ; iFlags = entity_get_int(id, EV_INT_flags)

if( FBitSet(iFlags, FL_WATERJUMP) || entity_get_int(id, EV_INT_waterlevel) >= 2 )
{
return HAM_IGNORED
}

const XTRA_OFS_PLAYER = 5
const m_afButtonPressed = 246

static afButtonPressed ; afButtonPressed = get_pdata_int(id, m_afButtonPressed, XTRA_OFS_PLAYER)

if( !FBitSet(afButtonPressed, IN_JUMP) || !FBitSet(iFlags, FL_ONGROUND) )
{
return HAM_IGNORED
}

const m_fLongJump = 356

if( (entity_get_int(id, EV_INT_bInDuck) || iFlags & FL_DUCKING)
&& get_pdata_int(id, m_fLongJump, XTRA_OFS_PLAYER)
&& entity_get_int(id, EV_INT_button) & IN_DUCK
&& entity_get_int(id, EV_INT_flDuckTime) )
{
static Float:fVecTemp[3]
entity_get_vector(id, EV_VEC_velocity, fVecTemp)
if( vector_length(fVecTemp) > get_pcvar_float(g_item_cvar_MinVelocity) )
{
const m_Activity = 73
const m_IdealActivity = 74

const PLAYER_SUPERJUMP = 7
const ACT_LEAP = 8

entity_get_vector(id, EV_VEC_punchangle, fVecTemp)
fVecTemp[0] = get_pcvar_float(g_item_cvar_PunchAngle)
entity_set_vector(id, EV_VEC_punchangle, fVecTemp)

get_global_vector(GL_v_forward, fVecTemp)
static Float:flLongJumpSpeed ; flLongJumpSpeed = get_pcvar_float(g_item_cvar_LongjumpSpeed) * 1.6
fVecTemp[0] *= flLongJumpSpeed
fVecTemp[1] *= flLongJumpSpeed
fVecTemp[2] = get_pcvar_float(g_item_cvar_ZVelocity)

entity_set_vector(id, EV_VEC_velocity, fVecTemp)

set_pdata_int(id, m_Activity, ACT_LEAP, XTRA_OFS_PLAYER)
set_pdata_int(id, m_IdealActivity, ACT_LEAP, XTRA_OFS_PLAYER)
MarkUserLongJump(id)

entity_set_int(id, EV_INT_oldbuttons, entity_get_int(id, EV_INT_oldbuttons) | IN_JUMP)

entity_set_int(id, EV_INT_gaitsequence, PLAYER_SUPERJUMP)
entity_set_float(id, EV_FL_frame, 0.0)

set_pdata_int(id, m_afButtonPressed, afButtonPressed & ~IN_JUMP, XTRA_OFS_PLAYER)
return HAM_SUPERCEDE
}
}
return HAM_IGNORED
}

public set_longjump(id)
{
if(!is_user_alive(id))
return false

if(g_item_HasLongJump[id])
return false

give_item(id, "item_longjump")
g_item_HasLongJump[id] = true

return true
}
/*
public get_longjump(id)
{
new id = get_param(1)

if(!g_item_HasLongJump[id])
return false
else
return true
}
*/



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

#if AMXX_VERSION_NUM >= 175
#pragma reqlib item_longjump
#if !defined AMXMODX_NOAUTOLOAD
#pragma loadlib item_longjump
#endif
#else
#pragma library item_longjump
#endif


native set_item_longjump(id);
native del_item_longjump(id);
native get_item_longjump(id);
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя mazdan
сообщение 28.2.2014, 18:39
Сообщение #2


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

не очень понятно кто чего не проверяет


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 28.2.2014, 18:39
Сообщение #3
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

register_plugin("Item: Long Jump", "1.0", "kostya-lord")

смешно, а инклюд твой я за тебя должен вставить в плагин?

Отредактировал: csnet, - 28.2.2014, 18:40


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
eckoecko
сообщение 28.2.2014, 18:40
Сообщение #4
Стаж: 14 лет

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

kostyalord14, к переменным, которым хотите присвоить true or false попробуйте в начале
Код
bool:
добавить
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kostyalord14
сообщение 28.2.2014, 18:41
Сообщение #5
Стаж: 12 лет

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

Цитата(csnet @ 28.2.2014, 18:39) *
register_plugin("Item: Long Jump", "1.0", "kostya-lord")

смешно

конечно смешно ) я просто тренеруюсь а авторство спер из-за того что код показался трудным очень хД я его уберу

Цитата(eckoecko @ 28.2.2014, 18:40) *
kostyalord14, к переменным, которым хотите присвоить true or false попробуйте в начале
Код
bool:
добавить

бол было но все ровно
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 28.2.2014, 18:54
Сообщение #6
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

#include <item_longjump>


if(get_item_longjump(id)) {

// blah

}


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя kostyalord14
сообщение 28.2.2014, 19:04
Сообщение #7
Стаж: 12 лет

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

Цитата(csnet @ 28.2.2014, 18:54) *
#include <item_longjump>


if(get_item_longjump(id)) {

// blah

}

Код:
#define LIBRARY_ITEM_LONGJUMP "item_longjump"
#include <item_longjump>

public plugin_natives()
{
set_module_filter("module_filter")
set_native_filter("native_filter")
}
public module_filter(const module[])
{
if (equal(module, LIBRARY_ITEM_LONGJUMP))
return PLUGIN_HANDLED;

return PLUGIN_CONTINUE;
}
public native_filter(const name[], index, trap)
{
if (!trap)
return PLUGIN_HANDLED;

return PLUGIN_CONTINUE;
}


if (LibraryExists(LIBRARY_ITEM_LONGJUMP, LibType_Library))
{
if (item_type == ITEM_LONGJUMP)
{
if (!get_item_longjump(ptd))
{
set_item_longjump(ptd)
emit_sound(ptr, CHAN_ITEM, "items/clipinsert1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
engfunc(EngFunc_RemoveEntity, ptr)
g_EntTable[ptr] = 0
g_EntId[item_id[0]] = 0
set_task(g_itemTime, "Replenish", 0, item_id, 1)
client_print(ptd, print_chat, "[CSDM] Вы взяли супер прыжок, нажмите ПРЫЖОК+ПРИСЕСТЬ чтобы прыгнуть")
}
return FMRES_HANDLED
}
}


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: