SDK tools в помощь)Здравствуйте, помогите убрать урон в ноуклипе.. Т.е. что-бы игроки не могли в noclip убивать других игроков.. (Тут нет ничего странного :D)
А подробнее?SDK tools в помощь)
warning 209: function "PlayerHurt" should return a valueРеализовал не через SDK
PHP:#include <sourcemod> #pragma semicolon 1 public void OnPluginStart() { HookEvent("player_hurt", PlayerHurt); } public void PlayerHurt(Handle event, const char[] name, bool dontBroadcast) { new attacker = GetClientOfUserId(GetEventInt(event, "attacker")); if (GetEntityMoveType(attacker) == MOVETYPE_NOCLIP) return Plugin_Handled; }
Не работаетРеализовал не через SDK
PHP:#include <sourcemod> #pragma semicolon 1 public OnPluginStart() { HookEvent("player_hurt", PlayerHurt); } public PlayerHurt(Handle event, const char[] name, bool dontBroadcast) { new attacker = GetClientOfUserId(GetEventInt(event, "attacker")); if (GetEntityMoveType(attacker) == MOVETYPE_NOCLIP) return Plugin_Handled; return Plugin_Continue; }
Рико, спасай ситуацию.. У манифеста плохо получается..sdk hooks
не будет работать 200%Реализовал не через SDK
PHP:#include <sourcemod> #pragma semicolon 1 public OnPluginStart() { HookEvent("player_hurt", PlayerHurt); } public PlayerHurt(Handle event, const char[] name, bool dontBroadcast) { new attacker = GetClientOfUserId(GetEventInt(event, "attacker")); if (IsClientInGame(attacker) && IsPlayerAlive(attacker) && GetEntityMoveType(attacker) == MOVETYPE_NOCLIP) return Plugin_Handled; else { return Plugin_Continue; } }
Вот и не работает... ;(не будет работать 200%
#pragma semicolon 1
#include <sourcemod>
#include <sdkhooks>
public OnClientPutInServer(client)
{
SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage);
}
public OnClientDisconnect(client)
{
SDKUnhook(client, SDKHook_OnTakeDamage, OnTakeDamage);
}
public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype)
{
if(attacker > 0 && attacker <= MaxClients && GetEntityMoveType(attacker) == MOVETYPE_NOCLIP)
{
damage = 0.0;
return Plugin_Changed;
}
return Plugin_Continue;
}
Не мог написать код больше. Т.к с телефона@Kcinworld,
PHP:#pragma semicolon 1 #include <sourcemod> #include <sdkhooks> public OnClientPutInServer(client) { SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage); } public OnClientDisconnect(client) { SDKUnhook(client, SDKHook_OnTakeDamage, OnTakeDamage); } public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype) { if(attacker > 0 && attacker <= MaxClients && GetEntityMoveType(attacker) == MOVETYPE_NOCLIP) { damage = 0.0; return Plugin_Changed; } return Plugin_Continue; }
Все равно не работает xD... Зато компиляция без ошибок.@Kcinworld,
PHP:#pragma semicolon 1 #include <sourcemod> #include <sdkhooks> public OnClientPutInServer(client) { SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage); } public OnClientDisconnect(client) { SDKUnhook(client, SDKHook_OnTakeDamage, OnTakeDamage); } public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype) { if(attacker > 0 && attacker <= MaxClients && GetEntityMoveType(attacker) == MOVETYPE_NOCLIP) { damage = 0.0; return Plugin_Changed; } return Plugin_Continue; }
А если проверять при "weapon_fire"? А потом блокировать.@Kcinworld, попробуй MOVETYPE_FLY
Не работает.@Kcinworld, попробуй MOVETYPE_FLY
1) WCS ultimateНоклип как включаешь?
Мне это под PYHTON WCS надо.. Его тут вроде гэрри выкладывал на форуме.. Да и оффициальный форум wcs прикрыли че то..Ноклип как включаешь?
#pragma semicolon 1
#include <sourcemod>
#include <sdkhooks>
public OnClientPutInServer(client)
{
SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage);
}
public OnClientDisconnect(client)
{
SDKUnhook(client, SDKHook_OnTakeDamage, OnTakeDamage);
}
public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype)
{
// if(attacker > 0 && attacker <= MaxClients && GetEntityMoveType(attacker) == MOVETYPE_NOCLIP)
if(attacker > 0 && attacker <= MaxClients)
{
PrintToChat(attacker, "MoveType = %i", GetEntityMoveType(attacker));
/*
damage = 0.0;
return Plugin_Changed;
*/
}
return Plugin_Continue;
}
При компилировании@Kcinworld,
PHP:#pragma semicolon 1 #include <sourcemod> #include <sdkhooks> public OnClientPutInServer(client) { SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage); } public OnClientDisconnect(client) { SDKUnhook(client, SDKHook_OnTakeDamage, OnTakeDamage); } public Action:OnTakeDamagePre(victim, &attacker, &inflictor, &Float:damage, &damagetype) { // if(attacker > 0 && attacker <= MaxClients && GetEntityMoveType(attacker) == MOVETYPE_NOCLIP) if(attacker > 0 && attacker <= MaxClients) { PrintToChat(attacker, "MoveType = %i", GetEntityMoveType(attacker)); /* damage = 0.0; return Plugin_Changed; */ } return Plugin_Continue; }
посмотри что пишет в чат когда наносишь урон с ноклипом и без