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

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

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

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

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Money Transfer ошибка с нативой cs_get_user_money

Статус пользователя celldweller
сообщение 23.6.2014, 10:41
Сообщение #1
Стаж: 11 лет

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

Привет всем! Помогите разобраться! Такая вот проблема, если в консоле написать transfer, то вылетают ошибки sad.gif
Ошибки в логах
Код
L 06/17/2014 - 15:52:31: [CSTRIKE] Player out of range (0)
L 06/17/2014 - 15:52:31: [AMXX] Displaying debug trace (plugin "MoneyTransfer.amxx")
L 06/17/2014 - 15:52:31: [AMXX] Run time error 10: native error (native "cs_get_user_money")
L 06/17/2014 - 15:52:31: [AMXX]  [0] MoneyTransfer.sma::transfer_money (line 106)

money_transfer.sma
Код:
#include <amxmodx>
#include <cstrike>
#include <colorchat>

#define PLUGIN "Money"
#define VERSION "1.0"
#define AUTHOR "x3"

new players_menu, players[32], num, i
new accessmenu, iName[64], callback

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /tm", "transfer_menu", ADMIN_ALL, "")
register_clcmd("say_team /tm", "transfer_menu", ADMIN_ALL, "")
register_clcmd("transfer", "transfer_money", ADMIN_ALL, "")
}

public transfer_menu(id)
{
get_players(players, num, "h")

if (num <= 1)
{
ColorChat(id, DontChange, "^4[^3Money^4] Кому ты хочешь передать ^3деньги? - ^4Нет игроков, дибил ^3:D")
return PLUGIN_HANDLED
}

new tempname[32], info[10], msg[222]

formatex(msg, charsmax(msg), "\r[\yMoneyTransfer\r] \wМеню игроков^n\dВаши деньги: \r$%d \y| \dСтр. \r", cs_get_user_money(id))
players_menu = menu_create(msg, "players_menu_handler")

for(i = 0; i < num; i++)
{
if(players[i] == id)
continue

get_user_name(players[i], tempname, 31)
num_to_str(players[i], info, 9)

formatex(msg, charsmax(msg), "%s \w(\r$%d\w)", tempname, cs_get_user_money(players[i]))
menu_additem(players_menu, msg, info, 0)
}

menu_setprop(players_menu, MPROP_BACKNAME, "Назад")
menu_setprop(players_menu, MPROP_NEXTNAME, "Дальше")
menu_setprop(players_menu, MPROP_EXITNAME, "Выход")

menu_display(id, players_menu, 0)
return PLUGIN_CONTINUE
}

public players_menu_handler(id, players_menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(players_menu)
return PLUGIN_HANDLED
}

new data[6]

menu_item_getinfo(players_menu, item, accessmenu, data, charsmax(data), iName, charsmax(iName), callback)

new player = str_to_num(data)

client_cmd(id, "messagemode ^"transfer %i^"", player)

return PLUGIN_CONTINUE
}

public transfer_money(id)
{
new param[6]
read_argv(2, param, charsmax(param))

for (new x; x < strlen(param); x++)
{
if(!isdigit(param[x]))
{
ColorChat(id, DontChange, "^4[^3Money^4] Вы должны ввести ^3число!")
transfer_menu(id)
return PLUGIN_HANDLED
}
}

new amount = str_to_num(param)

new money = cs_get_user_money(id)

if (money < amount)
{
ColorChat(id, DontChange, "^4[^3Money^4] У вас нет столько ^3денег!")
transfer_menu(id)
return PLUGIN_HANDLED
}

read_argv(1, param, charsmax(param))
new player = str_to_num(param)

new player_money = cs_get_user_money(player)

if( amount < 100 )
{
ColorChat(id, DontChange, "^4[^3Money^4] Минимальная сумма перевода - ^3$100")
transfer_menu(id)
return PLUGIN_HANDLED
}

cs_set_user_money(id, money - amount, 1)
cs_set_user_money(player, player_money + amount, 1)

new names[2][32]

get_user_name(id, names[0], 31)
get_user_name(player, names[1], 31)

ColorChat(0, DontChange, "^4[^3Money^4] Игрок ^3%s ^4передал ^3$%i ^4игроку ^3%s", names[0], amount, names[1])

return PLUGIN_HANDLED
}


