Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

RDP Point System

Статус пользователя soneekk
сообщение 8.11.2014, 19:07
Сообщение #1


Стаж: 13 лет

Сообщений: 335
Благодарностей: 13
Полезность: < 0

Здравствуйте, вот нашел плагин на forums.alliedmods RDP Point System и нужна помощь чтоб чуть чуть добавить/переделать, вообщем хочу добавить native, аналог cs_get_user_money/cs_set_user_money например вот так cs_get_user_rdp cs_set_user_rdp, вообщем скриптеры поймут думаю, буду благодарен если кто то поможет.

Код:
/*
Plugin by R0DEmental-
RDP v1.0
(RD = R0DEmental- P = Points)
===========================================
Changelog:
v1.0 - Main release (14. July 2014 14:00)
===========================================
*/
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < csx >
#include < hamsandwich >
#include < nvault >
#include < fun >
#include < engine >

#define KillCount get_pcvar_num(g_KillCount)
#define SpeedCount get_pcvar_num(g_SpeedCount)
#define GravityCount get_pcvar_num(g_GrvtyCount)
#define HpApCount get_pcvar_num(g_HpapCount)
#define InvisibleCount get_pcvar_num(g_InvsblpCount)
#define InvisibleGlowCount get_pcvar_num(g_InvsblpglwCount)

#define PADD ADMIN_LEVEL_A
#define IsPlayer(%1) ( 1 <= %1 <= g_iMaxPlayers )
enum (+= 100)
{
TASK_SHOWHUD
}
#define ID_SHOWHUD (taskid - TASK_SHOWHUD)

new const PLUGIN[] = "RDP Point System"
new const AUTHOR[] = "R0DEmental-"
new const VERSION[] = "1.0b"

new invsblpglw[33], invsblp[33], speed[33], grvty[33], hpap[33]
new g_iMaxPlayers
new UseSpeed
new Float:fast_speed = 550.0
new Float:normal_speed = 250.0
const Float:HUD_SPECT_X = 0.8
const Float:HUD_SPECT_Y = 0.8
const Float:HUD_SPECT_X2 = 0.6
const Float:HUD_SPECT_Y2 = 0.8
new g_iPunkti[33]
new gVault
new g_MsgSync2
new g_HpapCount
new g_AdEnable
new g_SpeedCount
new g_GrvtyCount
new g_InvsblpCount
new g_InvsblpglwCount
new g_KillCount
new gSteamID[ 32 ]
new vKey[ 64 ]
new vData[ 64 ]

new padd = 10

new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_0


public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_menu( "Menu 1", keys, "PunktiMenu_handler" )
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
RegisterHam(Ham_Spawn, "player", "FwdHamSpawn_Post", 1)
RegisterHam( Ham_Item_PreFrame, "player", "FwdPreFrame_Post", 1)
register_clcmd("say /rdp", "showPoints")
set_task(60.0, "help",1, _, _, "b")
new configsDir[64]
get_configsdir(configsDir, 63)
server_cmd("exec %s/rdps.cfg", configsDir)
register_clcmd("say_team /rdp", "showPoints")
register_clcmd("say /rdpshop", "PunktiMenu")
register_clcmd("say_team /rdpshop", "PunktiMenu")
register_clcmd("say /rdpgive", "padd_menu")
register_clcmd("say_team /rdpgive", "padd_menu")
register_clcmd("say /rdphelp", "help_motd")
register_clcmd("say_team /rdphelp", "help_motd")
g_HpapCount = register_cvar("rdp_hpap_count", "20")
g_SpeedCount = register_cvar("rdp_speed_count", "20")
g_GrvtyCount = register_cvar("rdp_gravity_count", "15")
g_InvsblpCount = register_cvar("rdp_invisible_count", "30")
g_InvsblpglwCount = register_cvar("rdp_invisibleglow_count", "25")
g_KillCount = register_cvar("rdp_kill_count", "1")
g_AdEnable = register_cvar("rdp_ad_hud", "1")
g_MsgSync2 = CreateHudSyncObj()
g_iMaxPlayers = get_maxplayers( )

