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

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

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

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

Сохранение ammo.....

Статус пользователя Senjkee
сообщение 17.4.2011, 16:43
Сообщение #1


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

qq c-s.net.ua :)

Как сохранение с помощью модуля nvault делать ???

Исходник


#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>

new bonus[33]
new bonus_head, bonus_other

#define ID_SHOWHUD (taskid - TASK_SHOWHUD)
#define m_LastHitGroup 75
#define EXTRAOFFSET 5

enum (+= 100)
{
TASK_SHOWHUD
}

public plugin_init()
{
register_plugin("bonus Packs", "0.2", "bonus Packs")
RegisterHam(Ham_Killed, "player", "Player_Killed")
bonus_head = register_cvar("amx_bonus_bonus_in_head", "5")
bonus_other = register_cvar("amx_bonus_bonus", "1")
register_clcmd("say /bonus", "give_bonus")
}

public plugin_natives()
{
register_native("get_user_bonus", "native_get_user_bonus", 1)
register_native("set_user_bonus", "native_set_user_bonus", 1)
}

public Player_Killed(victim, attacker, mda)
{
if(is_user_connected(attacker))
{
if(get_pdata_int(victim, m_LastHitGroup, EXTRAOFFSET) == HIT_HEAD)
bonus[attacker] += get_pcvar_num(bonus_head)
else
bonus[attacker] += get_pcvar_num(bonus_other)
}
}

public client_putinserver(id)
{
if(!is_user_bot(id))
{
set_task(1.0, "ShowHUD", id+TASK_SHOWHUD, _, _, "b")
}
}

public client_disconnect(id)
{
remove_task(id+TASK_SHOWHUD)
}

public ShowHUD(taskid)
{
static red, green, blue

//id = ID_SHOWHUD
red = random_num(200, 255)
green = random_num(200, 255)
blue = 0

if(is_user_alive(ID_SHOWHUD))
{
set_hudmessage(red, green, blue, 0.02, 0.9, 0, 6.0, 1.1, 0.0, 0.0)
show_hudmessage(ID_SHOWHUD, "[Жизней: %d] [Брони: %d] [Бонусов: %d]", pev(ID_SHOWHUD, pev_health), pev(ID_SHOWHUD, pev_armorvalue), bonus[ID_SHOWHUD])
}
}

public give_bonus(id)
{
if(get_user_flags(id) & ADMIN_LEVEL_H)
bonus[id] += 50
}

public native_get_user_bonus(id)
{
return bonus[id]
}

public native_set_user_bonus(id, amount)
{
bonus[id] = amount
}



Примерно пытался разобраться с помощью другого исходника но там сама система начисления бонусов через **** сделана :)

Вот часть кода из другого исходника отвечающая за хранение ammo(бонусов) :

Воть :)


/* --| Saving player points */
stock save_client_points( index )
{
/* --| Open the vault file */
gVault = nvault_open( "DeathrunShop_SavedPoints" );

/* --| If vault return -1, lets stop this shit */
if( gVault == INVALID_HANDLE )
{
set_fail_state( "[mindtrek] nValut ERROR: =-> Invalid-Handle" );
}

/* --| Get the player steamid */
get_user_authid( index, gSteamID, charsmax( gSteamID ) );

/* --| Setting stuff on vault file, and close the file */
formatex( vKey, charsmax( vKey ), "%sPOINTS", gSteamID );
formatex( vData, charsmax( vData ), "%d", gKillerPoints[ index ] );
nvault_set( gVault, vKey, vData );
nvault_close( gVault );
}

/* --| Loading client points */
stock load_client_points( index )
{
/* --| Open the vault file */
gVault = nvault_open( "DeathrunShop_SavedPoints" );

/* --| If vault return -1, lets stop this shit */
if( gVault == INVALID_HANDLE )
{
set_fail_state( "[mindtrek] nValut ERROR: =-> Invalid-Handle" );
}

/* --| Get the player steamid */
get_user_authid( index, gSteamID, charsmax( gSteamID ) );

/* --| Get the player points, then, close the nvault vile */
formatex( vKey, charsmax( vKey ), "%sPOINTS", gSteamID );
gKillerPoints[ index ] = nvault_get( gVault, vKey );
nvault_close( gVault );
}



