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

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

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

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

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

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

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

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

Prize_knife (убрать проверку)

Статус пользователя Blitzz
сообщение 28.2.2016, 22:44
Сообщение #1


Стаж: 10 лет

Сообщений: 509
Благодарностей: 117
Полезность: 91

Нужна небольшая помощь )

Помогите убрать проверку админов, чтобы плагин работал для всех, а не только для админов, с меня спасибка xD
пробовал сам сделать не получилось, плагин компилируется но не работает :(

sma
Код:
/**
* Simple plugin to modify knife damage for certain players.
*
* Home post:
* https://c-s.net.ua/forum/index.php?act=find...&pid=797669
*
* Last update:
* 6/5/2015
*
* Credits:
* - idea by Yaroslav from c-s.net.ua
* - ConnorMrLeod for the code and helping
*
* Notes:
* - player's access flags are checked when entering a game only then are remembered
* - limitation: player could not lose custom damage for his knife
*/

/* Copyright 2015 Safety1st

Prize Knife is free software;
you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/

#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "Prize Knife"
#define VERSION "0.1"
#define AUTHOR "Safety1st"

/*---------------EDIT ME------------------*/
#define ACCESS_FLAG ADMIN_LEVEL_H // flag 't' by default
#define CUSTOM_DMG 6.0 // custom knife damage; fractional part of a number is mandatory

new const gszKnifeModelV[] = "models/knife1/v_knife.mdl" // 1st person view model
new const gszKnifeModelP[] = "models/knife1/p_knife.mdl" // 3rd person view model
/*----------------------------------------*/

new giszKnifeModelV, giszKnifeModelP

// macro; %1 - variable being modified, %2 - player id
#define CheckFlag(%1,%2) (%1 & (1 << (%2 & 31)))
#define SetFlag(%1,%2) (%1 |= (1 << (%2 & 31)))
#define ClearFlag(%1,%2) (%1 &= ~(1 << (%2 & 31)))
new gbCustomKnfDamage

#define IsPlayer(%0) ( 1 <= (%0) <= giMaxPlayers )

new giMaxPlayers

public plugin_init() {
register_plugin( PLUGIN, VERSION, AUTHOR )

RegisterHam( Ham_Item_Deploy, "weapon_knife" , "Fwd_ItemDeploy_Knife_Post", .Post = 1 )
RegisterHam( Ham_TakeDamage, "player", "Fwd_TakeDamage" )

giszKnifeModelV = engfunc( EngFunc_AllocString, gszKnifeModelV )
giszKnifeModelP = engfunc( EngFunc_AllocString, gszKnifeModelP )

giMaxPlayers = get_maxplayers()
}

public plugin_precache() {
precache_model( gszKnifeModelV )
precache_model( gszKnifeModelP )
}

public client_putinserver(id) {
get_user_flags(id) & ACCESS_FLAG ? SetFlag( gbCustomKnfDamage, id ) : ClearFlag( gbCustomKnfDamage, id )
}

public Fwd_ItemDeploy_Knife_Post( ent ) {
const XO_WEAPON = 4 // 'XO' means extraoffset
const m_pPlayer = 41

new iPlayer = get_pdata_cbase( ent, m_pPlayer, XO_WEAPON )

if( CheckFlag( gbCustomKnfDamage, iPlayer ) ) {
set_pev_string( iPlayer, pev_viewmodel2, giszKnifeModelV )
set_pev_string( iPlayer, pev_weaponmodel2, giszKnifeModelP )
}
}

public Fwd_TakeDamage( victim, inflictor, attacker, Float:damage, damagebits ) {
if( IsPlayer(attacker) && attacker == inflictor /* it is mandatory be4 checking current weapon (it could not be the same as one inflicting damage now) */
&& CheckFlag( gbCustomKnfDamage, attacker ) && get_user_weapon(attacker) == CSW_KNIFE ) {
SetHamParamFloat( 4, damage * CUSTOM_DMG )
return HAM_HANDLED
}

return HAM_IGNORED
}


Самые лучшие мысли приходят по глупости.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя John1994
сообщение 28.2.2016, 22:51
Сообщение #2
Стаж: 13 лет

Сообщений: 374
Благодарностей: 97
Полезность: 183

Blitzz, Blitzz,
ADMIN_LEVEL_H смени на ADMIN_USER
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя offtop2012
сообщение 28.2.2016, 22:54
Сообщение #3


Стаж: 13 лет

Сообщений: 878
Благодарностей: 126
Полезность: 356

Код:
/**
* Simple plugin to modify knife damage for certain players.
*
* Home post:
* <a href="https://c-s.net.ua/forum/ipb.html?act=findpost&pid=797669" target="_blank">https://c-s.net.ua/forum/index.php?act=find...&pid=797669</a>
*
* Last update:
* 6/5/2015
*
* Credits:
* - idea by Yaroslav from c-s.net.ua
* - ConnorMrLeod for the code and helping
*
* Notes:
* - player's access flags are checked when entering a game only then are remembered
* - limitation: player could not lose custom damage for his knife
*/

/* Copyright 2015 Safety1st

Prize Knife is free software;
you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/

#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "Prize Knife"
#define VERSION "0.1"
#define AUTHOR "Safety1st"

/*---------------EDIT ME------------------*/
//#define ACCESS_FLAG ADMIN_LEVEL_H // flag 't' by default
#define CUSTOM_DMG 6.0 // custom knife damage; fractional part of a number is mandatory

new const gszKnifeModelV[] = "models/knife1/v_knife.mdl" // 1st person view model
new const gszKnifeModelP[] = "models/knife1/p_knife.mdl" // 3rd person view model
/*----------------------------------------*/

new giszKnifeModelV, giszKnifeModelP

// macro; %1 - variable being modified, %2 - player id
#define CheckFlag(%1,%2) (%1 & (1 << (%2 & 31)))
#define SetFlag(%1,%2) (%1 |= (1 << (%2 & 31)))
#define ClearFlag(%1,%2) (%1 &= ~(1 << (%2 & 31)))
new gbCustomKnfDamage

#define IsPlayer(%0) ( 1 <= (%0) <= giMaxPlayers )

new giMaxPlayers

public plugin_init() {
register_plugin( PLUGIN, VERSION, AUTHOR )

RegisterHam( Ham_Item_Deploy, "weapon_knife" , "Fwd_ItemDeploy_Knife_Post", .Post = 1 )
RegisterHam( Ham_TakeDamage, "player", "Fwd_TakeDamage" )

giszKnifeModelV = engfunc( EngFunc_AllocString, gszKnifeModelV )
giszKnifeModelP = engfunc( EngFunc_AllocString, gszKnifeModelP )

giMaxPlayers = get_maxplayers()
}

public plugin_precache() {
precache_model( gszKnifeModelV )
precache_model( gszKnifeModelP )
}

public client_putinserver(id) {
get_user_flags(id) & ACCESS_FLAG ? SetFlag( gbCustomKnfDamage, id ) : ClearFlag( gbCustomKnfDamage, id )
}

public Fwd_ItemDeploy_Knife_Post( ent ) {
const XO_WEAPON = 4 // 'XO' means extraoffset
const m_pPlayer = 41

new iPlayer = get_pdata_cbase( ent, m_pPlayer, XO_WEAPON )

if( CheckFlag( gbCustomKnfDamage, iPlayer ) ) {
set_pev_string( iPlayer, pev_viewmodel2, giszKnifeModelV )
set_pev_string( iPlayer, pev_weaponmodel2, giszKnifeModelP )
}
}

public Fwd_TakeDamage( victim, inflictor, attacker, Float:damage, damagebits ) {
if( IsPlayer(attacker) && attacker == inflictor /* it is mandatory be4 checking current weapon (it could not be the same as one inflicting damage now) */
&& CheckFlag( gbCustomKnfDamage, attacker ) && get_user_weapon(attacker) == CSW_KNIFE ) {
SetHamParamFloat( 4, damage * CUSTOM_DMG )
return HAM_HANDLED
}

return HAM_IGNORED
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Blitzz
сообщение 28.2.2016, 22:58
Сообщение #4


Стаж: 10 лет

Сообщений: 509
Благодарностей: 117
Полезность: 91

John1994, пробивал, получается что у игроков работает норм , а у админов нет ((

offtop2012, Ок сейчас проверю )


Самые лучшие мысли приходят по глупости.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Blitzz
сообщение 28.2.2016, 23:36
Сообщение #5


Стаж: 10 лет

Сообщений: 509
Благодарностей: 117
Полезность: 91

Ошибка :(


Самые лучшие мысли приходят по глупости.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Dukkhaz0r
сообщение 28.2.2016, 23:45
Сообщение #6


Стаж: 12 лет

Сообщений: 343
Благодарностей: 294
Полезность: 812

Готовый вариант
Код:
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "Prize Knife"
#define VERSION "0.1"
#define AUTHOR "Safety1st"

/*---------------EDIT ME------------------*/
#define CUSTOM_DMG 6.0 // custom knife damage; fractional part of a number is mandatory

new const gszKnifeModelV[] = "models/knife1/v_knife.mdl" // 1st person view model
new const gszKnifeModelP[] = "models/knife1/p_knife.mdl" // 3rd person view model
/*----------------------------------------*/

new giszKnifeModelV, giszKnifeModelP

#define IsPlayer(%0) ( 1 <= (%0) <= giMaxPlayers )

new giMaxPlayers

public plugin_init() {
register_plugin( PLUGIN, VERSION, AUTHOR )

RegisterHam( Ham_Item_Deploy, "weapon_knife" , "Fwd_ItemDeploy_Knife_Post", .Post = 1 )
RegisterHam( Ham_TakeDamage, "player", "Fwd_TakeDamage" )

giszKnifeModelV = engfunc( EngFunc_AllocString, gszKnifeModelV )
giszKnifeModelP = engfunc( EngFunc_AllocString, gszKnifeModelP )

giMaxPlayers = get_maxplayers()
}

public plugin_precache() {
precache_model( gszKnifeModelV )
precache_model( gszKnifeModelP )
}


public Fwd_ItemDeploy_Knife_Post( ent ) {
const XO_WEAPON = 4 // 'XO' means extraoffset
const m_pPlayer = 41

new iPlayer = get_pdata_cbase( ent, m_pPlayer, XO_WEAPON )

set_pev_string( iPlayer, pev_viewmodel2, giszKnifeModelV )
set_pev_string( iPlayer, pev_weaponmodel2, giszKnifeModelP )
}

public Fwd_TakeDamage( victim, inflictor, attacker, Float:damage, damagebits ) {
if( IsPlayer(attacker) && attacker == inflictor && get_user_weapon(attacker) == CSW_KNIFE ) {
SetHamParamFloat( 4, damage * CUSTOM_DMG )
return HAM_HANDLED
}

return HAM_IGNORED
}


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Blitzz
сообщение 29.2.2016, 1:37
Сообщение #7


Стаж: 10 лет

Сообщений: 509
Благодарностей: 117
Полезность: 91

Dukkhaz0r, работает спасибо )


Самые лучшие мысли приходят по глупости.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя tenb63rus
сообщение 2.3.2016, 17:04
Сообщение #8


Стаж: 12 лет

Сообщений: 817
Благодарностей: 476
Полезность: 850

Чтобы новую тему не создавать, напишу здесь.
Можно в этом плагине убрать кастомный урон от ножа? Оставить просто модельки ножа по флагу.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
TwistaRBT
сообщение 16.9.2016, 11:07
Сообщение #9
Стаж: 9 лет 8 месяцев
Город: Москва

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

Dukkhaz0r,
а можно как то легкий способ добавить, ну 1 включить для вип и админов; 0 - для всех
?)
если возможно помогите пожалуйста
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ruslankov
сообщение 16.9.2016, 11:36
Сообщение #10
Стаж: 9 лет 7 месяцев

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

Можете сделать не взамен обычного ножа, а с покупкой через say /knife
Чтобы остался обычный нож, а если купиш через /knife - то был этот.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Christmas
сообщение 16.9.2016, 18:50
Сообщение #11
Стаж: 9 лет 7 месяцев
Город: Киев

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

tenb63rus, попробуй удалить эти строки:
Код:
public Fwd_TakeDamage( victim, inflictor, attacker, Float:damage, damagebits ) {
if( IsPlayer(attacker) && attacker == inflictor && get_user_weapon(attacker) == CSW_KNIFE ) {
SetHamParamFloat( 4, damage * CUSTOM_DMG )
return HAM_HANDLED
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя NichtWolf
сообщение 17.9.2016, 13:35
Сообщение #12
Стаж: 17 лет

Сообщений: 573
Благодарности: выкл.

Цитата(ruslankov @ 16.9.2016, 14:36) *
Можете сделать не взамен обычного ножа, а с покупкой через say /knife
Чтобы остался обычный нож, а если купиш через /knife - то был этот.

и играть с двумя ножами? ))))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Unknown
сообщение 17.9.2016, 13:43
Сообщение #13
Стаж: 10 лет

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

он наверное про типа того
https://m.youtube.com/watch?v=DaxDaTsJxWk&a...lient=mv-google


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