Отредактировал: Bloo, - 23.6.2014, 11:03
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
err1
сообщение 23.6.2014, 10:52
Сообщение #2
Стаж: 13 лет

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

Цитата(celldweller @ 23.6.2014, 11:41) *
Привет всем! Помогите разобраться! Такая вот проблема, если в консоле написать transfer, то вылетают ошибки sad.gif
Ошибки в логах
Код
L 06/17/2014 - 15:52:31: [CSTRIKE] Player out of range (0)
L 06/17/2014 - 15:52:31: [AMXX] Displaying debug trace (plugin "MoneyTransfer.amxx")
L 06/17/2014 - 15:52:31: [AMXX] Run time error 10: native error (native "cs_get_user_money")
L 06/17/2014 - 15:52:31: [AMXX]  [0] MoneyTransfer.sma::transfer_money (line 106)

money_transfer.sma
Код:
#include <amxmodx>
#include <cstrike>
#include <colorchat>

#define PLUGIN "Money"
#define VERSION "1.0"
#define AUTHOR "x3"

new players_menu, players[32], num, i
new accessmenu, iName[64], callback

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /tm", "transfer_menu", ADMIN_ALL, "")
register_clcmd("say_team /tm", "transfer_menu", ADMIN_ALL, "")
register_clcmd("transfer", "transfer_money", ADMIN_ALL, "")
}

public transfer_menu(id)
{
get_players(players, num, "h")

if (num <= 1)
{
ColorChat(id, DontChange, "^4[^3Money^4] Кому ты хочешь передать ^3деньги? - ^4Нет игроков, дибил ^3:D")
return PLUGIN_HANDLED
}

new tempname[32], info[10], msg[222]

formatex(msg, charsmax(msg), "\r[\yMoneyTransfer\r] \wМеню игроков^n\dВаши деньги: \r$%d \y| \dСтр. \r", cs_get_user_money(id))
players_menu = menu_create(msg, "players_menu_handler")

for(i = 0; i < num; i++)
{
if(players[i] == id)
continue

get_user_name(players[i], tempname, 31)
num_to_str(players[i], info, 9)

formatex(msg, charsmax(msg), "%s \w(\r$%d\w)", tempname, cs_get_user_money(players[i]))
menu_additem(players_menu, msg, info, 0)
}

menu_setprop(players_menu, MPROP_BACKNAME, "Назад")
menu_setprop(players_menu, MPROP_NEXTNAME, "Дальше")
menu_setprop(players_menu, MPROP_EXITNAME, "Выход")

menu_display(id, players_menu, 0)
return PLUGIN_CONTINUE
}

public players_menu_handler(id, players_menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(players_menu)
return PLUGIN_HANDLED
}

new data[6]

menu_item_getinfo(players_menu, item, accessmenu, data, charsmax(data), iName, charsmax(iName), callback)

new player = str_to_num(data)

client_cmd(id, "messagemode ^"transfer %i^"", player)

return PLUGIN_CONTINUE
}

public transfer_money(id)
{
new param[6]
read_argv(2, param, charsmax(param))

for (new x; x < strlen(param); x++)
{
if(!isdigit(param[x]))
{
ColorChat(id, DontChange, "^4[^3Money^4] Вы должны ввести ^3число!")
transfer_menu(id)
return PLUGIN_HANDLED
}
}

new amount = str_to_num(param)

new money = cs_get_user_money(id)

if (money < amount)
{
ColorChat(id, DontChange, "^4[^3Money^4] У вас нет столько ^3денег!")
transfer_menu(id)
return PLUGIN_HANDLED
}

read_argv(1, param, charsmax(param))
new player = str_to_num(param)

new player_money = cs_get_user_money(player)

if( amount < 100 )
{
ColorChat(id, DontChange, "^4[^3Money^4] Минимальная сумма перевода - ^3$100")
transfer_menu(id)
return PLUGIN_HANDLED
}

cs_set_user_money(id, money - amount, 1)
cs_set_user_money(player, player_money + amount, 1)

new names[2][32]

get_user_name(id, names[0], 31)
get_user_name(player, names[1], 31)

ColorChat(0, DontChange, "^4[^3Money^4] Игрок ^3%s ^4передал ^3$%i ^4игроку ^3%s", names[0], amount, names[1])

return PLUGIN_HANDLED
}