Отредактировал: Senjkee, - 17.4.2011, 16:47
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя ProxXx
сообщение 17.4.2011, 16:51
Сообщение #2


Стаж: 19 лет

Сообщений: 72
Благодарностей: 41
Полезность: 438

http://forums.alliedmods.net/showthread.php?t=66497
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 17.4.2011, 17:33
Сообщение #3


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

Цитата(ProxXx @ 17.4.2011, 17:51) *

Именно так как и хотелось + в готовом виде :) Благодарю ProxXx!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 17.4.2011, 19:19
Сообщение #4


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

String formatted incorrectly - parameter 5 <total 4>
Run time error 25 <plugin "bonus.amxx"> - Пилять требую debug!

Вот где косяк ?:)


#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <nvault>

new bonus[33]
new bonus_head, bonus_other, Savebonus, g_vault


#define ID_SHOWHUD (taskid - TASK_SHOWHUD)
#define m_LastHitGroup 75
#define EXTRAOFFSET 5

enum (+= 100)
{
TASK_SHOWHUD
}

public plugin_init()
{
register_plugin("Bonus", "1.0", "Bonus")
RegisterHam(Ham_Killed, "player", "Player_Killed")
Savebonus = register_cvar("Savebonus","1")
bonus_head = register_cvar("amx_bonus_bonus_in_head", "3")
bonus_other = register_cvar("amx_bonus_bonus", "1")
register_clcmd("say /bonus", "give_bonus")
}

public plugin_natives()
{
register_native("get_user_bonus", "native_get_user_bonus", 1)
register_native("set_user_bonus", "native_set_user_bonus", 1)
}

public Player_Killed(victim, attacker, mda)
{
if(is_user_connected(attacker))
{
if(get_pdata_int(victim, m_LastHitGroup, EXTRAOFFSET) == HIT_HEAD)
bonus[attacker] += get_pcvar_num(bonus_head)
else
bonus[attacker] += get_pcvar_num(bonus_other)
}
}

public client_putinserver(id)
{
if(!is_user_bot(id))
{
set_task(1.0, "ShowHUD", id+TASK_SHOWHUD, _, _, "b")
}
}

public ShowHUD(taskid)
{
static red, green, blue

//id = ID_SHOWHUD
red = random_num(200, 255)
green = random_num(200, 255)
blue = 0

if(is_user_alive(ID_SHOWHUD))
{
set_hudmessage(red, green, blue, 0.02, 0.9, 0, 6.0, 1.1, 0.0, 0.0)
show_hudmessage(ID_SHOWHUD, "[Жизней: %d] [Брони: %d] [Бонусов: %d]", pev(ID_SHOWHUD, pev_health), pev(ID_SHOWHUD, pev_armorvalue), bonus[ID_SHOWHUD])
}
}

public give_bonus(id)
{
if(get_user_flags(id) & ADMIN_LEVEL_H)
bonus[id] += 50
}

public native_get_user_bonus(id)
{
return bonus[id]
}

public native_set_user_bonus(id, amount)
{
bonus[id] = amount
}

public client_connect(id)
{
if(get_pcvar_num(Savebonus) == 1)
{

LoadData(id)
}
}

public client_disconnect(id)
{
if(get_pcvar_num(Savebonus) == 1)
remove_task(id+TASK_SHOWHUD)
{

SaveData(id)
}
bonus[id] = 0

}
public SaveData(id)
{
new AuthID[35]
get_user_authid(id,AuthID,34)

new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-Mod",AuthID)
format(vaultdata,255,"%i#%i#",bonus[id])
nvault_set(g_vault,vaultkey,vaultdata)
return PLUGIN_CONTINUE
}
public LoadData(id)
{
new AuthID[35]
get_user_authid(id,AuthID,34)

new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-Mod",AuthID)
format(vaultdata,255,"%i#%i#",bonus[id])
nvault_get(g_vault,vaultkey,vaultdata,255)

replace_all(vaultdata, 255, "#", " ")

new playerxp[32], playerlevel[32]

parse(vaultdata, playerxp, 31, playerlevel, 31)

bonus[id] = str_to_num(bonus)

return PLUGIN_CONTINUE
}



upxD

Отредактировал: Senjkee, - 17.4.2011, 20:21
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 17.4.2011, 20:22
Сообщение #5


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

Я тут :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ProxXx
сообщение 18.4.2011, 7:43
Сообщение #6


Стаж: 19 лет

Сообщений: 72
Благодарностей: 41
Полезность: 438

format(vaultdata,255,"%i#%i#",bonus[id])
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 18.4.2011, 17:43
Сообщение #7


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

Цитата(ProxXx @ 18.4.2011, 7:43) *
format(vaultdata,255,"%i#%i#",bonus[id])


Сделал


#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <nvault>

new bonus[33]
new bonus_head, bonus_other, Savebonus, g_vault


#define ID_SHOWHUD (taskid - TASK_SHOWHUD)
#define m_LastHitGroup 75
#define EXTRAOFFSET 5

enum (+= 100)
{
TASK_SHOWHUD
}

public plugin_init()
{
register_plugin("Bonus", "1.0", "Bonus")
RegisterHam(Ham_Killed, "player", "Player_Killed")
Savebonus = register_cvar("Savebonus","1")
bonus_head = register_cvar("amx_bonus_bonus_in_head", "3")
bonus_other = register_cvar("amx_bonus_bonus", "1")
register_clcmd("say /bonus", "give_bonus")
}

public plugin_natives()
{
register_native("get_user_bonus", "native_get_user_bonus", 1)
register_native("set_user_bonus", "native_set_user_bonus", 1)
}

public Player_Killed(victim, attacker, mda)
{
if(is_user_connected(attacker))
{
if(get_pdata_int(victim, m_LastHitGroup, EXTRAOFFSET) == HIT_HEAD)
bonus[attacker] += get_pcvar_num(bonus_head)
else
bonus[attacker] += get_pcvar_num(bonus_other)
}
}

public client_putinserver(id)
{
if(!is_user_bot(id))
{
set_task(1.0, "ShowHUD", id+TASK_SHOWHUD, _, _, "b")
}
}

public ShowHUD(taskid)
{
static red, green, blue

//id = ID_SHOWHUD
red = random_num(200, 255)
green = random_num(200, 255)
blue = 0

if(is_user_alive(ID_SHOWHUD))
{
set_hudmessage(red, green, blue, 0.02, 0.9, 0, 6.0, 1.1, 0.0, 0.0)
show_hudmessage(ID_SHOWHUD, "[Жизней: %d] [Брони: %d] [Бонусов: %d]", pev(ID_SHOWHUD, pev_health), pev(ID_SHOWHUD, pev_armorvalue), bonus[ID_SHOWHUD])
}
}

public give_bonus(id)
{
if(get_user_flags(id) & ADMIN_LEVEL_H)
bonus[id] += 50
}

public native_get_user_bonus(id)
{
return bonus[id]
}

public native_set_user_bonus(id, amount)
{
bonus[id] = amount
}

public client_connect(id)
{
if(get_pcvar_num(Savebonus) == 1)
{

LoadData(id)
}
}

public client_disconnect(id)
{
if(get_pcvar_num(Savebonus) == 1)
remove_task(id+TASK_SHOWHUD)
{

SaveData(id)
}
bonus[id] = 0

}
public SaveData(id)
{
new AuthID[35]
get_user_authid(id,AuthID,34)

new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-Mod",AuthID)
format(vaultdata,255,"%i#",bonus[id])
nvault_set(g_vault,vaultkey,vaultdata)
return PLUGIN_CONTINUE
}
public LoadData(id)
{
new AuthID[35]
get_user_authid(id,AuthID,34)

new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-Mod",AuthID)
format(vaultdata,255,"%i#",bonus[id])
nvault_get(g_vault,vaultkey,vaultdata,255)

replace_all(vaultdata, 255, "#", " ")

new bonus[32]

parse(vaultdata, bonus, 31)

bonus[id] = str_to_num(bonus)

return PLUGIN_CONTINUE
}



А как исправить посекундное появление "debug" ошибки ???
Обычно "debug" появляется из-за очерёдности выполнения функций ???
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 18.4.2011, 23:15
Сообщение #8


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

Нет не сохраняется всё равно и ошибка дебаг sad.gif что не так сделал ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ProxXx
сообщение 19.4.2011, 5:12
Сообщение #9


Стаж: 19 лет

Сообщений: 72
Благодарностей: 41
Полезность: 438

Логи дай, ты никуда не сохраняеш g_vault пустая, и ты сохраняеш по Стим Айди.

Отредактировал: ProxXx, - 19.4.2011, 5:13
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 19.4.2011, 14:14
Сообщение #10


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

Цитата(ProxXx @ 19.4.2011, 5:12) *
Логи дай, ты никуда не сохраняеш g_vault пустая, и ты сохраняеш по Стим Айди.


Ну я и хотел сохранения по steamid :)
Просит debug включить всё что в логах написано sad.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ProxXx
сообщение 19.4.2011, 16:37
Сообщение #11


Стаж: 19 лет

Сообщений: 72
Благодарностей: 41
Полезность: 438

Цитата(ProxXx @ 19.4.2011, 5:12) *
Логи дай, ты никуда не сохраняеш g_vault пустая, и ты сохраняеш по Стим Айди.


Отредактировал: ProxXx, - 19.4.2011, 16:37
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 19.4.2011, 17:45
Сообщение #12


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

Долго я пытался понять что значит "Ты никуда не сохраняешь"

Если не составит труда дай(те) пример!
И ещё раз "В логах кроме debug ошибки каждую секунду нет ничего" :D
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ProxXx
сообщение 19.4.2011, 18:03
Сообщение #13


Стаж: 19 лет

Сообщений: 72
Благодарностей: 41
Полезность: 438

Для чего создаються перменые ? Что бы чтото в них хранить. Ты же создаеш переменую g_vaul ничего в неё не вбиваеш она равна нулю, и ты пытаешся по этому индексу(0) ваулта чтото записать.

Код
g_vault = nvault_open("db")
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 19.4.2011, 19:13
Сообщение #14


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

Цитата(ProxXx @ 19.4.2011, 18:03) *
Для чего создаются переменные ? Что бы чтото в них хранить. Ты же создаешь переменную g_vault ничего в неё не вбиваешь она равна нулю, и ты пытаешься по этому индексу(0) vault что-то записать.

Код
g_vault = nvault_open("db")


Ааааа теперь понял в чем я накосячил :)

А вот теперь всё без ошибок грузится и создаётся нужный файл :)
Но при рестарте всё на 0 опять....

Вот :)


#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <nvault>

new bonus[33]
new bonus_head, bonus_other, Savebonus, g_vault


#define ID_SHOWHUD (taskid - TASK_SHOWHUD)
#define m_LastHitGroup 75
#define EXTRAOFFSET 5

enum (+= 100)
{
TASK_SHOWHUD
}

public plugin_init()
{
register_plugin("Bonus", "1.0", "Bonus")
RegisterHam(Ham_Killed, "player", "Player_Killed")
Savebonus = register_cvar("Savebonus","1")
bonus_head = register_cvar("amx_bonus_bonus_in_head", "3")
bonus_other = register_cvar("amx_bonus_bonus", "1")
register_clcmd("say /bonus", "give_bonus")
g_vault = nvault_open("bonus")
}

public plugin_natives()
{
register_native("get_user_bonus", "native_get_user_bonus", 1)
register_native("set_user_bonus", "native_set_user_bonus", 1)
}

public Player_Killed(victim, attacker, mda)
{
if(is_user_connected(attacker))
{
if(get_pdata_int(victim, m_LastHitGroup, EXTRAOFFSET) == HIT_HEAD)
bonus[attacker] += get_pcvar_num(bonus_head)
else
bonus[attacker] += get_pcvar_num(bonus_other)
}
}

public client_putinserver(id)
{
if(!is_user_bot(id))
{
set_task(1.0, "ShowHUD", id+TASK_SHOWHUD, _, _, "b")
}
}

public ShowHUD(taskid)
{
static red, green, blue

//id = ID_SHOWHUD
red = random_num(200, 255)
green = random_num(200, 255)
blue = 0

if(is_user_alive(ID_SHOWHUD))
{
set_hudmessage(red, green, blue, 0.02, 0.9, 0, 6.0, 1.1, 0.0, 0.0)
show_hudmessage(ID_SHOWHUD, "[Жизней: %d] [Брони: %d] [Бонусов: %d]", pev(ID_SHOWHUD, pev_health), pev(ID_SHOWHUD, pev_armorvalue), bonus[ID_SHOWHUD])
}
}

public give_bonus(id)
{
if(get_user_flags(id) & ADMIN_LEVEL_H)
bonus[id] += 50
}

public native_get_user_bonus(id)
{
return bonus[id]
}

public native_set_user_bonus(id, amount)
{
bonus[id] = amount
}

public client_connect(id)
{
if(get_pcvar_num(Savebonus) == 1)
{

LoadData(id)
}
}

public client_disconnect(id)
{
if(get_pcvar_num(Savebonus) == 1)
remove_task(id+TASK_SHOWHUD)
{

SaveData(id)
}
bonus[id] = 0

}
public SaveData(id)
{
new AuthID[35]
get_user_authid(id,AuthID,34)

new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-Mod",AuthID)
format(vaultdata,255,"%i#",bonus[id])
nvault_set(g_vault,vaultkey,vaultdata)
return PLUGIN_CONTINUE
}
public LoadData(id)
{
new AuthID[35]
get_user_authid(id,AuthID,34)

new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-Mod",AuthID)
format(vaultdata,255,"%i#",bonus[id])
nvault_get(g_vault,vaultkey,vaultdata,255)

replace_all(vaultdata, 255, "#", " ")

new bonus[32]

parse(vaultdata, bonus, 31)

bonus[id] = str_to_num(bonus)

return PLUGIN_CONTINUE
}

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ProxXx
сообщение 19.4.2011, 19:23
Сообщение #15


Стаж: 19 лет

Сообщений: 72
Благодарностей: 41
Полезность: 438

flower ты чтоли ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 19.4.2011, 19:38
Сообщение #16


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

Цитата(ProxXx @ 19.4.2011, 19:23) *
flower ты чтоли ?


А похож ?:) Нет но я понял о ком речь...
fl0wer - такой хреновый(ая) что Ты забыл к вопросу дописать то о чем я спрашивал ?!
fl0wer он там тоже что-то мутит! Но без того что нужно мне...


А по теме что не так сделал я? Как я понял оно сохраняется но после рестарта 0...sad.gif

Отредактировал: Senjkee, - 20.4.2011, 0:54
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 20.4.2011, 0:54
Сообщение #17


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

Я тут :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ProxXx
сообщение 20.4.2011, 9:41
Сообщение #18


Стаж: 19 лет

Сообщений: 72
Благодарностей: 41
Полезность: 438

Код
new bonus[32]

лишнее.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 20.4.2011, 12:44
Сообщение #19


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

Всё заработало :) Пасиб ProxXx xD

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