Raised This Month: $ Target: $400
 0% 

References for custom ranking system?


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
SLC
Junior Member
Join Date: Apr 2013
Old 05-20-2013 , 18:46   References for custom ranking system?
Reply With Quote #1

Hi, I'm trying to build a custom ranking system similar to HLStatsX:CE but with a more detailed kill report and also the player will have the ability to purchase various items, equipments, traps, weapons, powers etc. in an online market with the money received with each kill and will also be able to upgrade various skills with the experienced points received with each kill however I'm new to writing with Pawn and It's the only thing that keeps me to start working on the remote daemon and the web interface

What do I need:
I need references to tutorials or snippets related to monitoring various events such as bullet fired, bullet hit etc.
I need references to tutorials or snippets related to extracting various information when a player is killed or kills someone, information such as position, weapon, distance players in range, etc.
Basically anything that could help me build a good kill tracking system

The code bellow is for the plugin which monitors the player kills and only contains a few indexes used to send information to the daemon and that daemon must recognize those indexes and process the data accordingly

PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <csx>
#include <cstrike>
#include <fakemeta>

#define PLUGIN "SLC Killmon"
#define VERSION "1.0.0"
#define AUTHOR "SLC"

// KILL INFO INDEXES FOR KILLER AND VICTIM
#define KILL_INFO_VICTIM 0 // Victim ID (Numerical ID of the victim)
#define KILL_INFO_KILLER 1 // Killer ID (Numerical ID of the killer)
#define KILL_INFO_POSITION 2 // Killer and Victim Position (Numerical index of player position)
#define KILL_INFO_COORDINATES 3 // Killer and Victim Coordinates (Numerical value containing the player coordiantes)
#define KILL_INFO_SHOTS 4 // Killer and Victim Shots (Array with each weapon and bullet trajectory)
#define KILL_INFO_HITS 5 // Killer and Victim Hits (Array with each weapon, bullet and body part touched by bullet also money and points received)
#define KILL_INFO_MONEY 6 // Killer and Victim Money (Numerical value containing the total ammount of money received at kill time)
#define KILL_INFO_POINTS 7 // Killer and Victim Points (Numerical value containing the total ammount of points received at kill time)
#define KILL_INFO_TEAM 8 // Killer and Victim Team (Numerical index of the current player team)
#define KILL_INFO_TEAMKILL 9 // Killer Team Kill (Is this a team kill)
#define KILL_INFO_HP 10 // Killer and Victim HP (Numerical value of health amount)
#define KILL_INFO_ARMOR 11 // Killer and Victim Armor (Numerical value of armor amount)
#define KILL_INFO_WEAPON 12 // Killer and Victim Weapon (Numerical value of used weapon, item or trap at kill time)
#define KILL_INFO_CLIP 13 // Killer and Victim Clip (Numerical value of bullets inside weapon at kill time)
#define KILL_INFO_AMMO 14 // Killer and Victim Ammo (Numerical value of ammo for current weapon at kill time )
#define KILL_INFO_DISTANCE 15 // Killer and Victim Distance (Array containing the distance for each bullet that hit the target)
#define KILL_INFO_ANGLE 16 // Killer and Victim Angle (Numerical value containing the angle from which the killer made the kill shot)
#define KILL_INFO_COMRADS 17 // Killer and Victim Comrads (Array containing the alive players in the killer or victim team)
#define KILL_INFO_HELPED 18 // Killer and Victim Helped (Array containing the percentage of players which helped the killer)
#define KILL_INFO_WINGMAN 19 // Killer and Victim Wingman (Array containing the players near the killer or victim)
#define KILL_INFO_AMBUSH 20 // Killer and Victim Ambush (Numerical value specifying how much the victim was outnumbered)
#define KILL_INFO_GRENADES 21 // Killer and Victim Grenades (Numerical value containing the ammount of grenades available to killer or victim)
#define KILL_INFO_BLOWNUP 22 // Killer and Victim Blown Up (Array containing the health lost to grenade blasts)
#define KILL_INFO_FLASH 23 // Killer and Victim Flash (Numerical value containing the ammount of flash grenades available to killer or victim)
#define KILL_INFO_DIZZY 24 // Killer and Victim Dizzy (Was the victim or killer obstructed by a flash grenade at kill time)
#define KILL_INFO_SMOKE 25 // Killer and Victim Smoke (Numerical value containing the ammount of smoke grenades available to killer or victim)
#define KILL_INFO_BLIND 26 // Killer and Victim Blind (Was the victim or killer obstructed by a smoke grenade at kill time)
#define KILL_INFO_EQUIPMENT 28 // Killer and Victim Equimpent (Array containing the available equipment for killer or victim)
#define KILL_INFO_POWERS 29 // Killer and Victim Powers (Array containing the available powers for killer and victim)
#define KILL_INFO_AFFECT 30 // Killer and Victim Affect (Array containing the powers that may affected the performance for killer and victim)
#define KILL_INFO_TRAPS 31 // Killer and Victim Traps (Array containing the available traps for killer and victim)
#define KILL_INFO_TRAPP 32 // Killer and Victim Trapp (Array containing the traps that damaged the killer or vivtim)
#define KILL_INFO_ITEMS 33 // Killer and Victim Items (Array containing the available items for killer and victim)
#define KILL_INFO_WEAPONS 34 // Killer and Victim Weapons (Array containing the available weapons for killer and victim)
#define KILL_INFO_PUNISH 35 // Killer and Victim Punish (Numerical value specifying what punishment where applied to killer or vicim)
#define KILL_INFO_LATENCY 36 // Killer and Victim Latency (Numerical value containing the player latency at the kill time)

// KILLER POSITION FROM THE VICTIM
#define KILLER_POSITION_NORMAL_FTF 0 // Normal Face To Face
#define KILLER_POSITION_NORMAL_FTB 1 // Normal Face To Back
#define KILLER_POSITION_NORMAL_FTS 2 // Normal Face To Side
#define KILLER_POSITION_NORMAL_DUCK_FTF 3 // Normal Duck Face To Face
#define KILLER_POSITION_NORMAL_DUCK_FTB 4 // Normal Duck Face To Back
#define KILLER_POSITION_NORMAL_DUCK_FTS 5 // Normal Duck Face To Side
#define KILLER_POSITION_NORMAL_JUMP_FTF 6 // Normal Jump Face To Face
#define KILLER_POSITION_NORMAL_JUMP_FTB 7 // Normal Jump Face To Back
#define KILLER_POSITION_NORMAL_JUMP_FTS 8 // Normal Jump Face To Side
#define KILLER_POSITION_ABOVE_FTF 9 // Above Face To Face
#define KILLER_POSITION_ABOVE_FTB 10 // Above Face To Back
#define KILLER_POSITION_ABOVE_FTS 11 // Above Face To Side
#define KILLER_POSITION_ABOVE_DUCK_FTF 12 // Above Duck Face To Face
#define KILLER_POSITION_ABOVE_DUCK_FTB 13 // Above Duck Face To Back
#define KILLER_POSITION_ABOVE_DUCK_FTS 14 // Above Duck Face To Side
#define KILLER_POSITION_ABOVE_JUMP_FTF 15 // Above Jump Face To Face
#define KILLER_POSITION_ABOVE_JUMP_FTB 16 // Above Jump Face To Back
#define KILLER_POSITION_ABOVE_JUMP_FTS 17 // Above Jump Face To Side
#define KILLER_POSITION_BELOW_FTF 18 // Below Face To Face
#define KILLER_POSITION_BELOW_FTB 19 // Below Face To Back
#define KILLER_POSITION_BELOW_FTS 20 // Below Face To Side
#define KILLER_POSITION_BELOW_DUCK_FTF 21 // Below Duck Face To Face
#define KILLER_POSITION_BELOW_DUCK_FTB 22 // Below Duck Face To Back
#define KILLER_POSITION_BELOW_DUCK_FTS 23 // Below Duck Face To Side
#define KILLER_POSITION_BELOW_JUMP_FTF 24 // Below Jump Face To Face
#define KILLER_POSITION_BELOW_JUMP_FTB 25 // Below Jump Face To Back
#define KILLER_POSITION_BELOW_JUMP_FTS 26 // Below Jump Face To Side
#define KILLER_POSITION_AIR_FTF 27 // Air Face To Face
#define KILLER_POSITION_AIR_FTB 28 // Air Face To Back
#define KILLER_POSITION_AIR_FTS 29 // Air Face To Side
#define KILLER_POSITION_WATER_FTF 30 // Water Face To Face
#define KILLER_POSITION_WATER_FTB 31 // Water Face To Back
#define KILLER_POSITION_WATER_FTS 32 // Water Face To Side
#define KILLER_POSITION_CAMPING_FTF 33 // Camping Face To Face
#define KILLER_POSITION_CAMPING_FTB 34 // Camping Face To Back
#define KILLER_POSITION_CAMPING_FTS 35 // Camping Face To Side