if(get_pcvar_num(g_AdEnable) == 1)
{
set_task(60.0, "showPointshud",1, _, _, "b")
}
register_concmd("amx_rdpadd", "padd_menu", PADD, "Open Admin Give RDPs Menu" )

}
public FwdPreFrame_Post(id)
{
if(!UseSpeed)
{
return PLUGIN_HANDLED
}

else if(UseSpeed)
{
set_user_maxspeed(id, fast_speed)
}
return PLUGIN_HANDLED
}
public FwdHamSpawn_Post(id)
{
grvty[id] = false
invsblp[id] = false
invsblpglw[id] = false
speed[id] = false
hpap[id] = false
set_user_rendering( id, _, 0, 0, 0, _, 0 )
}
public event_round_start(id)
{
UseSpeed = false
set_user_maxspeed(id, normal_speed)
}
public help(id)
{
client_printc(id,"!g[%s] !nWrite in chat !g/rdphelp!n, to show you more commands to use.",PLUGIN)

}
public help_motd(id)
{
show_motd(id, "rdphelp.txt")
}
stock client_printc(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^x04") // Green Color
replace_all(msg, 190, "!n", "^x01") // Default Color
replace_all(msg, 190, "!t", "^x03") // Team Color

if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i])
write_string(msg)
message_end()
}
}
}
}
public client_death( iKiller , iVictim )
{
if( !IsPlayer( iKiller ) || !IsPlayer( iVictim ) )
{
return PLUGIN_CONTINUE
}
if( iKiller == iVictim )
{
g_iPunkti[ iKiller ] -= 0

return PLUGIN_CONTINUE
}
if(cs_get_user_team( iKiller ) == CS_TEAM_T)
{
g_iPunkti[ iKiller ] += KillCount

return PLUGIN_CONTINUE
}
else if(cs_get_user_team( iKiller ) == CS_TEAM_CT)
{
g_iPunkti[ iKiller ] += KillCount

return PLUGIN_CONTINUE
}


return PLUGIN_HANDLED
}
public showPointshud(id)
{
set_hudmessage(255, 0, 0, -1.0, 0.20, 2, 0.2, 4.0)
show_hudmessage(id,"Say /rdpshop, to open RDP shop menu.^nYour RDPs: (%d$)",g_iPunkti[id])
}
public showPoints(id)
{
client_printc(id,"!g[%s] !nYour RDPs: !t%d$!n.",PLUGIN, g_iPunkti[id])
}
public PunktiMenu(id)
{
static menu[650], iLen
iLen = 0
if(is_user_alive(id))
{
iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\yRDP Shop Menu:^n^n\wYour RDPs: \y(\r%d$\y)\w^n^n", g_iPunkti[id])
if(g_iPunkti[id] > HpApCount -1 && !hpap[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \w200 HP + 200 AP \y(\r%d$\y)\w^n",HpApCount)
keys |= MENU_KEY_1
}
else if(hpap[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \d200 HP + 200 AP \y(\r%d$\y) \d(You already have this item)\w^n",HpApCount)
keys &= ~MENU_KEY_2
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \d200 HP + 200 AP \y(\r20$\y) \d(You don't have enought points)\w^n",HpApCount)
keys &= ~MENU_KEY_1
}
if(g_iPunkti[id] > SpeedCount -1 && !speed[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \wSpeed \y(\r%d$\y)\w^n",SpeedCount)
keys |= MENU_KEY_2
}
else if(speed[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \dSpeed \y(\r%d$\y) \d(You already have this item)\w^n",SpeedCount)
keys &= ~MENU_KEY_2
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \dSpeed \y(\r%d$\y) \d(You don't have enought points)\w^n",SpeedCount)
keys &= ~MENU_KEY_2
}
if(g_iPunkti[id] > GravityCount -1 && !grvty[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r3. \wGravity \y(\r%d$\y)\w^n",GravityCount)
keys |= MENU_KEY_3
}
else if(grvty[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r3. \dGravity \y(\r%d$\y) \d(You already have this item)\w^n",GravityCount)
keys &= ~MENU_KEY_3
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r3. \dGravity \y(\r%d$\y) \d(You don't have enought points)\w^n",GravityCount)
keys &= ~MENU_KEY_3
}
if(g_iPunkti[id] > InvisibleCount -1 && !invsblp[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \wInvisibility \y(\r%d$\y)\w^n",InvisibleCount)
keys |= MENU_KEY_4
}
else if(invsblp[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \dInvisibility \y(\r%d$\y) \d(You already have this item)\w^n",InvisibleCount)
keys &= ~MENU_KEY_4
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \dInvisibility \y(\r%d$\y) \d(You don't have enought points)\w^n",InvisibleCount)
keys &= ~MENU_KEY_4
}
if(g_iPunkti[id] > InvisibleGlowCount -1 && !invsblpglw[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \wInvisibility with orange glow \y(\r%d$\y)\w^n",InvisibleGlowCount)
keys |= MENU_KEY_5
}
else if(invsblpglw[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \dInvisibility with orange glow \y(\r%d$\y) \d(You already have this item)\w^n",InvisibleGlowCount)
keys &= ~MENU_KEY_5
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \dInvisibility with orange glow \y(\r%d$\y) \d(You don't have enought points)\w^n",InvisibleGlowCount)
keys &= ~MENU_KEY_5
}
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\r0. \wExit^n")
keys |= MENU_KEY_0
show_menu(id, keys, menu, -1, "Menu 1")
}
else
{
client_printc(id, "!g[%s] !nDead player can't use RDP shop.", PLUGIN)
}

}
public PunktiMenu_handler(id, key)
{
switch(key)
{
case 0:
{
if(g_iPunkti[id] > HpApCount -1)
{
hpap[id] = true
set_user_health(id, 200)
set_user_armor(id, 200)
g_iPunkti[id] -= HpApCount
client_printc(id, "!g[%s] !nYou are bought !g200 HP + 200 AP!n. Now you have !t%d$ !nRDPs.", PLUGIN, g_iPunkti[id])
}
}
case 1:
{
if(g_iPunkti[id] > SpeedCount -1)
{
speed[id] = true
set_user_maxspeed(id, fast_speed)
g_iPunkti[id] -= SpeedCount
client_printc(id, "!g[%s] !nYou are bought !gSpeed!n. Now you have !t%d$ !nRDPs.", PLUGIN, g_iPunkti[id])
}
}
case 2:
{
if(g_iPunkti[id] > GravityCount -1)
{
grvty[id] = true
set_user_gravity(id, 0.5)
g_iPunkti[id] -= GravityCount
client_printc(id, "!g[%s] !nYou are bought !gGravity!n. Now you have !t%d$ !nRDPs.", PLUGIN, g_iPunkti[id])
}
}
case 3:
{
if(g_iPunkti[id] > InvisibleCount -1)
{
invsblp[id] = true
set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderTransAlpha,30)
g_iPunkti[id] -= InvisibleCount
client_printc(id, "!g[%s] !nYou are bought !gInvisibility!n. Now you have !t%d$ !nRDPs.", PLUGIN, g_iPunkti[id])
}
}
case 4:
{
if(g_iPunkti[id] > InvisibleGlowCount -1)
{
invsblpglw[id] = true
set_user_rendering(id,kRenderFxGlowShell,255,100,0,kRenderTransAlpha,16)
g_iPunkti[id] -= InvisibleGlowCount
client_printc(id, "!g[%s] !nYou are bought !gInvisibility with orange glow!n. Now you have !t%d$ !nRDPs.", PLUGIN, g_iPunkti[id])
}
}
}
return PLUGIN_HANDLED
}
public ShowHUD(taskid)
{
static id
id = ID_SHOWHUD

set_hudmessage(255, 255, 255, HUD_SPECT_X, HUD_SPECT_Y, 0, 6.0, 1.1, 0.0, 0.0, -1)
ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "Your RDPs: %d$", g_iPunkti[id])
}
public padd_menu(id)
{
if(get_user_flags(id) & PADD){
new msg[222]
formatex(msg, charsmax(msg), "\yRDPs Admin Give Menu:")
new menu = menu_create(msg, "menu_handler");
new players[32], inum, tempid;
get_players(players, inum);
new nomer[10], name[32];

switch(padd)
{
case 10:
{
formatex(msg, charsmax(msg), "\d10^n")
menu_additem(menu, msg, "33", PADD)
}

case 100:
{
formatex(msg, charsmax(msg), "\d100^n")
menu_additem(menu, msg, "34", PADD)
}

case 1000:
{
formatex(msg, charsmax(msg), "\d1000^n")
menu_additem(menu, msg, "35", PADD)
}
}

for(new i; i<inum; i++)
{
tempid = players[i]
get_user_name(tempid, name, 31)
num_to_str(tempid, nomer, 9)

formatex(msg, charsmax(msg), "%s \d(%d)", name, g_iPunkti[tempid])
menu_additem(menu, msg, nomer, PADD)
}

formatex(msg, charsmax(msg), "\yNext")
menu_setprop(menu, MPROP_NEXTNAME, msg)

formatex(msg, charsmax(msg), "\yBack")
menu_setprop(menu, MPROP_BACKNAME, msg)

formatex(msg, charsmax(msg), "\d10^n^n^n\d%s %s", PLUGIN, VERSION)
menu_setprop(menu, MPROP_EXITNAME, msg)

menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu, 0)
return PLUGIN_HANDLED
}
else
{
client_printc(id, "!g[%s] !nYou don't have permission to this command.", PLUGIN)
}
return PLUGIN_HANDLED
}

public menu_handler(id, menu, item)
{
if ( item == MENU_EXIT )
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new data[6], iName[64]
new access, callback

menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)

new tempid = str_to_num(data)

switch(tempid)
{
case 33:
{
padd = 100
menu_destroy(menu)
padd_menu(id)
}

case 34:
{
padd = 1000
menu_destroy(menu)
padd_menu(id)
}

case 35:
{
padd = 10
menu_destroy(menu)
padd_menu(id)
}

case 36:
{
menu_destroy(menu)
padd_menu(id)
}

default:
{
if(is_user_connected(tempid))
{
g_iPunkti[tempid] += padd
client_printc(tempid, "!g[%s]!n You have been sent !t%d !npoints", PLUGIN, padd)
}
else
{
menu_destroy(menu)
padd_menu(id)
}
}
}
return PLUGIN_HANDLED;
}
public client_putinserver(id)
{
load(id)
set_task(0.5, "ShowHUD", id+TASK_SHOWHUD, _, _, "b")
}
public client_disconnect(id)
{
save(id)
}
public save(id)
{
gVault = nvault_open( "RDP_Save_Points" )

if( gVault == INVALID_HANDLE )
{
set_fail_state( "nValut ERROR: =-> Invalid-Handle" )
}

get_user_authid( id, gSteamID, charsmax( gSteamID ) )

formatex( vKey, charsmax( vKey ), "%sPoints", gSteamID )
formatex( vData, charsmax( vData ), "%d", g_iPunkti[id] )
nvault_set( gVault, vKey, vData )
nvault_close( gVault )
}

public load(id)
{
gVault = nvault_open( "RDP_Save_Points" )

if( gVault == INVALID_HANDLE )
{
set_fail_state( "nValut ERROR: =-> Invalid-Handle" )
}

get_user_authid( id, gSteamID, charsmax( gSteamID ) )

formatex( vKey, charsmax( vKey ), "%sPoints", gSteamID )
g_iPunkti[id] = nvault_get( gVault, vKey )
nvault_close( gVault )
}


Отредактировал: soneekk, - 8.11.2014, 19:08
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: