The following warnings occurred:
Warning [2] Use of undefined constant SAPI_NAME - assumed 'SAPI_NAME' (this will throw an Error in a future version of PHP) - Line: 3388 - File: inc/functions.php PHP 7.4.33-nmm7 (Linux)
File Line Function
/inc/functions.php 3388 errorHandler->error
/showthread.php 116 build_archive_link
Warning [2] Use of undefined constant IN_ARCHIVE - assumed 'IN_ARCHIVE' (this will throw an Error in a future version of PHP) - Line: 3331 - File: inc/functions.php PHP 7.4.33-nmm7 (Linux)
File Line Function
/inc/functions.php 3331 errorHandler->error
/inc/functions.php 3324 build_forum_breadcrumb
/showthread.php 195 build_forum_breadcrumb
Warning [2] Use of undefined constant IN_ARCHIVE - assumed 'IN_ARCHIVE' (this will throw an Error in a future version of PHP) - Line: 3331 - File: inc/functions.php PHP 7.4.33-nmm7 (Linux)
File Line Function
/inc/functions.php 3331 errorHandler->error
/showthread.php 195 build_forum_breadcrumb






Post Reply 
 
Thread Rating:
  • 1 Votes - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
P{reventing young players looting corpses
Author Message
dabritmusic
Journeyman
*

Posts: 50
Likes Given: 8
Likes Received: 2 in 1 posts
Joined: Nov 2013
Reputation: 0



Post: #1
P{reventing young players looting corpses
I have a young system that is on a timer, it prevents harm done to the new player and new players harming other, melee, spellcast etc... I couldn't figure out how to stop young players looting other players corpses. if anyone could help it would be appreciated. iv been reading but can figure it out... thanks

ON=@DCLICK
IF (<ACT.TYPE>==t_corpse)
SRC.MESSAGE @54 You cannot loot another player as a young Player!
RETURN 1
ENDIF
11-20-2016 12:19 PM
Find all posts by this user Like Post Quote this message in a reply
Coruja
Sphere Developer
*****

Posts: 987
Likes Given: 5
Likes Received: 226 in 187 posts
Joined: Jul 2012
Reputation: 7

Dimension Shard

Post: #2
RE: P{reventing young players looting corpses
the core of your code is working fine, because ACT is the item being dclicked and SRC is the player dclicking

but you're using the wrong trigger, because @DClick is fired on the object being dclicked, so @DClick is being fired only when someone dclick on this player. To make the trigger fire when the player dclick on items you must use @ItemDClick instead @DClick
11-20-2016 01:18 PM
Find all posts by this user Like Post Quote this message in a reply
pointhz
Journeyman
*

Posts: 148
Likes Given: 1
Likes Received: 55 in 28 posts
Joined: Oct 2013
Reputation: 1



Post: #3
RE: P{reventing young players looting corpses
Or you can write it under the [typedef t_corpse]

[TYPEDEF t_corpse]
IF (<SRC.ISNEWBIE>) // Change the ISNEWBIE to whatever you identify your young status with
IF (<TYPE>==t_corpse)
SRC.MESSAGE @54 You cannot loot another player as a young Player!
RETURN 1
ENDIF
ENDIF
11-20-2016 11:53 PM
Find all posts by this user Like Post Quote this message in a reply
dabritmusic
Journeyman
*

Posts: 50
Likes Given: 8
Likes Received: 2 in 1 posts
Joined: Nov 2013
Reputation: 0



Post: #4
RE: P{reventing young players looting corpses
Thanks, it didn't cross my mind that t_corpse refers to all corpses, npc and player! I tried checking to human corpse, but can still open the backpack from a corpse!

ON=@ItemDClick
IF ((<SRC.BODY>==c_ghost_man) || (<SRC.BODY>==c_ghost_woman))
SRC.MESSAGE @54 You cannot loot another player as a young Player!
RETURN 1
ENDIF
11-21-2016 03:18 AM
Find all posts by this user Like Post Quote this message in a reply
Coruja
Sphere Developer
*****

Posts: 987
Likes Given: 5
Likes Received: 226 in 187 posts
Joined: Jul 2012
Reputation: 7

Dimension Shard

Post: #5
RE: P{reventing young players looting corpses
it makes more sense check the corpse LINK instead SRC

Code:
[EVENTS e_player_young]
ON=@ItemDClick
IF (<ACT.LINK>) && (<EVENTS.e_young>)
  IF (<ACT.LINK.ISPLAYER>)
    MESSAGE @54 You cannot loot another player as a young Player!
    RETURN 1
  ENDIF
ENDIF

you can also override @DClick directly on t_corpse. I prefer this method because it's more lightweight (the trigger is fired only when players dclick on corpses instead fire when dclick on any item)
Code:
[TYPEDEF t_corpse]
ON=@DClick
IF (<LINK>) && (<SRC.EVENTS.e_young>)
  IF (<LINK.ISPLAYER>)
    SRC.MESSAGE @54 You cannot loot another player as a young Player!
    RETURN 1
  ENDIF
ENDIF
11-21-2016 04:57 AM
Find all posts by this user Like Post Quote this message in a reply
dabritmusic
Journeyman
*

Posts: 50
Likes Given: 8
Likes Received: 2 in 1 posts
Joined: Nov 2013
Reputation: 0



Post: #6
RE: P{reventing young players looting corpses
thank you both
11-21-2016 07:05 AM
Find all posts by this user Like Post Quote this message in a reply
pointhz
Journeyman
*

Posts: 148
Likes Given: 1
Likes Received: 55 in 28 posts
Joined: Oct 2013
Reputation: 1



Post: #7
RE: P{reventing young players looting corpses
(11-21-2016 04:57 AM)Coruja Wrote:  it makes more sense check the corpse LINK instead SRC

Code:
[EVENTS e_player_young]
ON=@ItemDClick
IF (<ACT.LINK>) && (<EVENTS.e_young>)
  IF (<ACT.LINK.ISPLAYER>)
    MESSAGE @54 You cannot loot another player as a young Player!
    RETURN 1
  ENDIF
ENDIF

you can also override @DClick directly on t_corpse. I prefer this method because it's more lightweight (the trigger is fired only when players dclick on corpses instead fire when dclick on any item)
Code:
[TYPEDEF t_corpse]
ON=@DClick
IF (<LINK>) && (<SRC.EVENTS.e_young>)
  IF (<LINK.ISPLAYER>)
    SRC.MESSAGE @54 You cannot loot another player as a young Player!
    RETURN 1
  ENDIF
ENDIF

Ye that's what i was meant to code, but for some reason I double-checked for type=t_corpse inside the t_coprse typedef lol. Was meant to check if the player corpse was from a player or npc xD
(This post was last modified: 11-21-2016 08:58 AM by pointhz.)
11-21-2016 08:58 AM
Find all posts by this user Like Post Quote this message in a reply
[+] 1 user Likes pointhz's post
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)