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

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

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

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

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

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

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

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

Level up Menu меню прокачки

Статус пользователя soneekk
сообщение 18.7.2016, 3:12
Сообщение #1


Стаж: 13 лет

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



здравствуйте, взял этот плагин Level up Menu (система прокачки) из сборки zp50, удалил inclaude zp50_ammopacks, zp_ammopacks_set & zp_ammopacks_get переделал на серверную валюту, установил на сервер вот меню выходит, работает но не дается, не прокачивается, вообще как это должен работать вит в .sma нету функции выдачи, можно кок та переделать чтоб работал на всех модов ??

.sma
Код:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>

native get_user_points(id)
native set_user_points(id, money, flash = 1)

#define COST_HP 5
#define COST_AP 10
#define COST_SPEED 15
#define COST_GRAVITY 15
#define COST_KNOCKBACK 20
#define COST_DAMAGE 20

#define get_cost(%1,%2) (%2*%1+%2)

new g_speed[33],
g_gravity[33],
g_knockback[33],
g_damage[33],
g_hp[33],
g_ap[33]

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 g_HudSync
public plugin_init()
{
register_menu("Level up Menu", KEYSMENU, "menu_lvlup")
register_menu("Where my gold Menu", KEYSMENU, "menu_gold")
register_clcmd("say /lvl", "clcmd_showlevelmenu")
register_clcmd("say /gold", "clcmd_gold")
RegisterHam(Ham_TakeDamage, "player", "ham_takedamage")
g_HudSync = CreateHudSyncObj()
}

public plugin_natives()
{
register_native("zp_level_menu", "native_show_menu")
register_native("zp_hplvl_get", "native_hplevel_get")
register_native("zp_aplvl_get", "native_aplevel_get")
register_native("zp_speedlvl_get", "native_speedlevel_get")
register_native("zp_gravitylvl_get", "native_gravitylevel_get")
register_native("zp_knockbacklvl_get", "native_knockbacklevel_get")
register_native("zp_damagelvl_get", "native_damagelevel_get")

register_native("zp_hplvl_set", "native_hplevel_set")
register_native("zp_aplvl_set", "native_aplevel_set")
register_native("zp_speedlvl_set", "native_speedlevel_set")
register_native("zp_gravitylvl_set", "native_gravitylevel_set")
register_native("zp_knockbacklvl_set", "native_knockbacklevel_set")
register_native("zp_damagelvl_set", "native_damagelevel_set")
}

public native_show_menu(plugin_id, num_params)
{
new id = get_param(1)

if (!is_user_alive(id))
{
log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id)
return;
}

show_menu_level(id)
}

public native_hplevel_get(plugin_id, num_params)
{
new id = get_param(1)

if (!is_user_alive(id))
{
log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id)
return false;
}

return g_hp[id];
}

public native_aplevel_get(plugin_id, num_params)
{
new id = get_param(1)

if (!is_user_alive(id))
{
log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id)
return false;
}

return g_ap[id];
}

public native_speedlevel_get(plugin_id, num_params)
{
new id = get_param(1)

if (!is_user_alive(id))
{
log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id)
return false;
}

return g_speed[id];
}

public native_gravitylevel_get(plugin_id, num_params)
{
new id = get_param(1)

if (!is_user_alive(id))
{
log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id)
return false;
}

return g_gravity[id];
}

public native_knockbacklevel_get(plugin_id, num_params)
{
new id = get_param(1)

if (!is_user_alive(id))
{
log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id)
return false;
}

return g_knockback[id];
}

public native_damagelevel_get(plugin_id, num_params)
{
new id = get_param(1)

if (!is_user_alive(id))
{
log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id)
return false;
}

return g_damage[id];
}

public native_hplevel_set(plugin_id, num_params)
{
new id = get_param(1)

if (!is_user_alive(id))
{
log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id)
return;
}

g_hp[id] =get_param(2)
}

public native_aplevel_set(plugin_id, num_params)
{
new id = get_param(1)

if (!is_user_alive(id))
{
log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id)
return;
}

g_ap[id]=get_param(2)
}

public native_speedlevel_set(plugin_id, num_params)
{
new id = get_param(1)

if (!is_user_alive(id))
{
log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id)
return;
}

g_speed[id]=get_param(2)
}

public native_gravitylevel_set(plugin_id, num_params)
{
new id = get_param(1)

if (!is_user_alive(id))
{
log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id)
return;
}

g_gravity[id]=get_param(2)
}

public native_knockbacklevel_set(plugin_id, num_params)
{
new id = get_param(1)

if (!is_user_alive(id))
{
log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id)
return;
}

g_knockback[id]=get_param(2)
}

public native_damagelevel_set(plugin_id, num_params)
{
new id = get_param(1)

if (!is_user_alive(id))
{
log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id)
return;
}

g_damage[id]=get_param(2)
}

public clcmd_showlevelmenu(id) show_menu_level(id)
public clcmd_gold(id) set_user_points(id,5000)

show_menu_level(id)
{
static menu[512]
new len

new current_gold=get_user_points(id)

// Title
len += formatex(menu[len], charsmax(menu) - len, "\yМеню прокачки:^n[ У вас \r%d\y Gold ]^n^n", current_gold)


if(g_hp[id]>9)
len += formatex(menu[len], charsmax(menu) - len, "\r1. \dЗдоровье \y[MAX]^n")
else if(current_gold<get_cost(g_hp[id], COST_HP))
len += formatex(menu[len], charsmax(menu) - len, "\r1. \dЗдоровье \r[ %d/10 ] \y[ %d Gold ]^n",g_hp[id], get_cost(g_hp[id], COST_HP))
else len += formatex(menu[len], charsmax(menu) - len, "\r1. \wЗдоровье \r[ %d/10 ] \y[ %d Gold ]^n",g_hp[id], get_cost(g_hp[id], COST_HP))

if(g_ap[id]>9)
len += formatex(menu[len], charsmax(menu) - len, "\r2. \dБроня \y[MAX]^n")
else if(current_gold<get_cost(g_ap[id], COST_AP))
len += formatex(menu[len], charsmax(menu) - len, "\r2. \dБроня \r[ %d/10 ] \y[ %d Gold ]^n",g_ap[id], get_cost(g_ap[id], COST_AP))
else len += formatex(menu[len], charsmax(menu) - len, "\r2. \wБроня \r[ %d/10 ] \y[ %d Gold ]^n",g_ap[id], get_cost(g_ap[id], COST_AP))

if(g_speed[id]>9)
len += formatex(menu[len], charsmax(menu) - len, "\r3. \dСкорость бега \y[MAX]^n")
else if(current_gold<get_cost(g_speed[id], COST_SPEED))
len += formatex(menu[len], charsmax(menu) - len, "\r3. \dСкорость бега \r[ %d/10 ] \y[ %d Gold ]^n",g_speed[id], get_cost(g_speed[id], COST_SPEED))
else len += formatex(menu[len], charsmax(menu) - len, "\r3. \wСкорость бега \r[ %d/10 ] \y[ %d Gold ]^n",g_speed[id], get_cost(g_speed[id], COST_SPEED))

if(g_gravity[id]>9)
len += formatex(menu[len], charsmax(menu) - len, "\r4. \dГравитация \y[MAX]^n")
else if(current_gold<get_cost(g_gravity[id], COST_GRAVITY))
len += formatex(menu[len], charsmax(menu) - len, "\r4. \dГравитация \r[ %d/10 ] \y[ %d Gold ]^n",g_gravity[id], get_cost(g_gravity[id], COST_GRAVITY))
else len += formatex(menu[len], charsmax(menu) - len, "\r4. \wГравитация \r[ %d/10 ] \y[ %d Gold ]^n",g_gravity[id], get_cost(g_gravity[id], COST_GRAVITY))

if(g_knockback[id]>9)
len += formatex(menu[len], charsmax(menu) - len, "\r5. \dОтброс зомби \y[MAX]^n")
else if(current_gold<get_cost(g_knockback[id], COST_KNOCKBACK))
len += formatex(menu[len], charsmax(menu) - len, "\r5. \dОтброс зомби \r[ %d/10 ] \y[ %d Gold ]^n",g_knockback[id], get_cost(g_knockback[id], COST_KNOCKBACK))
else len += formatex(menu[len], charsmax(menu) - len, "\r5. \wОтброс зомби \r[ %d/10 ] \y[ %d Gold ]^n",g_knockback[id], get_cost(g_knockback[id], COST_KNOCKBACK))

if(g_damage[id]>9)
len += formatex(menu[len], charsmax(menu) - len, "\r6. \dУрон \y[MAX]^n")
else if(current_gold<get_cost(g_damage[id], COST_DAMAGE))
len += formatex(menu[len], charsmax(menu) - len, "\r6. \dУрон \r[ %d/10 ] \y[ %d Gold ]^n",g_damage[id], get_cost(g_damage[id], COST_DAMAGE))
else len += formatex(menu[len], charsmax(menu) - len, "\r6. \wУрон \r[ %d/10 ] \y[ %d Gold ]^n",g_damage[id], get_cost(g_damage[id], COST_DAMAGE))

len += formatex(menu[len], charsmax(menu) - len, "^n\r7. \w[ Где получить \yGold\w? ]^n")

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

set_pdata_int(id, 205, 0)
show_menu(id, KEYSMENU, menu, -1, "Level up Menu")
}


public menu_lvlup(id, key)
{
// Player disconnected?
if (!is_user_connected(id))
return PLUGIN_HANDLED;

new current_gold=get_user_points(id)

switch (key)
{
case 0:
{
if(g_hp[id]>=10)
{
ClearSyncHud(id, g_HudSync)
set_hudmessage(255, 255, 0, -1.0, 0.6, 0, 0.1, 2.0, 0.5, 1.0, -1)
ShowSyncHudMsg(id, g_HudSync, "Здоровье прокачано на максимум")
show_menu_level(id)
return PLUGIN_HANDLED
}
if(current_gold<get_cost(g_hp[id], COST_HP))
{
ClearSyncHud(id, g_HudSync)
set_hudmessage(255, 255, 0, -1.0, 0.6, 0, 0.1, 2.0, 0.5, 1.0, -1)
ShowSyncHudMsg(id, g_HudSync, "Недостаточно золота (%d нехватает)", get_cost(g_hp[id], COST_HP)-current_gold)
show_menu_level(id)
return PLUGIN_HANDLED
}
set_user_points(id, current_gold-get_cost(g_hp[id], COST_HP))
g_hp[id]++

ClearSyncHud(id, g_HudSync)
set_hudmessage(255, 255, 0, -1.0, 0.6, 0, 0.1, 2.0, 0.5, 1.0, -1)
ShowSyncHudMsg(id, g_HudSync, "Вы прокачали здоровье до %d", g_hp[id])

show_menu_level(id)
}
case 1:
{
if(g_ap[id]>=10)
{
ClearSyncHud(id, g_HudSync)
set_hudmessage(255, 255, 0, -1.0, 0.6, 0, 0.1, 2.0, 0.5, 1.0, -1)
ShowSyncHudMsg(id, g_HudSync, "Броня прокачана на максимум")
show_menu_level(id)
return PLUGIN_HANDLED
}
if(current_gold<get_cost(g_ap[id], COST_AP))
{
ClearSyncHud(id, g_HudSync)
set_hudmessage(255, 255, 0, -1.0, 0.6, 0, 0.1, 2.0, 0.5, 1.0, -1)
ShowSyncHudMsg(id, g_HudSync, "Недостаточно золота (%d нехватает)", get_cost(g_ap[id], COST_AP)-current_gold)
show_menu_level(id)
return PLUGIN_HANDLED
}
set_user_points(id, current_gold-get_cost(g_ap[id], COST_AP))
g_ap[id]++

ClearSyncHud(id, g_HudSync)
set_hudmessage(255, 255, 0, -1.0, 0.6, 0, 0.1, 2.0, 0.5, 1.0, -1)
ShowSyncHudMsg(id, g_HudSync, "Вы прокачали броню до %d", g_ap[id])

show_menu_level(id)
}
case 2:
{
if(g_speed[id]>=10)
{
ClearSyncHud(id, g_HudSync)
set_hudmessage(255, 255, 0, -1.0, 0.6, 0, 0.1, 2.0, 0.5, 1.0, -1)
ShowSyncHudMsg(id, g_HudSync, "Скорость бега прокачана на максимум")
show_menu_level(id)
return PLUGIN_HANDLED
}
if(current_gold<get_cost(g_speed[id], COST_SPEED))
{
ClearSyncHud(id, g_HudSync)
set_hudmessage(255, 255, 0, -1.0, 0.6, 0, 0.1, 2.0, 0.5, 1.0, -1)
ShowSyncHudMsg(id, g_HudSync, "Недостаточно золота (%d нехватает)", get_cost(g_speed[id], COST_SPEED)-current_gold)
show_menu_level(id)
return PLUGIN_HANDLED
}
set_user_points(id, current_gold-get_cost(g_speed[id], COST_SPEED))
g_speed[id]++

ClearSyncHud(id, g_HudSync)
set_hudmessage(255, 255, 0, -1.0, 0.6, 0, 0.1, 2.0, 0.5, 1.0, -1)
ShowSyncHudMsg(id, g_HudSync, "Вы прокачали скорость бега до %d", g_speed[id])

show_menu_level(id)
}
case 3:
{
if(g_gravity[id]>=10)
{
ClearSyncHud(id, g_HudSync)
set_hudmessage(255, 255, 0, -1.0, 0.6, 0, 0.1, 2.0, 0.5, 1.0, -1)
ShowSyncHudMsg(id, g_HudSync, "Гравитация прокачана на максимум")
show_menu_level(id)
return PLUGIN_HANDLED
}
if(current_gold<get_cost(g_gravity[id], COST_GRAVITY))
{
ClearSyncHud(id, g_HudSync)
set_hudmessage(255, 255, 0, -1.0, 0.6, 0, 0.1, 2.0, 0.5, 1.0, -1)
ShowSyncHudMsg(id, g_HudSync, "Недостаточно золота (%d нехватает)", get_cost(g_gravity[id], COST_GRAVITY)-current_gold)
show_menu_level(id)
return PLUGIN_HANDLED
}
set_user_points(id, current_gold-get_cost(g_gravity[id], COST_GRAVITY))
g_gravity[id]++

ClearSyncHud(id, g_HudSync)
set_hudmessage(255, 255, 0, -1.0, 0.6, 0, 0.1, 2.0, 0.5, 1.0, -1)
ShowSyncHudMsg(id, g_HudSync, "Вы прокачали гравитацию до %d", g_gravity[id])

show_menu_level(id)
}
case 4:
{
if(g_knockback[id]>=10)
{
ClearSyncHud(id, g_HudSync)
set_hudmessage(255, 255, 0, -1.0, 0.6, 0, 0.1, 2.0, 0.5, 1.0, -1)
ShowSyncHudMsg(id, g_HudSync, "Отброс зомби прокачан на максимум")
show_menu_level(id)
return PLUGIN_HANDLED
}
if(current_gold<get_cost(g_knockback[id], COST_KNOCKBACK))
{
ClearSyncHud(id, g_HudSync)
set_hudmessage(255, 255, 0, -1.0, 0.6, 0, 0.1, 2.0, 0.5, 1.0, -1)
ShowSyncHudMsg(id, g_HudSync, "Недостаточно золота (%d нехватает)", get_cost(g_knockback[id], COST_KNOCKBACK)-current_gold)
show_menu_level(id)
return PLUGIN_HANDLED
}
set_user_points(id, current_gold-get_cost(g_knockback[id], COST_KNOCKBACK))
g_knockback[id]++

ClearSyncHud(id, g_HudSync)
set_hudmessage(255, 255, 0, -1.0, 0.6, 0, 0.1, 2.0, 0.5, 1.0, -1)
ShowSyncHudMsg(id, g_HudSync, "Вы прокачали отброс зомби до %d", g_knockback[id])

show_menu_level(id)
}
case 5:
{
if(g_damage[id]>=10)
{
ClearSyncHud(id, g_HudSync)
set_hudmessage(255, 255, 0, -1.0, 0.6, 0, 0.1, 2.0, 0.5, 1.0, -1)
ShowSyncHudMsg(id, g_HudSync, "Урон прокачан на максимум")
show_menu_level(id)
return PLUGIN_HANDLED
}
if(current_gold<get_cost(g_damage[id], COST_DAMAGE))
{
ClearSyncHud(id, g_HudSync)
set_hudmessage(255, 255, 0, -1.0, 0.6, 0, 0.1, 2.0, 0.5, 1.0, -1)
ShowSyncHudMsg(id, g_HudSync, "Недостаточно золота (%d нехватает)", get_cost(g_damage[id], COST_DAMAGE)-current_gold)
show_menu_level(id)
return PLUGIN_HANDLED
}
set_user_points(id, current_gold-get_cost(g_damage[id], COST_DAMAGE))
g_damage[id]++

ClearSyncHud(id, g_HudSync)
set_hudmessage(255, 255, 0, -1.0, 0.6, 0, 0.1, 2.0, 0.5, 1.0, -1)
ShowSyncHudMsg(id, g_HudSync, "Вы прокачали урон до %d", g_damage[id])

show_menu_level(id)
}
case 6: show_menu_gold(id)
}
return PLUGIN_HANDLED;
}

show_menu_gold(id)
{
static menu[512]
new len

len += formatex(menu[len], charsmax(menu) - len, "\y Получить золото \w[\yбесплатно\w]\y вы можете^n")
len += formatex(menu[len], charsmax(menu) - len, "\w Убивая зомби и поднимая свой \rуровень^n^n")
len += formatex(menu[len], charsmax(menu) - len, "\y Так же, вы всегда можете \w[\yкупить\w]\y золото у админа^n")
len += formatex(menu[len], charsmax(menu) - len, "\y (100 золота - 100 рублей)^n^n")
len += formatex(menu[len], charsmax(menu) - len, "\w [Skype] di_4ever_")

set_pdata_int(id, 205, 0)
show_menu(id, KEYSMENU, menu, -1, "Where my gold Menu")
}

public menu_gold(id, key)
{
return PLUGIN_HANDLED;
}

public ham_takedamage(victim,inflictor,attacker,Float:damage,damage_type){
if(!is_user_connected(attacker)||attacker==victim||!(damage_type&DMG_BULLET)||!g_damage[attacker])return

new Float:updmg=(damage/100.0)*(5.0*float(g_damage[attacker]))

SetHamParamFloat(4,damage+updmg)
}



Отредактировал: soneekk, - 18.7.2016, 12:24
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Set228
сообщение 18.7.2016, 8:53
Сообщение #2


Стаж: 14 лет

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

soneekk, Исходник в студию, я сомневаюсь что каждый будет качать zp50 и искать там эту часть кода, упрощай жизнь и быстрее откликнутся smile.gif

Отредактировал: iShot, - 19.7.2016, 4:26
Причина: Выдано устное предупреждение!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя steelzzz
сообщение 18.7.2016, 9:25
Сообщение #3


Стаж: 12 лет

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

soneekk, этот плагин недоделанный)

Отредактировал: iShot, - 19.7.2016, 4:27
Причина: Выдано устное предупреждение!


Нужна помощь в настройке сервера или плагина? (Платно) -> Тык
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя soneekk
сообщение 18.7.2016, 12:25
Сообщение #4


Стаж: 13 лет

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

добавил исходник, забыл вчера ночью.

steelzzz,

работает na zp50

тема актуальна, помогите многим понадобится такой.

Отредактировал: iShot, - 19.7.2016, 4:27
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя steelzzz
сообщение 19.7.2016, 0:01
Сообщение #5


Стаж: 12 лет

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

Цитата(soneekk @ 18.7.2016, 21:03) *
тема актуальна, помогите многим понадобится такой.

Могу продать свою версию (писался на заказ)
!
В темах, где пользователи обращаются с просьбами о помощи в настройке сервера, его модификаций или плагинов, запрещено предлагать платное решение проблемы


Отредактировал: iShot, - 19.7.2016, 4:30
Причина: Выдано устное предупреждение!


Нужна помощь в настройке сервера или плагина? (Платно) -> Тык
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя soneekk
сообщение 19.7.2016, 0:40
Сообщение #6


Стаж: 13 лет

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

steelzzz,

за сколько?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя soneekk
сообщение 20.7.2016, 16:41
Сообщение #7


Стаж: 13 лет

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

тема актуальна
i
Уведомление:
Если Вы являетесь создателем темы, которая понесла некие изменения или дополнения, и Вам необходимо донести это до других участников форума, тогда Вы имеете право поднять тему методом публикации нового сообщения, но только с полным описанием внесённых изменений и/или дополнений. В противном случае такое сообщение будет удалено, а Вы понесете наказание.


Отредактировал: iShot, - 20.7.2016, 16:48
Причина: Выдано устное предупреждение!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя soneekk
сообщение 3.8.2016, 1:14
Сообщение #8


Стаж: 13 лет

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

ребята этот плагин работает вот с этими плагинами:
zp50_core.amxx
amx_settings_api.amxx
cs_player_models_api.amxx
cs_teams_api.amxx
cs_maxspeed_api.amxx
cs_weap_models_api.amxx
cs_weap_restrict_api.amxx
zp50_class_human.amxx

level_menu.amxx debug


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