Dark_Force9999 said:
:roll:One for everybody who does not cheat.
Dark_Force9999 said::roll:One for everybody who does not cheat.
Blasto121 said:Player: Dark_Force9999 <STEAM_0:1:862164>
Reason: Cheated a map to get to a treasure chest
Punishment Level: 3
Iâd have to look into what might cause that, but each artifact chest is spawned uniquely and starts the process all over again. It maybe I flagged the players in the process or somethingWell theres a small problem if a map has two artifact chests. What seems to be the case is that the first chest works fine, and the people with the most points get their items and are flagged as having gotten an item. Then the second chest comes around (and likely has better items as its further in the map, but this might not always be the case) and any newcomers or people who didn't get anything from the first chest have first pick on the (possibly) better items. This is only what may have happened, only seen it once and I could be that the person who was late to join did actually get more points than everybody else.
//Black chest, the revenge
//- new string and token handling might simplify this mess, so I thought
{
const ANIM_IDLE idle
const ANIM_CLOSE close
const ANIM_OPEN open
const LIGHT_COLOR (200,200,255)
const LIGHT_RAD 96
}
{ game_spawn
//spawn invisible
hp 1
invincible 2
name ''
width 20
height 30
setmodel misc/treasure.mdl
setmodelbody 0 1
setidleanim ANIM_IDLE
setvard IMMUNE_PUSH 1
setvard PLAYING_DEAD 1
fly 1
gravity 0
setsolid none
setprop ent_me rendermode 5
setprop ent_me renderamt 0
setvard BC_DISCONNECTS 0
}
{ game_dynamically_created //<token_items> <token_chances> <token_req_players> <token_disp_names>
setvard IBC_ITEM_LIST PARAM1
setvard IBC_ITEM_CHANCES PARAM2
setvard IBC_REQ_PLAYERS PARAM3
setvard IBC_ITEM_NAMES PARAM4
if ( IBC_ITEM_LIST startswith 'PARAM' ) infomsg all "THOTH FUCKED UP (Artifact Chest)" "Dude, artifact this chest has no items!"
if ( IBC_ITEM_CHANCES startswith 'PARAM' ) infomsg all "THOTH FUCKED UP (Artifact Chest)" "Artifact this chest no spawn chances!"
if ( IBC_REQ_PLAYERS startswith 'PARAM' ) infomsg all "THOTH FUCKED UP (Artifact Chest)" "Artifact this chest no req players!"
if ( IBC_ITEM_NAMES startswith 'PARAM' ) infomsg all "THOTH FUCKED UP (Artifact Chest)" "Artifact chest items have no names!"
if ( PARAM8 isnot 'PARAM8' ) setvard FACE_YAW $vec.yaw(PARAM8) //compatiblity
setvard ARTIFIACT_DEBUG "ARTIFACT_CHEST ("
stradd ARTIFIACT_DEBUG game.map.name
stradd ARTIFIACT_DEBUG "):"
if ( game.cvar.ms_chatlog ) chatlog $timestamp(>) ARTIFIACT_DEBUG full_inventory: IBC_ITEM_NAMES req_players: IBC_REQ_PLAYERS spawn_chances: IBC_ITEM_CHANCES
getplayersnb PLAYER_LIST
setvard N_PLAYERS $get_token_amt(PLAYER_LIST)
callevent 0.1 filter_items
if G_DEVELOPER_MODE
setvard DEV_PLAYER ''
getplayer DEV_PLAYER 1
consolemsg DEV_PLAYER ARTY_DEBUG: ARTIFIACT_DEBUG full_inventory:
consolemsg DEV_PLAYER ARTY_DEBUG: - items: IBC_ITEM_LIST
consolemsg DEV_PLAYER ARTY_DEBUG: - names: IBC_ITEM_NAMES
consolemsg DEV_PLAYER ARTY_DEBUG: - players: IBC_REQ_PLAYERS
consolemsg DEV_PLAYER ARTY_DEBUG: - chances: IBC_ITEM_CHANCES
}
{ filter_items
if ( FACE_YAW isnot 'FACE_YAW' ) setangle face $vec(0,FACE_YAW,0)
//remove items that fail spawn chances, or there are not enough players for
setvard REMOVE_ITEMS ''
calleventloop $get_token_amt(IBC_ITEM_LIST) filter_items_loop
if ( $get_token_amt(REMOVE_ITEMS) == $get_token_amt(IBC_ITEM_LIST) )
{
if ( game.cvar.ms_chatlog ) chatlog $timestamp(>) ARTIFIACT_DEBUG Removed: all items failed spawn chance rolls.
deleteent ent_me //got nadda
local EXIT_SUB 1
}
if !EXIT_SUB
callevent 0.1 remove_items //give a sec for strings to propigate
}
{ filter_items_loop
local CUR_IDX game.script.iteration
local CUR_ITEM_REQ_PLAYERS $get_token(IBC_REQ_PLAYERS,CUR_IDX)
if ( N_PLAYERS < CUR_ITEM_REQ_PLAYERS )
{
local REMOVE_ITEM 1
if G_DEVELOPER_MODE
consolemsg DEV_PLAYER ARTY_DEBUG: CUR_IDX ( $get_token(IBC_ITEM_LIST,CUR_IDX) ) marked for removal (player req)
}
local CUR_ITEM_SPAWNCHANCE $get_token(IBC_ITEM_CHANCES,CUR_IDX)
multiply CUR_ITEM_SPAWNCHANCE N_PLAYERS
if ( $rand(1,100) > CUR_ITEM_SPAWNCHANCE )
{
local REMOVE_ITEM 1
if G_DEVELOPER_MODE
consolemsg DEV_PLAYER ARTY_DEBUG: CUR_IDX ( $get_token(IBC_ITEM_LIST,CUR_IDX) ) marked for removal (spawn chance)
}
if REMOVE_ITEM
token.add REMOVE_ITEMS $get_token(IBC_ITEM_LIST,CUR_IDX)
}
{ remove_items
if ( G_DEVELOPER_MODE ) consolemsg DEV_PLAYER ARTY_DEBUG: Remove_item_list: REMOVE_ITEMS
calleventloop $get_token_amt(REMOVE_ITEMS) remove_items_loop
if ( game.cvar.ms_chatlog ) chatlog $timestamp(>) ARTIFIACT_DEBUG final_inventory: IBC_ITEM_NAMES req_players: IBC_REQ_PLAYERS spawn_chances: IBC_ITEM_CHANCES
if ( G_DEVELOPER_MODE )
{
consolemsg DEV_PLAYER ARTY_DEBUG: ARTIFIACT_DEBUG final_inventory:
consolemsg DEV_PLAYER ARTY_DEBUG: - items: IBC_ITEM_NAMES
consolemsg DEV_PLAYER ARTY_DEBUG: - players: IBC_REQ_PLAYERS
consolemsg DEV_PLAYER ARTY_DEBUG: - chances: IBC_ITEM_CHANCES
}
callevent 0.5 choose_player
}
{ remove_items_loop
local CUR_IDX game.script.iteration
local ITEM_TO_REMOVE $get_token(REMOVE_ITEMS,CUR_IDX)
local REMOVE_IDX $get_find_token(IBC_ITEM_LIST,ITEM_TO_REMOVE)
if ( G_DEVELOPER_MODE ) consolemsg DEV_PLAYER ARTY_DEBUG: Removing ( $get_token(IBC_ITEM_LIST,REMOVE_IDX) )
//doing this from here, rather than callevent remove_item, to be safer
token.del IBC_ITEM_LIST REMOVE_IDX
token.del IBC_ITEM_CHANCES REMOVE_IDX
token.del IBC_REQ_PLAYERS REMOVE_IDX
token.del IBC_ITEM_NAMES REMOVE_IDX
}
{ choose_player
setvard STRONGEST_IDX 0
setvard STRONGEST_STAT_LEVEL 0
calleventloop $get_token_amt(PLAYER_LIST) find_strongest_player
setvard THE_CHOSEN_ONE $get_token(PLAYER_LIST,STRONGEST_IDX)
setvard THE_CHOSEN_ONE_IDX STRONGEST_IDX
token.del PLAYER_LIST STRONGEST_IDX
callevent inform_player
}
{ find_strongest_player
local CUR_IDX game.script.iteration
local CUR_PLAYER $get_token(PLAYER_LIST,CUR_IDX)
local PLAYER_STAT $get(CUR_PLAYER,scriptvar,PLR_TOTAL_DMG) //newfunc in player_main/game_master +1000 for heal/iceshield -1000 for death
local PLAYER_SUB_STAT $get(CUR_PLAYER,scriptvar,PLR_DMG) //fraction points
multiply PLAYER_SUB_STAT 0.001
add PLAYER_STAT PLAYER_SUB_STAT
if ( G_DEVELOPER_MODE ) consolemsg DEV_PLAYER ARTY_DEBUG: reading PLAYER_STAT dmgpoints on $get(CUR_PLAYER,name)
if ( PLAYER_STAT > STRONGEST_STAT_LEVEL )
{
setvard STRONGEST_STAT_LEVEL PLAYER_STAT
setvard STRONGEST_IDX CUR_IDX
}
}
{ inform_player
if ( !I_MANIFESTED )
{
//I have items, manifest
name Artifact Chest
playsound 0 10 magic/spawn.wav
setvard I_MANIFESTED 1
clientevent persist all monsters/lighted_cl $get(ent_me,index) LIGHT_COLOR LIGHT_RAD
setvard MY_LIGHT_IDX game.script.last_sent_id
callexternal GAME_MASTER gm_fade_in $get(ent_me,id) 5
}
infomsg THE_CHOSEN_ONE "ARTIFACT CHEST: YOU HAVE BEEN CHOSEN!" "Select and item of your choosing..."
playanim hold ANIM_OPEN
menu.open THE_CHOSEN_ONE
callevent 10.0 resend_menu
}
{ game_menu_getoptions
calleventloop $get_token_amt(IBC_ITEM_LIST) list_items
}
{ list_items
local CUR_IDX game.script.iteration
local CUR_ITEM_NAME $get_token(IBC_ITEM_NAMES,CUR_IDX)
local reg.mitem.title CUR_ITEM_NAME
local reg.mitem.type callback
local reg.mitem.data CUR_IDX
local reg.mitem.callback give_item
menuitem.register
}
{ game_menu_cancel
//player clicked cancel on the pop-up menu
callexternal THE_CHOSEN_ONE ext_last_artie_used $get(ent_me,id)
local RESP_STRING $get(PARAM1,name)
strconc RESP_STRING " " has declined to partake in the bounty
infomsg all "ARTIFACT CHEST" RESP_STRING
playanim once ANIM_CLOSE
token.del PLAYER_LIST THE_CHOSEN_ONE_IDX //remove player from list
callevent 2.0 next_winner
}
{ give_item //<prize_winner> <item_idx>
callexternal PARAM1 ext_last_artie_used $get(ent_me,id)
if ( G_DEVELOPER_MODE ) consolemsg DEV_PLAYER ARTY_DEBUG: Menu Select PARAM2
local CUR_ITEM $get_token(IBC_ITEM_LIST,PARAM2)
local CUR_ITEM_NAME $get_token(IBC_ITEM_NAMES,PARAM2)
offer PARAM1 CUR_ITEM
local RESP_STRING $get(PARAM1,name)
strconc RESP_STRING " " has recieved a CUR_ITEM_NAME from an Artifact Chest. (NO ROLLING!)
infomsg all "ARTIFACT CHEST" RESP_STRING
if ( game.cvar.ms_chatlog ) chatlog $timestamp(>) ARTIFIACT_DEBUG $get(PARAM1,name) chose a CUR_ITEM_NAME
local ITEM_IDX PARAM2
callevent remove_item ITEM_IDX
token.del PLAYER_LIST THE_CHOSEN_ONE_IDX //remove player from list
playanim once ANIM_CLOSE
callevent 2.0 next_winner
}
{ next_winner
if ( $get_token_amt(IBC_ITEM_LIST) == 0 )
{
callevent fade_away //out of stuff
local ALL_DONE 1
}
if ( $get_token_amt(PLAYER_LIST) == 0 )
{
callevent fade_away //out of players
local ALL_DONE 1
}
if !ALL_DONE
callevent 1.0 choose_player
}
{ remove_item //<item_idx>
token.del IBC_ITEM_LIST PARAM1
token.del IBC_ITEM_CHANCES PARAM1
token.del IBC_REQ_PLAYERS PARAM1
token.del IBC_ITEM_NAMES PARAM1
}
{ fade_away
//passed out everything I had, or ran out of players to pass stuff to, fade out
playsound 0 10 magic/spawn.wav
clientevent remove all MY_LIGHT_IDX
callexternal GAME_MASTER gm_fade_out $get(ent_me,id)
callevent 3.0 fade_away2
}
{ fade_away2
deleteent ent_me
}
{ resend_menu
if $get(THE_CHOSEN_ONE,isplayer) //still here
if $get(THE_CHOSEN_ONE,scriptvar,PLR_LAST_ARTIE) isnot $get(ent_me,id) //hasnt used me yet
//send menu again
menu.open THE_CHOSEN_ONE
callevent 10.0 resend_menu
}
Fear not, I thought of exactaly that.He was using a darksword, which is another concern. If damage points aren't capped to a monsters max hp (which they may be, I don't know) somebody could run around with a darksword hitting 1000+ on rats and get more points by the end of the map than anybody else.
{ [server] game_damaged_other //PARAM1=target_hit PARAM2=dmg //players only?
if ( $get(PARAM1,relationship,ent_me) equals enemy )
{
if !$get(PARAM1,isplayer)
local DMG_DONE PARAM2
local NME_HP $get(PARAM1,hp)
if ( NME_HP < DMG_DONE )
{
local DMG_DONE NME_HP //so we don't get 1000 dmg points for darksword'ing a rat
}
add PLR_DMG DMG_DONE
if ( PLR_DMG >= 1000 )
{
callexternal GAME_MASTER add_score $get(ent_me,id) 1
subtract PLR_DMG 1000
}
}
if DISPLAY_TARG_HP
setvard HBAR_TARGET PARAM1
callevent 0.1 show_hbar_monster //give time for health to propigate
}
Sat Jan 26 20:42:03 2008> ARTIFACT_CHEST (ms_snow): full_inventory: an Ice Blade;an Ice Shield Tome;an Ice Shield Scroll;an Ice Wall Tome;an Ice Wall Scroll; req_players: 2;1;1;1;1; spawn_chances: 20;10;5;10;5;
Sat Jan 26 20:42:03 2008> ARTIFACT_CHEST (ms_snow): final_inventory: an Ice Blade;an Ice Wall Tome;an Ice Wall Scroll req_players: 2;1;1 spawn_chances: 20;10;5
Sat Jan 26 20:42:28 2008> ARTIFACT_CHEST (ms_snow): Shuriken chose a an Ice Blade
Sat Jan 26 20:42:36 2008> ARTIFACT_CHEST (ms_snow): Sabre chose a an Ice Wall Scroll
Sun Jan 27 07:27:57 2008> ARTIFACT_CHEST (ms_wicardoven): full_inventory: some Salamander Armor;a Summon Fangooth Scroll;a Green Rune Blade; req_players: 1;1;2; spawn_chances: 5;5;2;
Sun Jan 27 07:27:57 2008> ARTIFACT_CHEST (ms_wicardoven): final_inventory: a Summon Fangooth Scroll req_players: 1 spawn_chances: 5
Sun Jan 27 07:28:10 2008> ARTIFACT_CHEST (ms_wicardoven): J-M v2.5.5 of Urdual chose a a Summon Fangooth Scroll
Sun Jan 27 07:42:24 2008> ARTIFACT_CHEST (ms_wicardoven): full_inventory: Fire Lizard Skins;a Volcano Scroll;a Scroll of Summon Undead Guardian;Pheonix Armor; req_players: 1;1;1;2; spawn_chances: 10;8;4;2;
Sun Jan 27 07:42:24 2008> ARTIFACT_CHEST (ms_wicardoven): final_inventory: Fire Lizard Skins req_players: 1 spawn_chances: 10
Sun Jan 27 07:42:39 2008> ARTIFACT_CHEST (ms_wicardoven): J-M v2.5.5 of Urdual chose a Fire Lizard Skins
Sun Jan 27 08:53:39 2008> ARTIFACT_CHEST (ms_wicardoven): full_inventory: some Salamander Armor;a Summon Fangooth Scroll;a Green Rune Blade; req_players: 1;1;2; spawn_chances: 5;5;2;
Sun Jan 27 08:53:39 2008> ARTIFACT_CHEST (ms_wicardoven): Removed: all items failed spawn chance rolls.
Sun Jan 27 15:06:27 2008> ARTIFACT_CHEST (ms_wicardoven): full_inventory: Fire Lizard Skins;a Volcano Scroll;a Scroll of Summon Undead Guardian;Pheonix Armor; req_players: 1;1;1;2; spawn_chances: 10;8;4;2;
Sun Jan 27 15:06:27 2008> ARTIFACT_CHEST (ms_wicardoven): final_inventory: Fire Lizard Skins;a Volcano Scroll req_players: 1;1 spawn_chances: 10;8
Sun Jan 27 15:06:40 2008> ARTIFACT_CHEST (ms_wicardoven): Shuriken chose a Fire Lizard Skins
Sun Jan 27 15:06:46 2008> ARTIFACT_CHEST (ms_wicardoven): Reckless-Fire chose a a Volcano Scroll
Sun Jan 27 15:13:04 2008> ARTIFACT_CHEST (ms_wicardoven): full_inventory: some Salamander Armor;a Summon Fangooth Scroll;a Green Rune Blade; req_players: 1;1;2; spawn_chances: 5;5;2;
Sun Jan 27 15:13:04 2008> ARTIFACT_CHEST (ms_wicardoven): final_inventory: a Summon Fangooth Scroll req_players: 1 spawn_chances: 5
Sun Jan 27 15:13:10 2008> ARTIFACT_CHEST (ms_wicardoven): Thraxis chose a a Summon Fangooth Scroll
Sun Jan 27 15:30:37 2008> ARTIFACT_CHEST (ms_wicardoven): full_inventory: some Salamander Armor;a Summon Fangooth Scroll;a Green Rune Blade; req_players: 1;1;2; spawn_chances: 5;5;2;
Sun Jan 27 15:30:38 2008> ARTIFACT_CHEST (ms_wicardoven): final_inventory: some Salamander Armor req_players: 1 spawn_chances: 5
Sun Jan 27 15:30:42 2008> ARTIFACT_CHEST (ms_wicardoven): Humansteak chose a some Salamander Armor
Sun Jan 27 15:49:11 2008> ARTIFACT_CHEST (ms_wicardoven): full_inventory: Fire Lizard Skins;a Volcano Scroll;a Scroll of Summon Undead Guardian;Pheonix Armor; req_players: 1;1;1;2; spawn_chances: 10;8;4;2;
Sun Jan 27 15:49:11 2008> ARTIFACT_CHEST (ms_wicardoven): final_inventory: Fire Lizard Skins;a Scroll of Summon Undead Guardian req_players: 1;1 spawn_chances: 10;4
Sun Jan 27 15:49:16 2008> ARTIFACT_CHEST (ms_wicardoven): Humansteak chose a a Scroll of Summon Undead Guardian
Sun Jan 27 15:49:21 2008> ARTIFACT_CHEST (ms_wicardoven): Reckless-Fire chose a Fire Lizard Skins
Sun Jan 27 15:57:00 2008> ARTIFACT_CHEST (ms_wicardoven): full_inventory: some Salamander Armor;a Summon Fangooth Scroll;a Green Rune Blade; req_players: 1;1;2; spawn_chances: 5;5;2;
Sun Jan 27 15:57:00 2008> ARTIFACT_CHEST (ms_wicardoven): Removed: all items failed spawn chance rolls.
FUCK YEAH.The Man In Black said:Wasn't aware we had that option (swearing filter) Thanks, Thoth!
Sabre said:S.H.I.T. crest
CrazyMonkeyDude said:Sabre said:S.H.I.T. crest
lplayers scriptvar PLR_TOTAL_DMG
Thothie said:It may simply be kyle did more damage than ya thought he did (maybe you were tossing magic at Maldora?), but of course, it may not...
J-M v2.5.5 said:I did at least 1500 damage to him, probably more
J-M v2.5.5 said:There is no chance in hell Kyle could have done more damage than I did; he was using Calrian's mace and I was using my dark sword.
Could be that they both casted it like only once, so I doubt that was a factor here. The fight didn't last very long either.Shurik3n said:Did Kyle and Brad just periodically ice shield each other over and over? :roll: