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

Simple Drop weapon


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Shouldercannon
BANNED
Join Date: Sep 2009
Location: Russia, Penza
Old 11-18-2010 , 08:20   Simple Drop weapon
Reply With Quote #1

Помогите пожалуйста написать простейший код выброса оружия по событию
Please collect the aid of a simple code release arms on the event
PHP Code:
public Action:Event_PlayerHurt(Handle:event, const String:name[], bool:dontBroadcast
Так похоже бесполезно делать
So it seems useless to do
PHP Code:
...
new 
String:weapon[64];
...
GetEventString(event"weapon"weaponsizeof(weapon));
...
if (
StrContains("weapon_glock|weapon_usp|weapon_p228|weapon_deagle|weapon_fiveseven|weapon_elite"weapon) > -1)
// Бросить оружие/Drop weapon 
Shouldercannon is offline
Send a message via ICQ to Shouldercannon
FaTony
Veteran Member
Join Date: Aug 2008
Old 11-18-2010 , 08:52   Re: Simple Drop weapon
Reply With Quote #2

Арррр... Нельзя так. StrContains ищет только одну строку. Тебе лучше всего Закинуть все "плохие" пушки в Trie и потом искать в ней. Пушку лучше всего бросать
OnPlayerRunCmd, добавив в битовую строку кпонок кнопку выброса пушки.

Как работать с Trie: http://docs.sourcemod.net/api/index....ad=file&id=46&

Как работать с OnPlayerRunCmd: http://forums.alliedmods.net/showthread.php?t=94187
__________________
FaTony is offline
Shouldercannon
BANNED
Join Date: Sep 2009
Location: Russia, Penza
Old 11-18-2010 , 09:03   Re: Simple Drop weapon
Reply With Quote #3

Quote:
Originally Posted by FaTony View Post
Арррр... Нельзя так. StrContains ищет только одну строку. Тебе лучше всего Закинуть все "плохие" пушки в Trie и потом искать в ней. Пушку лучше всего бросать
OnPlayerRunCmd, добавив в битовую строку кпонок кнопку выброса пушки.

Как работать с Trie: http://docs.sourcemod.net/api/index....ad=file&id=46&

Как работать с OnPlayerRunCmd: http://forums.alliedmods.net/showthread.php?t=94187
PHP Code:
if (StrContains("weapon_glock|weapon_usp|weapon_p228|weapon_deagle|weapon_fiveseven|weapon_elite"weapon) > -1
Это я использовал для отлова оружия, которым был убит игрок, чтобы вызвать соответсвующее действие. Если с Trie, можно будет сделать так же, то я буду только рад.

Дело в том, что плагин должен сам выбрасывать оружие. Нужно это для: если игрок атакует своих, то после трёх попаданий выбросить оружие, которым он наносит урон.

Last edited by Shouldercannon; 11-18-2010 at 09:06.
Shouldercannon is offline
Send a message via ICQ to Shouldercannon
FaTony
Veteran Member
Join Date: Aug 2008
Old 11-19-2010 , 07:10   Re: Simple Drop weapon
Reply With Quote #4

Хоть одно оружие отловил? OnPlayerRunCmd "сам" выбросит пушку за игрока.
__________________
FaTony is offline
Shouldercannon
BANNED
Join Date: Sep 2009
Location: Russia, Penza
Old 11-19-2010 , 07:49   Re: Simple Drop weapon
Reply With Quote #5

Quote:
Originally Posted by FaTony View Post
Хоть одно оружие отловил? OnPlayerRunCmd "сам" выбросит пушку за игрока.
С помощью Trie? С OnPlayerRunCmd ни как не разберусь в плане выброса оружия.

Last edited by Shouldercannon; 11-19-2010 at 09:02.
Shouldercannon is offline
Send a message via ICQ to Shouldercannon
FaTony
Veteran Member
Join Date: Aug 2008
Old 11-19-2010 , 14:05   Re: Simple Drop weapon
Reply With Quote #6

Нет, с помощью "пушка1|пушка2", т.к. такая штука не должна работать. Я лично советую держать весь код в OnPlayerRunCmd, хоты ты можешь его раскидать как хочешь. Кнопка добавляется вот так:
PHP Code:
buttons |= << n
Где n - значение смещения. Значение смещения ищется эмпирически (степень двойки, в которую надо возвести число, которое получается, когда ты нажимаешь кнопку выброса оружия).
__________________

Last edited by FaTony; 11-19-2010 at 14:07.
FaTony is offline
Shouldercannon
BANNED
Join Date: Sep 2009
Location: Russia, Penza
Old 11-19-2010 , 16:18   Re: Simple Drop weapon
Reply With Quote #7

Пытался выбросить всё оружие так
PHP Code:
#include <sourcemod>
#include <sdktools>
#include <sdkhooks>

new Handle:hRemoveAllItems INVALID_HANDLE;
new 
Handle:hGameConf INVALID_HANDLE;
...
public 
OnPluginStart()
{
    
HookEvent("player_hurt"Event_PlayerHurt);

    
// Грузим нужные инструменты из файла
    
hGameConf LoadGameConfigFile("plugin.ut1999_sneers");

    
// Отвечает за drop оружия у игрока
    
StartPrepSDKCall(SDKCall_Player);
    
PrepSDKCall_SetFromConf(hGameConfSDKConf_Virtual"RemoveAllItems");
    
hRemoveAllItems EndPrepSDKCall();
}

public 
Action:Event_PlayerHurt(Handle:event, const String:name[], bool:dontBroadcast)
{
    new 
victimId GetEventInt(event"userid");
    new 
attackerId GetEventInt(event"attacker");
    
GetEventString(event"weapon"weaponnamesizeof(weaponname));
     
    new 
username GetClientOfUserId(victimId);
    
GetClientName(usernamevictimnamesizeof(victimname));
    new 
attacker GetClientOfUserId(attackerId);
    
// ===========================
    // Killed by the world. Suicide!
    // ===========================
    
if (attacker == 0
    {
        return;
    } 
    
GetClientName(attackerattackernamesizeof(attackername));

    
// Get Client "Victim"
    
new victimid GetClientOfUserId(GetEventInt(event"userid"));
    
// Get Client "Attacker"
    
new attackerid GetClientOfUserId(GetEventInt(event"attacker"));
    
// Get Victim's Team
    
new victimTeam GetClientTeam(victimid);
    
// Get Attacker's Team
    
new attackerTeam GetClientTeam(attackerid);

    
// ===========================
    // Огонь по своим
    // ===========================
    
if (victimTeam == attackerTeam)
    {
        if (
victimid != attackerid)
        {
            
RemoveAllPlayersWeapons(attackerid);
        }
    }
}

public 
RemoveAllPlayersWeapons(client)
{
    
SDKCall(hRemoveAllItemsclient);
    
//GivePlayerItem(client,"weapon_knife");

plugin.ut1999_sneers.txt
Code:
"Games"
{
	"cstrike"
	{
		"Offsets"
		{
			"RemoveAllItems"
			{
				"windows"		"283"
				"linux"		"284"
			}
		}
	}
}
При первой же атаке игрока из своей команды сервер падает и не показывает перед этим никаких ошибок.

Last edited by Shouldercannon; 11-20-2010 at 13:28.
Shouldercannon is offline
Send a message via ICQ to Shouldercannon
FaTony
Veteran Member
Join Date: Aug 2008
Old 11-19-2010 , 16:27   Re: Simple Drop weapon
Reply With Quote #8

Чего, чего, чего?
__________________
FaTony is offline
Shouldercannon
BANNED
Join Date: Sep 2009
Location: Russia, Penza
Old 11-19-2010 , 17:03   Re: Simple Drop weapon
Reply With Quote #9

Quote:
Originally Posted by FaTony View Post
Чего, чего, чего?
Непонял. Было сделано опираясь на Zombie Reloaded, если я не ошибаюсь.

Last edited by Shouldercannon; 11-20-2010 at 13:30.
Shouldercannon is offline
Send a message via ICQ to Shouldercannon
Leonardo
Veteran Member
Join Date: Feb 2010
Location: 90's
Old 11-20-2010 , 01:35   Re: Simple Drop weapon
Reply With Quote #10

pwnd
__________________
Leonardo 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 08:47.


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