// TEAM INDEXES
#define TEAM_UNASSIGNED 0 // Unasigned Teamn Index
#define TEAM_TERRORIST 1 // Terrorist Team Index
#define TEAM_CT 2 // CT Team Index
#define TEAM_SPECTATOR 3 // Spectator Team Index

// BODY PART INDEXES
#define BODY_PART_WHOLEBODY 0 // Body Part Whole Body
#define BODY_PART_HEAD 1 // Body Part Head
#define BODY_PART_CHEST 2 // Body Part Chest
#define BODY_PART_STOMACH 3 // Body Part Stomach
#define BODY_PART_LEFTARM 4 // Body Part Left Arm
#define BODY_PART_RIGHTARM 5 // Body Part Right Arm
#define BODY_PART_LEFTLEG 6 // Body Part Left Leg
#define BODY_PART_RIGHTLEG 7 // Body Part Right Leg
#define BODY_PART_HEART 8 // Body Part Heart

// WEAPON ID's
#define WEAPON_P228 1 // Weapon ID p228
#define WEAPON_SCOUT 3 // Weapon ID scout
#define WEAPON_HEGRENADE 4 // Weapon ID hegren
#define WEAPON_XM1014 5 // Weapon ID
#define WEAPON_C4 6 // Weapon ID
#define WEAPON_MAC10 7 // Weapon ID
#define WEAPON_AUG 8 // Weapon ID
#define WEAPON_SMOKEGRENADE 9 // Weapon ID
#define WEAPON_ELITE 10 // Weapon ID
#define WEAPON_FIVESEVEN 11 // Weapon ID
#define WEAPON_UMP45 12 // Weapon ID
#define WEAPON_SG550 13 // Weapon ID
#define WEAPON_GALIL 14 // Weapon ID
#define WEAPON_FAMAS 15 // Weapon ID
#define WEAPON_USP 16 // Weapon ID
#define WEAPON_GLOCK18 17 // Weapon ID
#define WEAPON_AWP 18 // Weapon ID
#define WEAPON_MP5NAVY 19 // Weapon ID
#define WEAPON_M249 20 // Weapon ID
#define WEAPON_M3 21 // Weapon ID
#define WEAPON_M4A1 22 // Weapon ID
#define WEAPON_TMP 23 // Weapon ID
#define WEAPON_G3SG1 24 // Weapon ID
#define WEAPON_FLASHBANG 25 // Weapon ID
#define WEAPON_DEAGLE 26 // Weapon ID
#define WEAPON_SG552 27 // Weapon ID
#define WEAPON_AK47 28 // Weapon ID
#define WEAPON_KNIFE 29 // Weapon ID
#define WEAPON_P90 30 // Weapon ID
#define WEAPON_VEST 31 // Weapon ID
#define WEAPON_VESTHELM 32 // Weapon ID

// EQUIPMENT ID's
#define EQUIPMENT_INVISIBILITY_SUIT 0 // Equipment ID ...
#define EQUIPMENT_STRENGTH_SUIT 1 // Equipment ID ...
#define EQUIPMENT_SPEED_BOOTS 2 // Equipment ID ...
// many more...

// TRAPS ID's
#define TRAP_LASER_BOMB 0 // Trapp ID ...
#define TRAP_PROXIMITY_BOMB 1 // Trapp ID ...
// many more...

// ITEMS ID's
#define ITEM_HEALTH_PACK 0 // Item ID ...
#define ITEM_ADRENALINE_SHOT 1 // Item ID ...
// many more...

// POWERS ID's
#define POWER_EAGLE_EYE 0 // Power ID ...
#define POWER_SIXTH_SENSE 1 // Power ID ...
#define POWER_POISONED_BULLETS 2 // Power ID ...
// many more...

// SKILLS ID's
#define SKILL_RECOIL_MASTER 0 // Skill ID ...
// many more...

public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
// Add your code here...

As you can see I need some references to start adding some code and build a small prototype and then extend from there also many of the indexes and other information's will be removed or adjusted if necessary after a prototype is created I just hope I'll be able to build one
Not much information will be stored on the plugin and only the logic to build a comprehensive log and send it to the remote daemon is needed that's why there are so many defines because they mus correlate with the ones on the daemon when analyzing the sent data


This is only the plugin which handles the kills and reports them to the daemon
There will be other plugins which will have to do the following:
Handle Player Authentication (To protect your server against cheaters you can make your server available only to registered users also make the registration available only through invitation)
Handle Player Vault (Each player will have a personal vault containing all bought items, traps, weapons, earned money etc.)
Administration Plugin (Each server can have administrators with different levels of access to commands and an integrated banning system)

In other words this will be some kind of new mod for Counter-Strike with a personalized ranking system and an advanced web application which can help administrators manage everything on their servers from anywhere

The web application will feature:
Player Profile: You can have one global user account and every kill, event, action you make in the game will be assigned to that profile no mater the server you play in
Social Sharing: You can share your most spectacular kills on social sharing sites or to your buddies since the web application will be more like a social sharing but for counter-strike
Live Stats: People can view your kills, actions, events, achievements etc. live on your profile page or server page
Many more features will be added when I have a working prototype

However I'm stuck and I cannot start building the rest of the application until I have a working plugin that thoroughly monitors each player kill and reports it it the remote daemon

If anyone is interested in helping me to start building this kind of project please send a PM

I have experience on building web applications in PHP, HTML, CSS etc.

I'm currently learning Python and Pawn to build the Daemon and the AMX Plugins however pawn is just too much for me right now and I'm afraid to make any mistakes when I start coding because the I might have to re-write the whole plugins again later plus I'm the kind of Performance FREAK when it comes to programming

Web Application will be build using:
CodeIgniter Framework for the Server-Side processing
Bootstarp Framework for the Client-Side Desktop UI
jQuery Framework for the Client-Side JavaScript
jQuery-UI Framework Core for the Client-Side Desktop UI manipulation
jQuery-Mobile Framework for the Client-Side Mobile UI
Others may be used depending on the requirements ...

Remote Server Controller and Daemon will be using the latest Python 3

Any help, reference, advice, snippet etc. related to this kind of project is kindly appreciated I personally thank you for your lost time reading this post no matter you were interested or not

FAQ for curious users:
Q - Why don't you start searching by your self you lazy creep and come here to bother us ?
A - While I might seem lazy for not searching by my self I'm sure you as a newbie saw how hard is to find specific help for AMX on the required subjects

Q - Why do you even want to build this kind of project when you know you can't program in pawn?
A - I'm not sure however It's not like I'm not contributing with nothing and expect others to do everything I only need a "kick" to start from there and begin extending while learning

Q - Why do you need us to loose our time giving you specific references, snippets etc?
A - A good project is much more easy to maintain if it has a good start and I as a newbie I might not offer a solid base to this project so that's why I'm asking the opinion of people with experience

Q - What makes this project different from the others?
A - As you can see this ranking system aims to collect every possible data about the user kills and reward the user accordingly also my aim is to make as more kill styles a possible to make players try the most spectacular kills and not just put a bullet in the enemy and rank him as a good player
__________________

Last edited by SLC; 05-20-2013 at 20:48.
SLC is offline
 



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 16:28.


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