Asta e eroarea :
Knife-Skins.sma(366) : error 001: expected token: ")", but found ","
Knife-Skins.sma(367) : error 017: undefined symbol "szTactical"
Knife-Skins.sma(367) : error 072: "sizeof" operator is invalid on "function" symbols
Knife-Skins.sma(367) : error 029: invalid expression, assumed zero
Knife-Skins.sma(367) : fatal error 107: too many error messages on one line
Uitati sma:
- | Afiseaza codul
#include <amxmodx> #include <amxmisc> #include <engine> #include <vault> #include <hamsandwich> #include <fvault> #pragma tabsize 0 #define is_valid_player(%1) (1 <= %1 <= 32) new knife_model[33]; new const g_VAULTNAME[] = "Knife-Skins"; new const VERSION[] = "2.2" new const AUTHOR[] = "Tsurugi :#" new iLevel[33]; new iXp[33]; new knife_on; new MaxLevel; new StartedLevel; new cvar_KillXp; new cvar_HsXp; new cvar_KnifeXp; new Forward_spawn; new Forward_levelup; new ForwardReturn; new const g_KnifeNames[][32] = { "Tactical Knife", "Winner Knife", "Transparent Knife", "Wolwarine Knife", "Black Knife", "Hammer Knife", "Lumine Knife", "Saber Knife", "Ciocan Knife", "Blade Knife", "Dagger Knife", "Deadric Knife", "Wooden Knife", "Final Knife" }; new const g_KnifevModels[][256] = { "models/v_knife.mdl", "models/Knifes/v_knife_winner.mdl", "models/Knifes/v_knife_transparent.mdl", "models/Knifes/v_knife_wolwarine.mdl", "models/Knifes/v_knife_black.mdl", "models/Knifes/v_knife_hammer.mdl", "models/Knifes/v_knife_lumine.mdl", "models/Knifes/v_knife_saber.mdl", "models/Knifes/v_knife_ciocan.mdl", "models/Knifes/v_knife_blade.mdl", "models/Knifes/v_knife_dagger.mdl", "models/Knifes/v_knife_deadric.mdl", "models/Knifes/v_knife_wooden.mdl", "models/Knifes/v_knife_final.mdl" } native register_maxlevels( maxlevel = 99, started_xp_level = 100 ); native get_user_level( index ); native get_user_xp( index ); public plugin_init() { register_plugin(g_VAULTNAME, VERSION, AUTHOR); register_cvar("knife_skins", VERSION, FCVAR_SERVER); // Find Servers on Game-Monitor set_cvar_string("knife_skins", VERSION); // Find Servers on Game-Monitor // register max levels 13 is the top level, 100 is the started level xp. register_maxlevels( 13, 100 ); //Admin commands register_concmd("knife_givexp" ,"givexp",ADMIN_RCON,"Add xp to a player") register_concmd("knife_takexp", "takexp",ADMIN_RCON,"Remove xp from a player") //Clcmd's knife_on = register_cvar( "knife_skins", "1" ); register_clcmd("say","HandleSay"); register_clcmd("say_team","HandleSay") register_clcmd("say /knife", "KnifeSkinsMenu"); register_clcmd("say /level", "PlayerLevelsMenu"); //Event's register_event("CurWeapon","CurWeapon","be","1=1"); register_event( "DeathMsg", "EventDeathMsg", "a" ); //Cvar's cvar_KillXp = register_cvar( "kill_xp", "5" ); cvar_HsXp = register_cvar( "hs_xp", "2" ); cvar_KnifeXp = register_cvar( "knife_xp", "3" ); //Ham's RegisterHam( Ham_Spawn, "player", "FwdPlayerSpawn", 1 ); RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage") //Forward's Forward_levelup = CreateMultiForward( "forward_client_levelup", ET_IGNORE, FP_CELL, FP_CELL, FP_CELL ); Forward_spawn = CreateMultiForward( "forward_client_spawn", ET_IGNORE, FP_CELL , FP_CELL, FP_CELL ); set_task(15.0, "Knifemessage", 0, _, _, "b") set_task(35.0, "Levelmessage", 0, _, _, "b") } public plugin_precache() { precache_model("models/Knifes/v_knife_winner.mdl") precache_model("models/Knifes/v_knife_transparent.mdl") precache_model("models/Knifes/v_knife_wolwarine.mdl") precache_model("models/Knifes/v_knife_black.mdl") precache_model("models/Knifes/v_knife_hammer.mdl") precache_model("models/Knifes/v_knife_lumine.mdl") precache_model("models/Knifes/v_knife_saber.mdl") precache_model("models/Knifes/v_knife_ciocan.mdl") precache_model("models/Knifes/v_knife_blade.mdl") precache_model("models/Knifes/v_knife_dagger.mdl") precache_model("models/Knifes/v_knife_deadric.mdl") precache_model("models/Knifes/v_knife_wooden.mdl") precache_model("models/Knifes/v_knife_final.mdl") } public plugin_natives( ) { //Native's register_library( "Knife-Skins" ); register_native( "register_maxlevels", "_register_maxlevels" ); register_native( "get_user_level", "_get_user_level" ); register_native( "set_user_level", "_set_user_level" ); register_native( "get_user_xp", "_get_user_xp" ); register_native( "set_user_xp", "_set_user_xp" ); } public _register_maxlevels( plugin, params ) { if( MaxLevel != 0 && StartedLevel != 0 ) { return; } else { MaxLevel = get_param( 1 ); StartedLevel = get_param( 2 ); } } public _get_user_level( plugin, params ) { return iLevel[ get_param( 1 ) ]; } public _set_user_level( plugin, params ) { iLevel[ get_param( 1 ) ] = max( get_param( 2 ), MaxLevel ); FlsahLevelUp( get_param( 1 ) ); SaveData( get_param( 1 ) ); LoadData( get_param( 1 ) ); } public _get_user_xp( plugin, params ) { return iXp[ get_param( 1 ) ]; } public _set_user_xp( plugin, params ) { iXp[ get_param( 1 ) ] = get_param( 2 ); CheckLevel( get_param( 1 ) ); SaveData( get_param( 1 ) ); LoadData( get_param( 1 ) ); } public CheckLevel( id ) { if( iLevel[id] == MaxLevel ) { return; } else { new level = iLevel[id] > 0 ? iLevel[id] : 1; new xp = level * StartedLevel; if( iLevel[id] > 0 ) { xp += ( xp * 4 / 2 ); } while( iXp[id] >= xp ) { iLevel[id]++; ColorChat(id,"^4Congratulations!^1 You'r have level up! You'r new^4 LEVEL^1 is: ^3%i^1.", iLevel[id]); ColorChat(0,"^3%s^1 has level up to^4 LEVEL^3 %i^1!",get_player_name(id), iLevel[id]); FlsahLevelUp(id); ExecuteForward( Forward_levelup, ForwardReturn, id, iLevel[id], iXp[id] ); SaveData( id ); CheckLevel( id ); break; } } } public FlsahLevelUp( id ) { message_begin( MSG_ONE, get_user_msgid( "ScreenFade" ), { 0, 0, 0}, id ); write_short( 1 << 10 ); write_short( 1 << 10 ); write_short( 0 ); write_byte( 0 ); write_byte( 255 ); write_byte( 215 ); write_byte( 100 ); message_end( ); } public HandleSay(id){ if (get_pcvar_num(knife_on) == 0) { ColorChat(id, "The mod has been disabale."); return PLUGIN_HANDLED; } new iMsg[200], iArgs[4][60]; new level = iLevel[id] > 0 ? iLevel[id] : 1; new xp = level * StartedLevel; if( iLevel[id] > 0 ) { xp += ( xp * 4 / 2 ); } read_argv(1,iMsg ,sizeof iMsg - 1); parse(iMsg,iArgs[0],charsmax(iArgs[]),iArgs[1],charsmax(iArgs[]),iArgs[2],charsmax(iArgs[]),iArgs[3],charsmax(iArgs[])); if (equali(iArgs[0],"/level") || equali(iArgs[0],"/lvl") || equali(iArgs[0],"/xp")) { new player = cmd_target(id,iArgs[1],CMDTARGET_NO_BOTS); if (!player) { ColorChat( id, "Your^4 LEVEL^1 is:^3 %i^4 |^1 Your^4 XP^1 is:^3 %i^1/^3%i^1.", iLevel[id], iXp[id], xp ); } } return 0; } public EventDeathMsg(id) { if (get_pcvar_num(knife_on) == 0) return PLUGIN_HANDLED; new killer = read_data( 1 ); new victim = read_data( 2 ); if( killer == victim || ! is_user_connected( killer ) || ! is_user_connected( victim ) ) { return PLUGIN_HANDLED; //return; } new XpAmount = get_pcvar_num( cvar_KillXp ); if( read_data( 3 ) ) { XpAmount += get_pcvar_num( cvar_HsXp ); } static sWeapon[ 26 ]; read_data( 4, sWeapon, sizeof( sWeapon ) - 1 ); if( equal( sWeapon, "knife" ) ) { XpAmount += get_pcvar_num( cvar_KnifeXp ); } iXp[ killer ] += XpAmount; CheckLevel( killer ); SaveData( killer ); ColorChat( killer, "You have gained^3 %i^1 XP.", XpAmount ); return PLUGIN_HANDLED; } public FwdPlayerSpawn( id ) { ExecuteForward( Forward_spawn, ForwardReturn, id, iLevel[id], iXp[id] ); } public fw_TakeDamage(victim, inflictor, attacker, Float:damage) { if( get_pcvar_num( knife_on ) == 0 ) return HAM_IGNORED; if( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_KNIFE ) { SetHamParamFloat(4, damage + knife_model[attacker]); return HAM_HANDLED; } return HAM_IGNORED; } public KnifeSkinsMenu(id) { if (get_pcvar_num(knife_on) == 0) { ColorChat(id, "The mod has been disabale."); return PLUGIN_HANDLED; } new szItem[256], szAlien[50], szEllium[50], szDark[50], szTransparent[50], szGenuine[50], szHunt[50], szShadow[50], szSlaughterer[50], szKatana[50], szAssasins[50], szLightsaber[50], szWolverine[50], szProton[50]; new level = iLevel[id] > 0 ? iLevel[id] : 1; new xp = level * StartedLevel; if( iLevel[id] > 0 ) { xp += ( xp * 4 / 2 ); } formatex(szItem, charsmax(szItem, "\w[ \r%s \w] \yKnife Skins Menu \rv%s^n\yYour Level: \r%d \w- \yYour XP: \r%d\w/\r%d\w.^n\yPage:\r", g_VAULTNAME, VERSION,iLevel[id],iXp[id], xp); formatex(szTactical, charsmax(szTactical),"%s", iLevel[id] >= 1 ? "\wTactical Knife [\yUNLOCKED\w]" : "\d???? ????? [\rLEVEL 1 REQUIRE\d]"); formatex(szWinner, charsmax(szWinner),"%s", iLevel[id] >= 2 ? "\wWinner Knife [\yUNLOCKED\w]" : "\d?????? ?????? [\rLEVEL 2 REQUIRE\d]"); formatex(szTransparent, charsmax(szTransparent),"%s", iLevel[id] >= 3 ? "\wTransparent Knife [\yUNLOCKED\w]" : "\d???? ?????? [\rLEVEL 3 REQUIRE\d]"); formatex(szWolwarine, charsmax(szWolwarine),"%s", iLevel[id] >= 4 ? "\wWolwarine Knife[\yUNLOCKED\w]" : "\d??????????? ????? [\rLEVEL 4 REQUIRE\d]"); formatex(szBlack, charsmax(szBlack),"%s", iLevel[id] >= 5 ? "\wBlack Knife [\yUNLOCKED\w]" : "\d??????? ?????? [\rLEVEL 5 REQUIRE\d]"); formatex(szHammer, charsmax(szHammer),"%s", iLevel[id] >= 6 ? "\wHammer Knife [\yUNLOCKED\w]" : "\d???? ????? [\rLEVEL 6 REQUIRE\d]"); formatex(szLumine, charsmax(szLumine,"%s", iLevel[id] >= 7 ? "\wLumine Knife [\yUNLOCKED\w]" : "\d?????? ????? [\rLEVEL 7 REQUIRE\d]"); formatex(szSaber, charsmax(szSaber),"%s", iLevel[id] >= 8 ? "\wSaber Knife [\yUNLOCKED\w]" : "\d??????????? ??? [\rLEVEL 8 REQUIRE\d]"); formatex(szCiocan, charsmax(szCiocan),"%s", iLevel[id] >= 9 ? "\wCiocan Knife [\yUNLOCKED\w]" : "\d?????? ?????? [\rLEVEL 9 REQUIRE\d]"); formatex(szBlade, charsmax(szBlade),"%s", iLevel[id] >= 10 ? "\wBlade Knife [\yUNLOCKED\w]" : "\d???????? ????? [\rLEVEL 10 REQUIRE\d]"); formatex(szDagger, charsmax(szDagger),"%s", iLevel[id] >= 11 ? "\wDagger Knife [\yUNLOCKED\w]" : "\d?????????? [\rLEVEL 11 REQUIRE\d]"); formatex(szDeadric, charsmax(szDeadric),"%s", iLevel[id] >= 12 ? "\wDeadric Knife [\yUNLOCKED\w]" : "\d?????? ????????? ????? [\rLEVEL 12 REQUIRE\d]"); formatex(szFinal, charsmax(szFinal),"%s", iLevel[id] >= 13 ? "\wFinal Knife [\yUNLOCKED\w]" : "\d?????? ??? [\rLEVEL 13 REQUIRE\d]"); new menu = menu_create( szItem, "KnifeSkinsMenu_Handler" ); menu_additem(menu, "\wTactical Knife [\yUNLOCKED\w]", "", 0 ); menu_additem(menu, szWinner, "", iLevel[id] >= 1 ? 0 : 1); menu_additem(menu, szTransparent, "", iLevel[id] >= 2 ? 0 : 1); menu_additem(menu, szWolwarine, "", iLevel[id] >= 3 ? 0 : 1); menu_additem(menu, szBlack, "", iLevel[id] >= 4 ? 0 : 1); menu_additem(menu, szHammer, "", iLevel[id] >= 5 ? 0 : 1); menu_additem(menu, szLumine, "", iLevel[id] >= 6 ? 0 : 1); menu_additem(menu, szSaber, "", iLevel[id] >= 7 ? 0 : 1); menu_additem(menu, szCiocan, "", iLevel[id] >= 8 ? 0 : 1); menu_additem(menu, szBlade, "", iLevel[id] >= 9 ? 0 : 1); menu_additem(menu, szDagger, "", iLevel[id] >= 10 ? 0 : 1); menu_additem(menu, szDeadric, "", iLevel[id] >= 11 ? 0 : 1); menu_additem(menu, szWooden, "", iLevel[id] >= 12 ? 0 : 1); menu_additem(menu, szFinal, "", iLevel[id] >= 13 ? 0 : 1); menu_setprop(menu, MPROP_EXIT, MEXIT_ALL ); menu_display(id, menu, 0 ); return PLUGIN_HANDLED; } public KnifeSkinsMenu_Handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } SetKnife(id, item); ColorChat(id, "The knife you chose is: ^4%s^1.", g_KnifeNames[item]); SaveData(id); return PLUGIN_HANDLED; } public SetKnife(id, item) { knife_model[id] = item new Clip, Ammo, Weapon = get_user_weapon(id, Clip, Ammo) if ( Weapon != CSW_KNIFE ) return PLUGIN_HANDLED new vModel[56],pModel[56] if (get_pcvar_num(knife_on) == 0) { format(vModel,55,"models/v_knife.mdl") return PLUGIN_HANDLED; } format(vModel,55, g_KnifevModels[item]) format(pModel,55,"models/p_knife.mdl") entity_set_string(id, EV_SZ_viewmodel, vModel) entity_set_string(id, EV_SZ_weaponmodel, pModel) return PLUGIN_HANDLED; } public PlayerLevelsMenu(id) { if (get_pcvar_num(knife_on) == 0) { ColorChat(id, "The mod has been disabale."); return PLUGIN_HANDLED; } new some[256], menu; static players[32],szTemp[10],pnum; get_players(players,pnum,"ch"); formatex(some,255,"\w[ \r%s \w] \yPlayer's Level:\r", g_VAULTNAME); menu = menu_create(some,"PlayerLevelsMenu_Handler"); for (new i; i < pnum; i++) { new level = iLevel[players] > 0 ? iLevel[players] : 1; new xp = level * StartedLevel; if( iLevel[players] > 0 ) { xp += ( xp * 4 / 2 ); } formatex(some,256,"%s \y(Level: \r%i\y) \w- \y(XP: \r%i\w/\r%i\y)",get_player_name(players), iLevel[players], iXp[players], xp); num_to_str(players,szTemp,charsmax(szTemp)); menu_additem(menu, some, szTemp); } menu_setprop(menu, MPROP_EXIT, MEXIT_ALL ); menu_display(id, menu); return PLUGIN_HANDLED; } public PlayerLevelsMenu_Handler(id,menu, item){ if (item == MENU_EXIT) { menu_destroy(menu); return; } new data[6] ,szName[64],access,callback; menu_item_getinfo(menu, item, access, data, charsmax(data), szName, charsmax(szName), callback); new player = str_to_num(data); new level = iLevel[player] > 0 ? iLevel[player] : 1; new xp = level * StartedLevel; if( iLevel[player] > 0 ) { xp += ( xp * 4 / 2 ); } ColorChat(id,"^3%s's ^4LEVEL ^1is: ^3%i ^1with ^3%i^1/^3%i ^4XP^1.",get_player_name(player), iLevel[player], iXp[player], xp); PlayerLevelsMenu(id); } public CurWeapon(id) { // Set Knife Model SetKnife(id, knife_model[id]) } public givexp(id) { if (get_pcvar_num(knife_on) == 0) { ColorChat(id, "The mod has been disabale."); return PLUGIN_HANDLED; } if( get_user_flags( id ) & ADMIN_RCON ) { new PlayerToGive[32], XP[32] read_argv(1,PlayerToGive,31) read_argv(2,XP, 31) new Player = cmd_target(id,PlayerToGive,9) if(!Player) { return PLUGIN_HANDLED } new XPtoGive = str_to_num(XP) new name[32],owner[32] get_user_name(id,owner,31) get_user_name(Player,name,31) ColorChat(0,"^4ADMIN^3 %s^1 give to^4 %s^3 %s^1 XP.", owner,name,XP ); iXp[Player]+= XPtoGive CheckLevel(Player); SaveData(id) } else { client_print(id,print_console,"You have no acces to that command") return PLUGIN_HANDLED } return PLUGIN_HANDLED; } public takexp(id) { if (get_pcvar_num(knife_on) == 0) { ColorChat(id, "The mod has been disabale."); return PLUGIN_HANDLED; } if(get_user_flags(id) & ADMIN_RCON ) { new PlayerToTake[32], XP[32] read_argv(1,PlayerToTake,31 ) read_argv(2,XP,31 ) new Player = cmd_target(id,PlayerToTake,9) if(!Player) { return PLUGIN_HANDLED } new XPtoTake = str_to_num(XP) new name[32],owner[32] get_user_name(id,owner,31) get_user_name(Player,name,31) ColorChat(0,"^4ADMIN^3 %s^1 take to^4 %s^3 %s^1 XP.", owner,name,XP ); iXp[ Player ]-=XPtoTake CheckLevel(Player); SaveData(id) } else { client_print(id,print_console,"You have no acces to that command.") return PLUGIN_HANDLED } return PLUGIN_HANDLED; } public client_disconnect(id) { if(task_exists(id)){ remove_task(id) } SaveData(id); } public Knifemessage(id) { if (get_pcvar_num(knife_on) == 0) return PLUGIN_HANDLED; ColorChat(0, "Scrie ^3/knife ^1in pentru a selecta ^4Knife Skins Menu^1."); ColorChat(0, "This server is running ^4%s ^3v%s^1 by ^4%s^1.",g_VAULTNAME, VERSION, AUTHOR) return PLUGIN_HANDLED; } public Levelmessage(id) { if (get_pcvar_num(knife_on) == 0) return PLUGIN_HANDLED; ColorChat(0,"To see other ^4Players Level ^1type ^3/level ^1in chat."); return PLUGIN_HANDLED; } public client_putinserver(id) LoadData(id); public SaveData(id){ new authid[32] get_user_authid(id, authid, 31) new vaultkey[64] new vaultdata[64] format(vaultkey, 63, "KNIFEMOD_%s", authid) format(vaultdata, 63, "%d", knife_model[id]) set_vaultdata(vaultkey, vaultdata) new data[ 16 ]; get_user_authid( id, authid, sizeof( authid ) - 1 ); formatex( data, sizeof( data ) - 1, "%d %d", iLevel[id], iXp[id] ); fvault_set_data(g_VAULTNAME, authid, data ); return; } public LoadData(id){ new authid[32] get_user_authid(id,authid,31) new vaultkey[64], vaultdata[64] format(vaultkey, 63, "KNIFEMOD_%s", authid) get_vaultdata(vaultkey, vaultdata, 63) knife_model[id] = str_to_num(vaultdata) new data[ 16 ], szLevel[ 8 ], szXp[ 8 ]; get_user_authid( id, authid, sizeof( authid ) - 1 ); if( fvault_get_data(g_VAULTNAME, authid, data, sizeof( data ) - 1 ) ) { strbreak( data, szLevel, sizeof( szLevel ) - 1, szXp, sizeof( szXp ) - 1 ); iLevel[id] = str_to_num( szLevel ); iXp[id] = str_to_num( szXp ); return; } else { iLevel[id] = 0; iXp[id] = 0; return; } } stock get_player_name(id){ static szName[32]; get_user_name(id,szName,31); return szName; } stock ColorChat( const id, const string[ ], { Float, Sql, Resul, _ } : ... ) { new msg[ 191 ], players[ 32 ], count = 1; static len; len = formatex( msg, charsmax( msg ), "^x04[^x01 Knife-Skins^x04 ]^x01 " ); vformat( msg[ len ], charsmax( msg ) - len, string, 3 ); if( id ) players[ 0 ] = id; else get_players( players,count,"ch" ); for( new i = 0; i < count; i++ ) { if( is_user_connected( players ) ) { message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _ , players[ i ] ); write_byte( players[ i ] ); write_string( msg ); message_end( ); } } } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ fbidis\\ ansi\\ ansicpg1252\\ deff0{\\ fonttbl{\\ f0\\ fnil\\ fcharset0 Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ ltrpar\\ lang1033\\ f0\\ fs16 \n\\ par } */