1. пропиши так - MoneyTransfer.amxx debug
2. или уже не парся поставь мой -
Скрытый текст
/* MoneyTransfer v0.3 */

#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#define PLUGIN "MoneyTransfer"
#define VERSION "0.3"
#define AUTHOR "ZETA [M|E|N]"

new players_menu,money_menu,players[32],num,i
new name[32],info[10],player,addmenu[121]
new data[32], iName[64],money,transfer[7]
new accessmenu, callback,player_money

public plugin_init() {
register_plugin("MoneyTransfer","0.3","ZETA [M|E|N]")
register_clcmd("say /tm","func_money_transfer",ADMIN_ALL,"")
}

public func_money_transfer(id) {
players_menu=menu_create("Игроки","players_menu_handler")

get_players(players,num)

for(i=0;i<num;i++) {
if(players[i]!=id) {
get_user_name(players[i],name,31)
num_to_str(players[i],info,9)
menu_additem(players_menu,name,info)
}
}

menu_display(id,players_menu,0)
return PLUGIN_HANDLED
}

public players_menu_handler(id,players_menu,item) {
if(item==MENU_EXIT) return PLUGIN_HANDLED

menu_item_getinfo(players_menu,item,accessmenu,data,31,iName,63,callback)

player=str_to_num(data)

get_user_name(player,name,31)
money=cs_get_user_money(id)
player_money=cs_get_user_money(player)
format(addmenu,120,"Перевести деньги \y%s",name)
transfer={0,0,0,0,0,0,0}

money_menu=menu_create(addmenu,"money_menu_handler")
if(money>=500) {
transfer[1]=1
menu_additem(money_menu,"\w500$")
}
else menu_additem(money_menu,"\d500$")

if(money>=1000) {
transfer[2]=1
menu_additem(money_menu,"\w1000$")
}
else menu_additem(money_menu,"\d1000$")

if(money>=3000) {
transfer[3]=1
menu_additem(money_menu,"\w3000$")
}
else menu_additem(money_menu,"\d3000$")

if(money>=5000) {
transfer[4]=1
menu_additem(money_menu,"\w5000$")
}
else menu_additem(money_menu,"\d5000$")

if(money>=8000) {
transfer[5]=1
menu_additem(money_menu,"\w8000$")
}
else menu_additem(money_menu,"\d8000$")

if(money>=10000) {
transfer[6]=1
menu_additem(money_menu,"\w10000$")
}
else menu_additem(money_menu,"\d10000$")

menu_setprop(money_menu,MPROP_PERPAGE,0)
menu_display(id,money_menu,0)
return PLUGIN_HANDLED
}

public money_menu_handler(id,money_menu,item) {
item++

switch(item) {
case 1:{
if(transfer[1]==1) {
cs_set_user_money(id,money-500)
cs_set_user_money(player,player_money+500)
}
else menu_display(id,money_menu,0)
}
case 2:{
if(transfer[2]==1) {
cs_set_user_money(id,money-1000)
cs_set_user_money(player,player_money+1000)
}
else menu_display(id,money_menu,0)
}
case 3:{
if(transfer[3]==1) {
cs_set_user_money(id,money-3000)
cs_set_user_money(player,player_money+3000)
}
else menu_display(id,money_menu,0)
}
case 4:{
if(transfer[4]==1) {
cs_set_user_money(id,money-5000)
cs_set_user_money(player,player_money+5000)
}
else menu_display(id,money_menu,0)
}
case 5:{
if(transfer[5]==1) {
cs_set_user_money(id,money-8000)
cs_set_user_money(player,player_money+8000)
}
else menu_display(id,money_menu,0)
}
case 6:{
if(transfer[6]==1) {
cs_set_user_money(id,money-10000)
cs_set_user_money(player,player_money+10000)
}
else menu_display(id,money_menu,0)
}
}
return PLUGIN_HANDLED
}


Отредактировал: err1, - 23.6.2014, 10:53
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя celldweller
сообщение 23.6.2014, 10:56
Сообщение #3
Стаж: 11 лет

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

err1,
1. debug прописан он ничего не изменяет он показывает где и что в плагине ошибки!
2. Не нужен! спасибо )
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя celldweller
сообщение 23.6.2014, 20:52
Сообщение #4
Стаж: 11 лет

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

Ребята нужна помощь почему выскакивает в логах ошибка?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: