AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Knife Skins (https://forums.alliedmods.net/showthread.php?t=276361)

Sn3amtz 12-20-2015 04:22

Knife Skins
 
Someone Can fix?

Code:

L 12/20/2015 - 11:17:06: [AMXX] Run time error 10: native error (native "get_user_weapon")
L 12/20/2015 - 11:17:06: [AMXX]    [0] 7g80id5l.sma.p::fw_TakeDamage (line 336)
L 12/20/2015 - 11:17:09: Invalid player id 23
L 12/20/2015 - 11:17:09: [AMXX] Displaying debug trace (plugin "Knife-Skins.amxx")


Code:

#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[] = "Asafmazon."


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] =
{
"Normal Knife",
"Colors Knife",
"Transparent Knife",
"Raizo Knife",
"Tipok Knife",
"Eroare Knife",
"Red Knife",
"Heineken Knife",
"Green Knife",
"Bog Knife",
"Black Knife",
"Adidas Knife",
"Blue Knife",
"RedBlack Knife"
};

new const g_KnifevModels[][256] =
{
"models/v_knife.mdl",
"models/ALBASTREL/v_1.mdl",
"models/ALBASTREL/v_2.mdl",
"models/ALBASTREL/v_3.mdl",
"models/ALBASTREL/v_4.mdl",
"models/ALBASTREL/v_5.mdl",
"models/ALBASTREL/v_6.mdl",
"models/ALBASTREL/v_7.mdl",
"models/ALBASTREL/v_8.mdl",
"models/ALBASTREL/v_9.mdl",
"models/ALBASTREL/v_10.mdl",
"models/ALBASTREL/v_11.mdl",
"models/ALBASTREL/v_12.mdl",
"models/ALBASTREL/v_13.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/ALBASTREL/v_1.mdl") 
        precache_model("models/ALBASTREL/v_2.mdl") 
        precache_model("models/ALBASTREL/v_3.mdl")
        precache_model("models/ALBASTREL/v_4.mdl")
        precache_model("models/ALBASTREL/v_5.mdl")
        precache_model("models/ALBASTREL/v_6.mdl")
        precache_model("models/ALBASTREL/v_7.mdl")
        precache_model("models/ALBASTREL/v_8.mdl")
        precache_model("models/ALBASTREL/v_9.mdl")
        precache_model("models/ALBASTREL/v_10.mdl")
        precache_model("models/ALBASTREL/v_11.mdl")
        precache_model("models/ALBASTREL/v_12.mdl")
        precache_model("models/ALBASTREL/v_13.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], szColors[50], szTransparent[50], szRaizo[50], szTipok[50], szEroare[50], szRed[50], szHeineken[50], szGreen[50], szBog[50], szBlack[50],
        szAdidas[50], szBlue[50], szRedBlack[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(szColors, charsmax(szColors),"%s", iLevel[id] >= 1 ? "\wColors Knife [\yUNLOCKED\w]" : "\d???? ????? [\rLEVEL 1 REQUIRE\d]");
        formatex(szTransparent, charsmax(szTransparent),"%s", iLevel[id] >= 2 ? "\wTransparent Knife [\yUNLOCKED\w]" : "\d?????? ?????? [\rLEVEL 2 REQUIRE\d]");
        formatex(szRaizo, charsmax(szRaizo),"%s", iLevel[id] >= 3 ? "\wRaizo Knife [\yUNLOCKED\w]" : "\d???? ?????? [\rLEVEL 3 REQUIRE\d]");
        formatex(szTipok, charsmax(szTipok),"%s", iLevel[id] >= 4 ? "\wTipok Knife [\yUNLOCKED\w]" : "\d??????????? ????? [\rLEVEL 4 REQUIRE\d]");
        formatex(szEroare, charsmax(szEroare),"%s", iLevel[id] >= 5 ? "\wEroare Knife [\yUNLOCKED\w]" : "\d??????? ?????? [\rLEVEL 5 REQUIRE\d]");
        formatex(szRed, charsmax(szRed),"%s", iLevel[id] >= 6 ? "\wRed Knife [\yUNLOCKED\w]" : "\d???? ????? [\rLEVEL 6 REQUIRE\d]");
        formatex(szHeineken, charsmax(szHeineken),"%s", iLevel[id] >= 7 ? "\wHeineken Knife [\yUNLOCKED\w]" : "\d?????? ????? [\rLEVEL 7 REQUIRE\d]");
        formatex(szGreen, charsmax(szGreen),"%s", iLevel[id] >= 8 ? "\wGreen Knife [\yUNLOCKED\w]" : "\d??????????? ??? [\rLEVEL 8 REQUIRE\d]");
        formatex(szBog, charsmax(szBog),"%s", iLevel[id] >= 9 ? "\waBog Knife [\yUNLOCKED\w]" : "\d?????? ?????? [\rLEVEL 9 REQUIRE\d]");
        formatex(szBlack, charsmax(szBlack),"%s", iLevel[id] >= 10 ? "\wBlack Knife [\yUNLOCKED\w]" : "\d???????? ????? [\rLEVEL 10 REQUIRE\d]");
        formatex(szAdidas, charsmax(szAdidas),"%s", iLevel[id] >= 11 ? "\wAdidas Knife [\yUNLOCKED\w]" : "\d?????????? [\rLEVEL 11 REQUIRE\d]");
        formatex(szBlue, charsmax(szBlue),"%s", iLevel[id] >= 12 ? "\wBlue Knife [\yUNLOCKED\w]" : "\d?????? ????????? ????? [\rLEVEL 12 REQUIRE\d]");
        formatex(szRedBlack, charsmax(szRedBlack),"%s", iLevel[id] >= 13 ? "\wRedBlack Knife [\yUNLOCKED\w]" : "\d?????? ??? [\rLEVEL 13 REQUIRE\d]");
       
        new menu = menu_create( szItem, "KnifeSkinsMenu_Handler" );
        menu_additem(menu, "\wNormal Knife [\yUNLOCKED\w]", "", 0 );
        menu_additem(menu, szColors, "", iLevel[id] >= 1 ? 0 : 1);
        menu_additem(menu, szTransparent, "", iLevel[id] >= 2 ? 0 : 1);
        menu_additem(menu, szRaizo, "", iLevel[id] >= 3 ? 0 : 1);
        menu_additem(menu, szTipok, "", iLevel[id] >= 4 ? 0 : 1);
        menu_additem(menu, szEroare, "", iLevel[id] >= 5 ? 0 : 1);
        menu_additem(menu, szRed, "", iLevel[id] >= 6 ? 0 : 1);
        menu_additem(menu, szHeineken, "", iLevel[id] >= 7 ? 0 : 1);
        menu_additem(menu, szGreen, "", iLevel[id] >= 8 ? 0 : 1);
        menu_additem(menu, szBog, "", iLevel[id] >= 9 ? 0 : 1);
        menu_additem(menu, szBlack, "", iLevel[id] >= 10 ? 0 : 1);
        menu_additem(menu, szAdidas, "", iLevel[id] >= 11 ? 0 : 1);
        menu_additem(menu, szBlue, "", iLevel[id] >= 12 ? 0 : 1);
        menu_additem(menu, szRedBlack, "", 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[i]] > 0 ? iLevel[players[i]] : 1;
               
                new xp = level * StartedLevel;
               
                if( iLevel[players[i]] > 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[i]), iLevel[players[i]], iXp[players[i]], xp);
                num_to_str(players[i],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, "Type ^3/knife ^1in chat to open the ^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[i] ) )
                {
                        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 }
*/


Depresie 12-20-2015 05:14

Re: Knife Skins
 
mhmm, strange, try to replace is_valid_player with is_user_alive see if it happens again

Sn3amtz 12-20-2015 05:34

Re: Knife Skins
 
L 12/20/2015 - 12:31:48: [AMXX] Run time error 10: native error (native "set_task")
L 12/20/2015 - 12:31:48: [AMXX] [0] ra25yg6h.sma.p::plugin_init (line 119)

Kakarot47 12-20-2015 10:28

Re: Knife Skins
 
put this line between 331 to 340
PHP Code:

public fw_TakeDamage(victiminflictorattackerFloat:damage)
{
    if( 
get_pcvar_numknife_on ) == )
        return 
HAM_IGNORED;
    
    if( 
is_valid_playervictim ) && get_user_weapon(attacker) == CSW_KNIFE )
    {
        
SetHamParamFloat(4damage knife_model[attacker]);
        
        return 
HAM_HANDLED


Sn3amtz 12-20-2015 10:43

Re: Knife Skins
 
Fixed Thanks

Code:

public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
{
    if(get_pcvar_num(knife_on))
    {
        if(is_valid_player(attacker) && get_user_weapon(attacker) == CSW_KNIFE && knife_model[attacker])
        {
            SetHamParamFloat(4, damage + knife_model[attacker])
            return PLUGIN_HANDLED;   
        }
    }
}



All times are GMT -4. The time now is 18:09.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.