Witam, jestem szczęściarzem posiadania licencji sklepu SMS i wszystko działa prawidłowo ( VIP, REZERWACJA NICKU oraz SLOTU) poza jedną usługą, BF2_BADGE.
Jak mam skonfigurować ten plugin tak aby działał mi na serwerze? Dodałem usługę w cenniku jednak na serwerze nie pokazuje mi się pod komendą /sklepsms
Poniżej załączam sma tego pluginu oraz pluginu BF2 z którego korzystam.
Plugin BF2 z sklepsms
#include <amxmodx> #include <shop_sms> native bf2_get_maxbadges(); native bf2_get_badge_name(badge_id, badge_level, name[], len); native bf2_get_user_badge(index, badge_id); native bf2_set_user_badge(index, badge_id, level); new const service_id[MAX_SERVICE_ID + 1] = "bf2_badge"; #define PLUGIN "Sklep-SMS: Usluga BF2 Odznaki" #define AUTHOR "SeeK" #define TASK_MENU1 1000 new stronaP[33], bool:wybranoP[33] new dane[33] public plugin_natives() { set_native_filter("native_filter"); } public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) } public plugin_cfg() { ss_register_service(service_id); } public ss_service_chosen(id, amount) { new menu = menu_create("Wybierz odznake:", "menuHandler") new menu_callback = menu_makecallback("menuCallback"); new nazwa[64] for(new i = 0; i < bf2_get_maxbadges(); ++i) { bf2_get_badge_name(i, amount, nazwa, charsmax(nazwa)) new data[2] data[0] = i+1 data[1] = bf2_get_user_badge(id, i) >= amount ? 0 : 1 menu_additem(menu, nazwa, data, 0, menu_callback) } menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona"); menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona"); menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); //Zerujemy wybranoP[id] = false stronaP[id] = 0 // Dane dla taska new data[2] data[0] = id data[1] = menu // Wyswietlamy wyswietlMenu(data) return SS_STOP } public menuCallback(id, menu, item) { new data[3], iName[2]; new zaccess, callback; menu_item_getinfo(menu, item, zaccess, data, charsmax(data), iName, charsmax(iName), callback); return data[1] ? ITEM_ENABLED : ITEM_DISABLED //return ITEM_ENABLED } public wyswietlMenu(data[]) { new id = data[0] if(!is_user_connected(id)) { menu_destroy(data[1]) return } if(!wybranoP[id]) { new menu, newmenu, page player_menu_info(id, menu, newmenu, page) if(newmenu != data[1]) menu_display(id, data[1], stronaP[id]) else stronaP[id] = page set_task(0.1, "wyswietlMenu", TASK_MENU1+id, data, 2) } } public menuHandler(id, menu, item) { if(item == MENU_EXIT) { // Niszczymy menu wybranoP[id] = true menu_destroy(menu) return } if(item >= 0) { // Wybrano odznake wybranoP[id] = true new data[2], iName[2]; new zaccess, callback; menu_item_getinfo(menu, item, zaccess, data, charsmax(data), iName, charsmax(iName), callback); dane[id] = data[0]-1 // Niszczymy menu menu_destroy(menu) ss_show_sms_info(id) } } public ss_service_bought(id, amount) { new badge_id = dane[id]; new badge_level = amount; if( bf2_set_user_badge(id, badge_id, badge_level) == -1 ) return SS_ERROR; new szText[512]; bf2_get_badge_name(badge_id, badge_level, szText, charsmax(szText)); format(szText, charsmax(szText), "<html><body style=^"background-color: #0f0f0f; color: #ccc; font-size: 14px;^"><center><br /><br />\ <h1>Kupiles/as odznake: <span style=^"color: red^">%s</span><br /><br />\ W razie problemow skontaktuj sie z nami.\ </center></body></html>", szText); show_motd(id, szText, "Informacje dotyczace uslugi"); return SS_OK; } public native_filter(const native_name[], index, trap) { if(trap == 0) { register_plugin(PLUGIN, VERSION, AUTHOR); // Rejestrujemy plugin, aby nie bylo na liscie unknown pause_plugin(); return PLUGIN_HANDLED; } return PLUGIN_CONTINUE; }
Mój plugin BF2
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <cstrike>
#include <csx>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <koncowka>
#include <sqlx>
#pragma semicolon 1
#include "bf2/core.inl"
#include "bf2/effect.inl"
#include "bf2/cmds.inl"
#include "bf2/events.inl"
#include "bf2/save.inl"
#include "bf2/forwards.inl"
#include "bf2/check.inl"
#include "bf2/badgepowers.inl"
#include "bf2/menu.inl"
#include "bf2/hud.inl"
#include "bf2/csx.inl"
#include "bf2/ham.inl"
#include "bf2/sql.inl"
public plugin_init( ) {
register_plugin( gPluginInfo[ piNazwa ], gPluginInfo[ piWersja ], gPluginInfo[ piAutor ] );
register_clcmd( "say /ranks", "show_rankhelp", 0, "Pokazuje Informacje o Ranku" );
register_clcmd( "say_team /ranks", "show_rankhelp", 0, "Pokazuje Informacje o Ranku" );
register_clcmd( "say /badges1", "show_badgehelp", 0, "Pokazuje Informacje o Odznakach" );
register_clcmd( "say_team /badges1", "show_badgehelp", 0, "Pokazuje Informacje o Odznakach" );
register_clcmd( "say /odznaki1", "show_badgehelp", 0, "Pokazuje Informacje o Odznakach" );
register_clcmd( "say_team /odznaki1", "show_badgehelp", 0, "Pokazuje Informacje o Odznakach" );
register_clcmd( "say /badges2", "show_badgehelp2", 0, "Pokazuje Informacje o Odznakach 2" );
register_clcmd( "say_team /badges2", "show_badgehelp2", 0, "Pokazuje Informacje o Odznakach 2" );
register_clcmd( "say /odznaki2", "show_badgehelp2", 0, "Pokazuje Informacje o Odznakach 2" );
register_clcmd( "say_team /odznaki2", "show_badgehelp2", 0, "Pokazuje Informacje o Odznakach 2" );
register_clcmd( "say /badges3", "show_badgehelp3", 0, "Pokazuje Informacje o Odznakach 3" );
register_clcmd( "say_team /badges3", "show_badgehelp3", 0, "Pokazuje Informacje o Odznakach 3" );
register_clcmd( "say /odznaki3", "show_badgehelp3", 0, "Pokazuje Informacje o Odznakach 3" );
register_clcmd( "say_team /odznaki3", "show_badgehelp3", 0, "Pokazuje Informacje o Odznakach 3" );
register_clcmd( "say", "cmd_say", 0, "<target> " );
register_clcmd( "say_team", "cmd_say", 0, "<target> " );
register_clcmd( "say /who", "cmd_who", 0, "Wyswietla liste graczy i ich pozimy" );
register_clcmd( "say_team /who", "cmd_who", 0, "Wyswietla liste graczy i ich pozimy" );
register_clcmd( "say /gracze", "cmd_who", 0, "Wyswietla liste graczy i ich pozimy" );
register_clcmd( "say_team /gracze", "cmd_who", 0, "Wyswietla liste graczy i ich pozimy" );
register_clcmd( "say /help", "cmd_help", 0, "Pokaz pomoc BF2Mod" );
register_clcmd( "say_team /help", "cmd_help", 0, "Pokaz pomoc BF2Mod" );
register_clcmd( "say /bf2menu", "Bf2menu", 0, "Pokazuje Menu" );
register_clcmd( "say_team /bf2menu", "Bf2menu", 0, "Pokazuje Menu" );
register_clcmd( "say bf2menu", "Bf2menu", 0, "Pokazuje Menu" );
register_clcmd( "say_team bf2menu", "Bf2menu", 0, "Pokazuje Menu" );
register_clcmd( "say /bf2", "Bf2menu", 0, "Pokazuje Menu" );
register_clcmd( "say_team /bf2", "Bf2menu", 0, "Pokazuje Menu" );
register_clcmd( "say bf2", "Bf2menu", 0, "Pokazuje Menu" );
register_clcmd( "say_team bf2", "Bf2menu", 0, "Pokazuje Menu" );
register_clcmd( "say /menu", "Bf2menu", 0, "Pokazuje Menu" );
register_clcmd( "say_team /menu", "Bf2menu", 0, "Pokazuje Menu" );
register_clcmd( "say menu", "Bf2menu", 0, "Pokazuje Menu" );
register_clcmd( "say_team menu", "Bf2menu", 0, "Pokazuje Menu" );
register_clcmd( "say /help", "Bf2menu", 0, "Pokazuje Menu" );
register_clcmd( "say_team /help", "Bf2menu", 0, "Pokazuje Menu" );
register_clcmd( "say help", "Bf2menu", 0, "Pokazuje Menu" );
register_clcmd( "say_team help", "Bf2menu", 0, "Pokazuje Menu" );
register_clcmd( "say /bf2helpmenu", "helpmenu", 0, "Pokazuje Menu Pomocy" );
register_clcmd( "say_team /bf2helpmenu", "helpmenu", 0, "Pokazuje Menu Pomocy" );
register_clcmd( "say /bf2statsmenu", "helpmenu", 0, "Pokazuje Menu Statystyk" );
register_clcmd( "say_team /bf2statsmenu", "helpmenu", 0, "Pokazuje Menu Statystyk" );
register_clcmd( "say /bf2adminmenu", "adminmenu", 0, "Pokazuje Menu Admina" );
register_clcmd( "say_team /bf2adminmenu", "adminmenu", 0, "Pokazuje Menu Admina" );
register_clcmd( "say /bf2stats", "show_stats", 0, "Pokazuje twoje aktualne statystyki" );
register_clcmd( "say_team /bf2stats", "show_stats", 0, "Pokazuje twoje aktualne statystyki" );
register_clcmd( "say /serverstats", "show_server_stats", 0, "Pokazuje aktualne statystyki serwera" );
register_clcmd( "say_team /serverstats", "show_server_stats", 0, "Pokazuje aktualne statystyki serwera" );
register_clcmd( "say /bf2save", "save_badges", 0, "Zapisuje Aktualne Statystyki" );
register_clcmd( "say_team /bf2save", "save_badges", 0, "Zapisuje Aktualne Statystyki" );
register_clcmd( "bf2_addbadge", "add_badge", ADMIN_LEVEL, "<player> <badge#> <level#>" );
register_clcmd( "bf2_addkills", "add_kills", ADMIN_LEVEL, "<player> <kills#>" );
register_cvar( "bf2_version", gPluginInfo[ piWersja ], FCVAR_SERVER );
set_cvar_string( "bf2_version", gPluginInfo[ piWersja ] );
gPcvar[ ACTIVE ] = register_cvar( "bf2_active", "1" );
gPcvar[ BADGESACTIVE ] = register_cvar( "bf2_badges", "1" );
gPcvar[ FREEAWP ] = register_cvar( "bf2_awp", "0" );
gPcvar[ XPMULTI ] = register_cvar( "bf2_xpmultiplier", "0.1" );
gPcvar[ XPMINI ] = register_cvar( "bf2_xpminplayers", "2" );
gPcvar[ ICONTIME ] = register_cvar( "bf2_icon_time", "1.5" );
gPcvar[ HELPURL ] = register_cvar( "bf2_help_url", "http://bf2.cs-wysypisko.pl");
gPcvar[ BADGESPOWERS ] = register_cvar( "bf2_badgepowers", "1" );
gPcvar[ HUDOPTIONS ] = register_cvar( "bf2_hud_options", "abcde" );
gPcvar[ STATUSTEXT ] = register_cvar( "bf2_statustext", "1" );
gPcvar[ FFA ] = register_cvar( "bf2_ffa", "0" );
gPcvar[ WYMUS ] = register_cvar( "bf2_wymus", "1" );
gPcvar[ SAVETYPE ] = get_cvar_pointer( "csstats_rank" );
gPcvar[ SVLAN ] = get_cvar_pointer( "sv_lan" );
gMsg[ mStatusText ] = get_user_msgid( "StatusText" );
gMsg[ mScreenFade ] = get_user_msgid( "ScreenFade" );
gMsg[ mScreenShake ] = get_user_msgid( "ScreenShake" );
register_event( "HLTV", "Event_HLTV", "a", "1=0", "2=0" );
register_event( "CurWeapon", "Event_CurWeapon", "be", "1=1" );
register_event( "SetFOV", "Event_SetFOV", "be" );
register_event( "DeathMsg", "Event_DeathMsg", "a" );
register_logevent( "LogEvent_Round_Start", 2, "0=World triggered", "1=Round_Start" );
register_logevent( "LogEvent_Round_End", 2, "1=Round_End" );
register_message( SVC_INTERMISSION, "Message_Intermission" );
register_message( get_user_msgid( "StatusValue" ), "Message_StatusValue" );
register_event( "StatusValue", "setTeam", "be", "1=1" );
register_event( "StatusValue", "on_ShowStatus", "be", "1=2", "2!0" );
register_event( "StatusValue", "on_HideStatus", "be", "1=1", "2=0" );
RegisterHam( Ham_Spawn, "player", "Ham_Spawn_Post", 1 );
RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamage_Pre" );
gHudSyncAimInfo = CreateHudSyncObj( );
gPlayerName = get_xvar_id( "PlayerName" );
register_forward( FM_PlayerPreThink, "Bug_Ciche_Chodzenie" );
return PLUGIN_HANDLED;
}
public Bug_Ciche_Chodzenie( id ) {
if( !is_user_alive( id ) )
return FMRES_IGNORED;
new Float:fVector[ 3 ];
pev( id, pev_velocity, fVector );
new Float: fSpeed = floatsqroot( fVector[ 0 ]*fVector[ 0 ]+fVector[ 1 ]*fVector[ 1 ]+fVector[ 2 ]*fVector[ 2 ] );
if( ( fm_get_user_maxspeed( id ) * 5 ) > ( fSpeed*9 ) )
set_pev( id, pev_flTimeStepSound, 999 );
return FMRES_IGNORED;
}
public plugin_natives( ) {
register_library( "battlefield" );
register_native( "bf2_get_user_badge", "_bf2_get_user_badge" );
register_native( "bf2_get_user_rank", "_bf2_get_user_rank" );
register_native( "bf2_get_user_medals", "_bf2_get_user_medals" );
register_native( "bf2_get_user_kills", "_bf2_get_user_kills" );
register_native( "bf2_set_user_badge", "_bf2_set_user_badge" );
register_native( "bf2_set_user_rank", "_bf2_set_user_rank" );
register_native( "bf2_set_user_medals", "_bf2_set_user_medals" );
}
public _bf2_get_user_badge( plugin, params ) {
if( !is_user_connected( get_param( 1 ) ) )
return 404;
return g_PlayerBadges[ get_param( 1 ) ][ get_param( 2 ) ];
}
public _bf2_get_user_rank( plugin, params ) {
if( !is_user_connected( get_param( 1 ) ) )
return 404;
return g_PlayerRank[ get_param( 1 ) ];
}
public _bf2_get_user_medals( plugin, params ) {
if( !is_user_connected( get_param( 1 ) ) )
return 404;
switch( get_param( 2 ) ) {
case MEDAL_BRONZE:
return gPlayerStats[ get_param( 1 ) ][ psBronze ];
case MEDAL_SILVER:
return gPlayerStats[ get_param( 1 ) ][ psSilver ];
case MEDAL_GOLD:
return gPlayerStats[ get_param( 1 ) ][ psGold ];
}
return g_PlayerRank[ get_param( 1 ) ];
}
public _bf2_get_user_kills( plugin, params ) {
if( !is_user_connected( get_param( 1 ) ) )
return 404;
return gPlayerStats[ get_param( 1 ) ][ psTotal ];
}
public _bf2_set_user_badge( plugin, params ) {
if( !is_user_connected( get_param( 1 ) ) )
return 404;
return g_PlayerBadges[ get_param( 1 ) ][ get_param( 2 ) ]=get_param( 3 );
}
public _bf2_set_user_rank( plugin, params ) {
if( !is_user_connected( get_param( 1 ) ) )
return 404;
return g_PlayerRank[ get_param( 1 ) ]=get_param( 2 );
}
public _bf2_set_user_medals( plugin, params ) {
if( !is_user_connected( get_param( 1 ) ) )
return 404;
switch( get_param( 2 ) ) {
case MEDAL_BRONZE:
return gPlayerStats[ get_param( 1 ) ][ psBronze ]=get_param( 3 );
case MEDAL_SILVER:
return gPlayerStats[ get_param( 1 ) ][ psSilver ]=get_param( 3 );
case MEDAL_GOLD:
return gPlayerStats[ get_param( 1 ) ][ psGold ]=get_param( 3 );
}
return g_PlayerRank[ get_param( 1 ) ];
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/