can't give 'item_assaultsuit' without using give_named_item()

Please post any questions about developing your plugin here. Please use the search function before posting!
User avatar
BackRaw
Senior Member
Posts: 537
Joined: Sun Jul 15, 2012 1:46 am
Location: Germany
Contact:

can't give 'item_assaultsuit' without using give_named_item()

Postby BackRaw » Mon Jan 19, 2015 10:08 pm

Hi,

why won't this work?

Syntax: Select all

from events import Event

from players.entities import Player
from players.helpers import index_from_userid


class Player(PlayerEntity):

def __init__(self, index):
super(Player, self).__init__()

def equip(self, item):
"""
Equips the player with an item
"""

# create a new item entity
entity = BaseEntity(create_entity(item))

# set its origin to the player's
entity.origin = self.origin

# spawn it there
spawn_entity(entity.index)

# if it was a weapon, set it as the active weapon
if item.startswith("weapon_"):
tick_delays.delay(0.2, self.set_property_int, "m_hActiveWeapon", entity.inthandle)


@Event
def player_say(game_event):
player = Player(index_from_userid(game_event.get_int("userid")))

player.equip("weapon_ak47") # -- works
player.equip("item_assaultsuit") # -- doesn't work, but
player.give_named_item("item_assaultsuit", 0) # works for CS:S
Is there any workaround for this? :)
My Github repositories:

Source.Python: https://github.com/backraw
User avatar
satoon101
Project Leader
Posts: 2703
Joined: Sat Jul 07, 2012 1:59 am

Postby satoon101 » Mon Jan 19, 2015 10:21 pm

Image
User avatar
BackRaw
Senior Member
Posts: 537
Joined: Sun Jul 15, 2012 1:46 am
Location: Germany
Contact:

Postby BackRaw » Mon Jan 19, 2015 10:29 pm

satoon101 wrote:Maybe try using the game_player_equip entity like we did in GunGame51:
https://code.google.com/p/gungame51/source/browse/trunk/cstrike/addons/eventscripts/gungame51/modules/helpers.py#60


Cool, how can I execute 'fire' in SP? =)
My Github repositories:

Source.Python: https://github.com/backraw
User avatar
L'In20Cible
Project Leader
Posts: 1536
Joined: Sat Jul 14, 2012 9:29 pm
Location: Québec

Postby L'In20Cible » Tue Jan 20, 2015 3:59 am

User avatar
BackRaw
Senior Member
Posts: 537
Joined: Sun Jul 15, 2012 1:46 am
Location: Germany
Contact:

Postby BackRaw » Tue Jan 20, 2015 7:45 am

L'In20Cible wrote:BaseEntity.call/get_input


Thanks a bunch. I'll try it out.
User avatar
BackRaw
Senior Member
Posts: 537
Joined: Sun Jul 15, 2012 1:46 am
Location: Germany
Contact:

Postby BackRaw » Tue Jan 20, 2015 9:06 am

What's the 'es_xgive' equivalent for SP? I understand it until that point:

Syntax: Select all

class Player(PlayerEntity): 

def __init__(self, index):
super(Player, self).__init__()

def equip(self, item):
# do we need the 'es_xremove' equivalent?

for game_player_equip in EntityIter("game_player_equip", return_types="entity"):
game_player_equip.remove()

entity = BaseEntity(create_entity("game_player_equip"))

# es_xgive %s game_player_equip; <-- how??
entity.add_output("{0} 1".format(item))

# am I missing something?
My Github repositories:

Source.Python: https://github.com/backraw
User avatar
L'In20Cible
Project Leader
Posts: 1536
Joined: Sat Jul 14, 2012 9:29 pm
Location: Québec

Postby L'In20Cible » Tue Jan 20, 2015 9:46 am

The equivalence is... give_named_item. The following works fine for me on CS:GO.

Syntax: Select all

# _ZN11CBasePlayer13GiveNamedItemEPKciP13CEconItemViewb
[[give_named_item]]
offset_linux = 446
offset_windows = 445
arguments = STRING, INT, POINTER, BOOL
return_type = POINTER

Syntax: Select all

from events import Event
from players.entity import PlayerEntity
from players.helpers import index_from_userid

@Event
def player_say(game_event):
player = PlayerEntity(index_from_userid(game_event.get_int('userid')))
player.give_named_item(game_event.get_string('text'), 0, None, False)
User avatar
BackRaw
Senior Member
Posts: 537
Joined: Sun Jul 15, 2012 1:46 am
Location: Germany
Contact:

Postby BackRaw » Tue Jan 20, 2015 10:01 am

L'In20Cible wrote:The equivalence is... give_named_item. The following works fine for me on CS:GO.

Syntax: Select all

# _ZN11CBasePlayer13GiveNamedItemEPKciP13CEconItemViewb
[[give_named_item]]
offset_linux = 446
offset_windows = 445
arguments = STRING, INT, POINTER, BOOL
return_type = POINTER

Syntax: Select all

from events import Event
from players.entity import PlayerEntity
from players.helpers import index_from_userid

@Event
def player_say(game_event):
player = PlayerEntity(index_from_userid(game_event.get_int('userid')))
player.give_named_item(game_event.get_string('text'), 0, None, False)


Lol, but I'm trying to find a workaround so that it works for both CS:GO and OrangeBox, otherwise I wouldn't have asked that question. :)
My Github repositories:

Source.Python: https://github.com/backraw
User avatar
BackRaw
Senior Member
Posts: 537
Joined: Sun Jul 15, 2012 1:46 am
Location: Germany
Contact:

Postby BackRaw » Tue Jan 20, 2015 1:01 pm

L'In20Cible wrote:The equivalence is... give_named_item. The following works fine for me on CS:GO.

Syntax: Select all

# _ZN11CBasePlayer13GiveNamedItemEPKciP13CEconItemViewb
[[give_named_item]]
offset_linux = 446
offset_windows = 445
arguments = STRING, INT, POINTER, BOOL
return_type = POINTER

Syntax: Select all

from events import Event
from players.entity import PlayerEntity
from players.helpers import index_from_userid

@Event
def player_say(game_event):
player = PlayerEntity(index_from_userid(game_event.get_int('userid')))
player.give_named_item(game_event.get_string('text'), 0, None, False)


oh I took CS:GO for CS:S, sorry. ok, problem solved.

Return to “Plugin Development Support”

Who is online

Users browsing this forum: No registered users and 134 guests