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

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

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

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

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

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

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

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

[ZP/HUD/Level System] Исправить ошибки в коде.

, Помогите!
Статус пользователя Villi123
сообщение 13.7.2016, 20:46
Сообщение #1
Стаж: 12 лет

Сообщений: 65
Благодарностей: 14
Полезность: 129

Помогите исправить ошибки в коде, пожалуйста. Всё уже перепробовал, не знаю что делать.
Ошибки пишутся каждые 1-2 секунды в консоль и log сервера. На новой версии Metamod v1.21p37 сервер с этими ошибками не падает, на старой версии Metamod 1.19p32 сервер падает. Казалось бы, ну пишутся ошибки и хрен с ними. Но если кто не знает ZombiePlague v4.3 Fix5a не стабильно работает на новой версии Metamod в плане карт с турелями, т.е. если на новой версии Metamod поставить карту например zm_gorod_new или zm_deko2 и выстрелить с пушки то сервер падает. Поэтому мне и нужно исправить все это дело.

Логи с сервера:
Cкрытый текст
CODE
[AMXX] Displaying debug trace (plugin "zp_buymenu_level.amxx")
[AMXX] Run time error 4: index out of bounds
[AMXX] [0] zp_buymenu_level.sma::native_get_exp_current (line 337)
Unhandled dynamic native error
[AMXX] Displaying debug trace (plugin "zombie_plague40.amxx")
[AMXX] Run time error 10: native error (native "zp_get_exp_current")
[AMXX] [0] zombie_plague40.sma::ShowHUD (line 9513)


Часть кода ZombiePlague v4.3 Fix5a с 9513 строкой (Не выкладываю весь, потому что в плагине более 12.000 строк):
Cкрытый текст
Код:
// Spectating someone else?
if (id != ID_SHOWHUD)
{
// Show name, health, class, and ammo packs
set_dhudmessage(255, 255, 255, HUD_SPECT_X, HUD_SPECT_Y, 0, 6.0, 1.1, 0.0, 0.0, false)
show_dhudmessage(ID_SHOWHUD, "%L %s^nHP: %d - %L %s", ID_SHOWHUD, "SPECTATING", g_playername[id], pev(id, pev_health), ID_SHOWHUD, "CLASS_CLASS", class)
}
else
{
// Show health, class and ammo packs
set_dhudmessage(red, blue, green, HUD_STATS_X, -0.04, 0, 6.0, 1.1, 0.0, 0.0, false)
show_dhudmessage(ID_SHOWHUD, "%L: %d - %L %s ^nУровень: %d | Опыт: %d/%d", id, "ZOMBIE_ATTRIB1", pev(ID_SHOWHUD, pev_health), ID_SHOWHUD, "CLASS_CLASS", class, zp_get_user_level(ID_SHOWHUD), zp_get_user_exp(ID_SHOWHUD), zp_get_exp_current(ID_SHOWHUD))
}
}


Плагин с Level (Код плагина сместился на 1 строку, поэтому ошибка не в 337, а в 338 строке):
Cкрытый текст
Код:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>

#define ID_SHOWHUD (taskid - TASK_SHOWHUD)

native zp_cs_get_user_money(id)
native zp_cs_set_user_money(id, value)

new pcvar_exp_zombiekill
new pcvar_exp_nemesiskill
new pcvar_money_nemesiskill
new pcvar_exp_survivorkill
new pcvar_money_survivorkill
new pcvar_exp_infect
new pcvar_exp_humankill
new pcvar_damage_for_xp

new Float:g_PlayerDamage[33]

enum (+= 100)
{
TASK_SHOWHUD = 10
}

const KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MEN
U_KEY_8|MENU_KEY_9|MENU_KEY_0

new const g_szStatsLevel[ ] =
{
0, // 0
100, // 1
200, // 2
300, // 3
400, // 4
500, // 5
600, // 6
700, // 7
800, // 8
900, // 9
1000, // 10
1100, // 11
1200, // 12
1300, // 13
1400, // 14
1500, // 15
1600, // 16
1700, // 17
1800, // 18
1900, // 19
2000, // 20
2100, // 21
2200, // 22
2300, // 23
2400, // 24
2500, // 25
2600, // 26
2700, // 27
2800, // 28
2900, // 29
3000, // 30
3100, // 31
3200, // 32
3300, // 33
3400, // 34
3500, // 35
3600, // 36
3700, // 37
3800, // 38
3900, // 39
4000, // 40
};

const Float:HUD_STATS_X = 0.02;
const Float:HUD_STATS_Y = 0.9025;
const Float:HUD_SPECT_X = -1.0;
const Float:HUD_SPECT_Y = 0.8;

enum _:ELevelData
{
g_iLevelNum = 1,
g_iExpNum

}
new g_pDataBuySystem[ 33 ][ ELevelData ];

new g_ChoosenLevel[33]

public plugin_init( )
{
register_plugin("[ZP] Level System", "1.3", "edit kiryxapro")

RegisterHam( Ham_Killed, "player", "CBasePlayer__Killed_Pre", .Post = true );
RegisterHam( Ham_TakeDamage, "player", "fwTakeDamage" )

register_clcmd("level_set", "LevelMenu")

pcvar_exp_zombiekill = register_cvar("zbm_exp_zombiekill", "1")
pcvar_exp_nemesiskill = register_cvar("zbm_exp_nemesiskill", "10")
pcvar_money_nemesiskill = register_cvar("zbm_money_nemesiskill", "10000")
pcvar_exp_survivorkill = register_cvar("zbm_exp_survivorkill", "10")
pcvar_money_survivorkill = register_cvar("zbm_money_survivorkill", "10000")
pcvar_exp_infect = register_cvar("zbm_exp_infect", "1")
pcvar_exp_humankill = register_cvar("zbm_exp_humankill", "1")
pcvar_damage_for_xp = register_cvar("zbm_exp_damage", "1000")

register_menu("set_level" , KEYSMENU , "level_handler")

register_dictionary("zp_buy.txt")
}

public plugin_natives( )
{
register_native("zp_get_user_exp", "native_get_exp", 1);
register_native("zp_set_user_exp", "native_set_exp", 1);
register_native("zp_get_user_level", "native_get_level", 1);
register_native("zp_set_user_level", "native_set_level", 1);
register_native("zp_get_exp_current", "native_get_exp_current", 1);
register_native("zp_get_exp_last", "native_get_exp_last", 1);
}

public LevelMenu(id)
{
if (!(get_user_flags(id) & ADMIN_LEVEL_A))
return PLUGIN_HANDLED;

if (!g_ChoosenLevel[id])
g_ChoosenLevel[id] = 1

static menu[2048 char] , len

len = 0

len += formatex(menu[len], charsmax(menu) - len, "\rТекущий левел: %d^n^n", g_ChoosenLevel[id])

len += formatex(menu[len], charsmax(menu) - len, "\r1. \wУвеличить левел^n")
len += formatex(menu[len], charsmax(menu) - len, "\r2. \wУменьшить левел^n")
len += formatex(menu[len], charsmax(menu) - len, "\r3. \wУстановить левел^n")

len += formatex(menu[len], charsmax(menu) - len, "^n\r0. \wВыход")

set_pdata_int(id , 205, 0, 5)

show_menu(id, KEYSMENU, menu, -1, "set_level")

return PLUGIN_HANDLED
}

public level_handler(id, key)
{
switch( key )
{
case 0:
{
if (g_ChoosenLevel[id] >= sizeof(g_szStatsLevel) - 1)
ChatColor(id, "^4[ZP] ^1Максимальный уровень - ^3%d^1!", sizeof(g_szStatsLevel) - 1)
else
g_ChoosenLevel[id]+=1;

LevelMenu(id)
}
case 1:
{
if (g_ChoosenLevel[id] <= 1)
ChatColor(id, "^4[ZP] ^1Минимальный уровень - 1!")
else g_ChoosenLevel[id]-=1;

LevelMenu(id)
}
case 2:
{
MenuPlayer(id)
}
}
}

public MenuPlayer(id)
{
new i_Menu = menu_create("\rВыберите игрока", "menu_handle")

new s_Players[32], i_Num, i_Player

new s_Name[32], s_Player[10], text[128]

get_players(s_Players, i_Num)

for (new i; i < i_Num; i++)
{
i_Player = s_Players[i]

get_user_name(i_Player, s_Name, charsmax(s_Name))
num_to_str(i_Player, s_Player, charsmax(s_Player))

formatex(text, charsmax(text), "%s", s_Name)
menu_additem(i_Menu, text, s_Player, 0)
}
menu_setprop(i_Menu, MPROP_EXITNAME, "Выход")
menu_setprop(i_Menu, MPROP_NEXTNAME, "Далее")
menu_setprop(i_Menu, MPROP_BACKNAME, "Назад")
menu_display(id, i_Menu, 0)
}

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

new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

new i_Player = str_to_num(s_Data)

native_set_level(i_Player, g_ChoosenLevel[id])
native_set_exp(i_Player, g_szStatsLevel[g_ChoosenLevel[id] - 1])

new name[32]

get_user_name(i_Player, name, 31)
ChatColor(id, "^4[ZP] ^1Игроку ^3%s ^1установлен ^3%d ^1уровень.", name, g_ChoosenLevel[id])

menu_destroy(menu)
return PLUGIN_HANDLED
}

public plugin_cfg( )
{
new inifile[128]
get_localinfo("amxx_configsdir", inifile, 127)
add(inifile, 127, "/zp_buymenu.cfg")
server_cmd("exec %s", inifile)
}

public CBasePlayer__Killed_Pre( pevVictim, pevKiller )
{
if( !is_user_alive( pevKiller) )
return HAM_IGNORED;

new szName[ 32 ]
get_user_name(pevKiller, szName, 31)

if( g_pDataBuySystem[ pevKiller ][ g_iLevelNum ] >= sizeof( g_szStatsLevel ) )
return HAM_IGNORED;

if( zp_get_user_zombie( pevVictim ) )
{
if( zp_get_user_nemesis( pevVictim ) )
{
g_pDataBuySystem[ pevKiller ][ g_iExpNum ] += get_pcvar_num(pcvar_exp_nemesiskill)
zp_cs_set_user_money( pevKiller , zp_cs_get_user_money( pevKiller ) + get_pcvar_num(pcvar_money_nemesiskill) )
ChatColor(0, "%L", LANG_PLAYER, "NEM_LOOSEROUND", szName, get_pcvar_num(pcvar_money_nemesiskill), get_pcvar_num(pcvar_exp_nemesiskill))
}
else
{
g_pDataBuySystem[ pevKiller ][ g_iExpNum ] += get_pcvar_num(pcvar_exp_zombiekill);
}
}
else
{
if( zp_get_user_survivor( pevVictim ) )
{
g_pDataBuySystem[ pevKiller ][ g_iExpNum ] += get_pcvar_num(pcvar_exp_survivorkill)
zp_cs_set_user_money( pevKiller , zp_cs_get_user_money( pevKiller ) + get_pcvar_num(pcvar_money_survivorkill) )
ChatColor(0, "%L", LANG_PLAYER, "SURV_LOOSEROUND", szName, get_pcvar_num(pcvar_money_survivorkill), get_pcvar_num(pcvar_exp_survivorkill))
}
else
{
g_pDataBuySystem[ pevKiller ][ g_iExpNum ] += get_pcvar_num(pcvar_exp_humankill)
}
}

if ((g_pDataBuySystem[pevKiller][g_iLevelNum] == (sizeof(g_szStatsLevel) - 1)) && (g_pDataBuySystem[pevKiller][g_iExpNum] >= g_szStatsLevel[ g_pDataBuySystem[ pevKiller ][ g_iLevelNum ] ]))
g_pDataBuySystem[pevKiller][g_iExpNum] = g_szStatsLevel[ g_pDataBuySystem[ pevKiller ][ g_iLevelNum ] ]
else
{
while( g_pDataBuySystem[ pevKiller ][ g_iExpNum ] >= g_szStatsLevel[ g_pDataBuySystem[ pevKiller ][ g_iLevelNum ] ] )
g_pDataBuySystem[ pevKiller ][ g_iLevelNum ]++;
}

return HAM_IGNORED;
}

public fwTakeDamage(id, inflictor, attacker, Float:damage)
{
if (!get_pcvar_num(pcvar_damage_for_xp))
return;

if (id == attacker || !is_user_alive(attacker))
return;

if( g_pDataBuySystem[ attacker ][ g_iLevelNum ] >= sizeof( g_szStatsLevel ) )
return;

if (!zp_get_user_zombie(attacker))
{
g_PlayerDamage[attacker] += floatround(damage)

while (g_PlayerDamage[attacker] > get_pcvar_num(pcvar_damage_for_xp))
{
g_pDataBuySystem[ attacker ][ g_iExpNum ] += 1;
g_PlayerDamage[attacker] -= get_pcvar_num(pcvar_damage_for_xp)
}
}

if ((g_pDataBuySystem[attacker][g_iLevelNum] == (sizeof(g_szStatsLevel) - 1)) && (g_pDataBuySystem[attacker][g_iExpNum] >= g_szStatsLevel[ g_pDataBuySystem[ attacker ][ g_iLevelNum ] ]))
g_pDataBuySystem[attacker][g_iExpNum] = g_szStatsLevel[ g_pDataBuySystem[ attacker ][ g_iLevelNum ] ]
else
{
while( g_pDataBuySystem[ attacker ][ g_iExpNum ] >= g_szStatsLevel[ g_pDataBuySystem[ attacker ][ g_iLevelNum ] ] )
g_pDataBuySystem[ attacker ][ g_iLevelNum ]++;
}
}

public zp_user_infected_post(id, iInfector)
{
if( g_pDataBuySystem[ iInfector ][ g_iLevelNum ] >= sizeof( g_szStatsLevel ) )
return;

g_pDataBuySystem[ iInfector ][ g_iExpNum ] += get_pcvar_num(pcvar_exp_infect)

if ((g_pDataBuySystem[iInfector][g_iLevelNum] == (sizeof(g_szStatsLevel) - 1)) && (g_pDataBuySystem[iInfector][g_iExpNum] >= g_szStatsLevel[ g_pDataBuySystem[ iInfector ][ g_iLevelNum ] ]))
g_pDataBuySystem[iInfector][g_iExpNum] = g_szStatsLevel[ g_pDataBuySystem[ iInfector ][ g_iLevelNum ] ]
else
{
while( g_pDataBuySystem[ iInfector ][ g_iExpNum ] >= g_szStatsLevel[ g_pDataBuySystem[ iInfector ][ g_iLevelNum ] ] )
g_pDataBuySystem[ iInfector ][ g_iLevelNum ]++;
}
}

public native_set_level(pPlayer,value) g_pDataBuySystem[pPlayer][g_iLevelNum] = value;
public native_set_exp(pPlayer,value) g_pDataBuySystem[pPlayer][g_iExpNum] = value;
public native_get_exp(pPlayer) return g_pDataBuySystem[pPlayer][g_iExpNum];
public native_get_level(pPlayer) return g_pDataBuySystem[pPlayer][g_iLevelNum];
public native_get_exp_current(pPlayer) return g_szStatsLevel[ g_pDataBuySystem[pPlayer][g_iLevelNum]];
public native_get_exp_last(pPlayer) return g_szStatsLevel[g_pDataBuySystem[pPlayer][g_iLevelNum-1]];

stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!team", "^3") // Team Color

if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i; i < count; i++)
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя LeShiK
сообщение 14.7.2016, 8:41
Сообщение #2


Стаж: 12 лет

Сообщений: 444
Благодарностей: 55
Полезность: 117

Знакомая level система :D Проблему решил с пропаданием уровней ?
Если нет, могу помочь :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Villi123
сообщение 14.7.2016, 10:23
Сообщение #3
Стаж: 12 лет

Сообщений: 65
Благодарностей: 14
Полезность: 129

Цитата(LeShiK @ 14.7.2016, 9:41) *
Знакомая level система :D Проблему решил с пропаданием уровней ?
Если нет, могу помочь :)

Спасибо конечно за предложенную помощь, но у меня уже есть отдельный доп. плагин к zp_buymenu для сохранения данных) Мне бы только убрать ошибку с HUD и всё.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Arctiq
сообщение 14.7.2016, 17:50
Сообщение #4


Стаж: 14 лет
Город: Балашиха

Сообщений: 103
Благодарностей: 52
Полезность: 384

Код:
if(id != ID_SHOWHUD)

замени на
Код:
if(is_user_connected(ID_SHOWHUD) && id != ID_SHOWHUD)


Отредактировал: Arctiq, - 14.7.2016, 17:50
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Villi123
сообщение 14.7.2016, 20:56
Сообщение #5
Стаж: 12 лет

Сообщений: 65
Благодарностей: 14
Полезность: 129

Arctiq,
Изменил, но никаких результатов это не дало. Всё равно есть ошибки.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Arctiq
сообщение 14.7.2016, 22:05
Сообщение #6


Стаж: 14 лет
Город: Балашиха

Сообщений: 103
Благодарностей: 52
Полезность: 384

Цитата(Villi123 @ 14.7.2016, 21:56) *
Arctiq,
Изменил, но никаких результатов это не дало. Всё равно есть ошибки.

те же?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Villi123
сообщение 15.7.2016, 0:18
Сообщение #7
Стаж: 12 лет

Сообщений: 65
Благодарностей: 14
Полезность: 129

Arctiq,
Да, ошибки те же. В тех же строках в обоих плагинах.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Villi123
сообщение 16.7.2016, 22:33
Сообщение #8
Стаж: 12 лет

Сообщений: 65
Благодарностей: 14
Полезность: 129

Arctiq,
Arctiq, проблема я думаю не в ZombiePlague вовсе и даже не в "native_get_exp_current". Оказывается проблема в том, что максимальный уровень - 40 Level. А у некоторых игроков почему то есть 41 Level, и когда этих игроков на сервере нету то ошибки не пишутся. Как исправить?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Arctiq
сообщение 17.7.2016, 9:16
Сообщение #9


Стаж: 14 лет
Город: Балашиха

Сообщений: 103
Благодарностей: 52
Полезность: 384

Villi123,
эта ошибка и говорит о том, что значение переменной выходит за предел массива, то есть у тебя массив 0-40, а значение 41.
Код:
index out of bounds 


как исправить? проще всего сделать 41 уровень и установить ему опыт равным что-то типа 999999999.
Код:
new const g_szStatsLevel[ ] =
{
0, // 0
100, // 1
...
4000, // 40
99999, // 41
};
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Villi123
сообщение 17.7.2016, 9:43
Сообщение #10
Стаж: 12 лет

Сообщений: 65
Благодарностей: 14
Полезность: 129

Arctiq,
Но ведь игроки с 41 Уровнем, все равно рано или поздно достигнут количества опыта заданного в исходнике. Других вариантов нету? Ещё есть такой баг, получают 41 Уровень совершенно новые игроки, но не все. Например: Новый игрок зашёл на сервер и ему рандомно выдался 41 уровень и он его не качал. Почему это происходит?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Arctiq
сообщение 17.7.2016, 11:05
Сообщение #11


Стаж: 14 лет
Город: Балашиха

Сообщений: 103
Благодарностей: 52
Полезность: 384

Цитата(Villi123 @ 17.7.2016, 10:43) *
Arctiq,
Но ведь игроки с 41 Уровнем, все равно рано или поздно достигнут количества опыта заданного в исходнике. Других вариантов нету? Ещё есть такой баг, получают 41 Уровень совершенно новые игроки, но не все. Например: Новый игрок зашёл на сервер и ему рандомно выдался 41 уровень и он его не качал. Почему это происходит?


на то он и баг, нужно проверить весь код
а по поводу 41 уровня- его можно убрать и сделать нормально, но это совсем другая история :)
должно получится что-то вроде этого:
Код:
if(level >= 0 && <= 40)


Отредактировал: Arctiq, - 17.7.2016, 11:06
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MrLegiongame
сообщение 17.7.2016, 11:26
Сообщение #12
Стаж: 11 лет

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

Arctiq,
еще хочу отметить что тот игрок заходил со steam .
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Villi123
сообщение 17.7.2016, 13:31
Сообщение #13
Стаж: 12 лет

Сообщений: 65
Благодарностей: 14
Полезность: 129

Цитата(MrLegiongame @ 17.7.2016, 12:26) *
Arctiq,
еще хочу отметить что тот игрок заходил со steam .

Можешь взяться за исправление бага? Если платно, скажи сколько будет стоить.

Цитата(MrLegiongame @ 17.7.2016, 12:26) *
Arctiq,
еще хочу отметить что тот игрок заходил со steam .

То что со Steam или Non Steam не имеет значения. У Non Steam клиентов тоже происходит такой баг.

Отредактировал: iShot, - 17.7.2016, 13:53
Причина: Объединил сообщения
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Arctiq
сообщение 18.7.2016, 18:59
Сообщение #14


Стаж: 14 лет
Город: Балашиха

Сообщений: 103
Благодарностей: 52
Полезность: 384

Villi123, скинь мне исходник, я посмотрю что и как
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Villi123
сообщение 19.7.2016, 11:15
Сообщение #15
Стаж: 12 лет

Сообщений: 65
Благодарностей: 14
Полезность: 129

Цитата(Arctiq @ 18.7.2016, 19:59) *
Villi123, скинь мне исходник, я посмотрю что и как


Прикрепленные файлы:
Прикрепленный файл  zp_buymenu_level.sma ( 10,21 килобайт ) Кол-во скачиваний: 44
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Villi123
сообщение 25.7.2016, 21:21
Сообщение #16
Стаж: 12 лет

Сообщений: 65
Благодарностей: 14
Полезность: 129

Цитата(Arctiq @ 18.7.2016, 19:59) *
Villi123, скинь мне исходник, я посмотрю что и как

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