Raised This Month: $ Target: $400
 0% 

Problem on my plugin


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Eviatar Mor
Senior Member
Join Date: Jun 2014
Location: israel
Old 07-29-2014 , 15:56   Re: Problem on my plugin
Reply With Quote #1

Quote:
Originally Posted by MrKiller2010 View Post
My code shouldn't effect server crash...
Test run with your edited code not mine and see if it crashes.


Here is a optimized code:

PHP 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 Scout_model[33];

new const 
g_VAULTNAME[] = "Scout-Skins";
new const 
VERSION[] = "2.2"  
new const AUTHOR[] = "SerMajor"  


new iLevel[33];
new 
iXp[33];

new 
scout_on;

new 
MaxLevel;
new 
StartedLevel;
new 
g_msgSayText;

new 
cvar_KillXp;
new 
cvar_HsXp;
new 
cvar_ScoutXp;

new 
Forward_spawn;
new 
Forward_levelup;
new 
ForwardReturn;

const 
MAX_SCOUTS 12

new const g_scoutNames[MAX_SCOUTS][32] =
{
"Normal Scout",
"yellow Scout",
"steyr scout",
"sig sauer sg3000 scout",
"safari scout",
"pharaoh scout",
"komando steyrscout scout",
"default scout reskin gtwalq",
"crossbow scout",
"blue scout",
"badass m24 scout",
"ak scout"
};

new const 
g_scoutLevels[MAX_SCOUTS] = { 01234567891011 }

new const 
g_scoutvModels[MAX_SCOUTS][256] =
{
"models/v_scout.mdl",
"models/lolscouthnr/v_scout_yellow.mdl",
"models/lolscouthnr/v_scout_steyr.mdl",
"models/lolscouthnr/v_scout_sg3000.mdl",
"models/lolscouthnr/v_scout_safari.mdl",
"models/lolscouthnr/v_scout_pharaoh.mdl",
"models/lolscouthnr/v_scout_komando.mdl",
"models/lolscouthnr/v_scout_default.mdl",
"models/lolscouthnr/v_scout_crossbow.mdl",
"models/lolscouthnr/v_scout_blue.mdl",
"models/lolscouthnr/v_scout_badass.mdl",
"models/lolscouthnr/v_scout_ak.mdl"
}

native register_maxlevelsmaxlevel 99started_xp_level 100 );
native get_user_levelindex );
native get_user_xpindex );

public 
plugin_init() {  

register_plugin(g_VAULTNAMEVERSIONAUTHOR);
register_cvar("scout_skins"VERSIONFCVAR_SERVER); // Find Servers on Game-Monitor
set_cvar_string("scout_skins"VERSION); // Find Servers on Game-Monitor

// register max levels 13 is the top level, 100 is the started level xp.
register_maxlevels13100 );

//Admin commands

register_concmd("scout_givexp" ,"givexp",ADMIN_RCON,"Add xp to a player")
register_concmd("scout_takexp""takexp",ADMIN_RCON,"Remove xp from a player")

//Clcmd's

scout_on register_cvar"Scout_skins""1" )

register_clcmd("say","HandleSay");  
register_clcmd("say_team","HandleSay")
register_clcmd("say /scout""ScoutSkinsMenu");
register_clcmd("say /level""PlayerLevelsMenu");

//logevent
register_logevent("eventRoundEnd"2"1=Round_End"

//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_ScoutXp register_cvar"Scout_xp""3" );

//Ham's

RegisterHamHam_Spawn"player""FwdPlayerSpawn");
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")

//Forward's

Forward_levelup CreateMultiForward"forward_client_levelup"ET_IGNOREFP_CELLFP_CELLFP_CELL );
Forward_spawn CreateMultiForward"forward_client_spawn"ET_IGNOREFP_CELL FP_CELLFP_CELL );

set_task(15.0"scoutmessage"0__"b")
set_task(35.0"Levelmessage"0__"b")

g_msgSayText get_user_msgid("SayText");
}  

public 
plugin_precache() {  

precache_model("models/lolscouthnr/v_scout_yellow.mdl")  
precache_model("models/lolscouthnr/v_scout_steyr.mdl")  
precache_model("models/lolscouthnr/v_scout_sg3000.mdl")  
precache_model("models/lolscouthnr/v_scout_safari.mdl")  
precache_model("models/lolscouthnr/v_scout_pharaoh.mdl")  
precache_model("models/lolscouthnr/v_scout_komando.mdl")  
precache_model("models/lolscouthnr/v_scout_default.mdl")  
precache_model("models/lolscouthnr/v_scout_crossbow.mdl")  
precache_model("models/lolscouthnr/v_scout_blue.mdl")  
precache_model("models/lolscouthnr/v_scout_badass.mdl")  
precache_model("models/lolscouthnr/v_scout_ak.mdl")  

}

public 
plugin_natives( )
{
//Native's

register_library"scout-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_maxlevelspluginparams )
{
if( 
MaxLevel != && StartedLevel != )
{
return;
}
else
{
MaxLevel get_param);
StartedLevel get_param);
}
}

public 
_get_user_levelpluginparams )
{
return 
iLevelget_param) ];
}

public 
_set_user_levelpluginparams )
{
iLevelget_param) ] = maxget_param), MaxLevel );

FlsahLevelUpget_param) );

SaveDataget_param) );

LoadDataget_param) );
}

public 
_get_user_xppluginparams )
{
return 
iXpget_param) ];
}

public 
_set_user_xppluginparams )
{
iXpget_param) ] = get_param);

CheckLevelget_param) );

SaveDataget_param) );

LoadDataget_param) );
}

public 
CheckLevelid )
{
if( 
iLevel[id] == MaxLevel )
{
return;
}
else
{
new 
level iLevel[id] > iLevel[id] : 1;

new 
xp level StartedLevel;

if( 
iLevel[id] > )
{
    
xp +=  ( xp );
}

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);
    
    
ExecuteForwardForward_levelupForwardReturnidiLevel[id], iXp[id] );
    
    
SaveDataid );
    
    
CheckLevelid );
    
    break;
}
}
}

public 
FlsahLevelUpid )
{
message_beginMSG_ONEget_user_msgid"ScreenFade" ), { 000}, id );
write_short<< 10 );
write_short<< 10 );
write_short);
write_byte);
write_byte255 );
write_byte215 );
write_byte100 );
message_end( );
}


public 
HandleSay(id){

if (
get_pcvar_num(scout_on) == 0)
{
ColorChat(id"The mod has been disabale.");
return 
PLUGIN_HANDLED;
}

new 
iMsg[200], iArgs[4][60];  
new 
level iLevel[id] > iLevel[id] : 1;

new 
xp level StartedLevel;

if( 
iLevel[id] > )
{
xp +=  ( xp );
}

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)  
{  
    
ColorChatid"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(scout_on) == 0)
return 
PLUGIN_HANDLED;

new 
killer read_data);
new 
victim read_data);

if( 
killer == victim || ! is_user_connectedkiller ) || ! is_user_connectedvictim ) )
{
    return 
PLUGIN_HANDLED;
    
//return;
}

new 
XpAmount get_pcvar_numcvar_KillXp );

if( 
read_data) )
{
    
XpAmount += get_pcvar_numcvar_HsXp );
}

static 
sWeapon26 ];

read_data4sWeaponsizeofsWeapon ) - );


if( 
equalsWeapon"scout" ) )    
{
    
XpAmount += get_pcvar_numcvar_ScoutXp );
}

iXpkiller ] += XpAmount;

CheckLevelkiller );

SaveDatakiller );

ColorChatkiller"You have gained^3 %i^1 XP."XpAmount );

return 
PLUGIN_HANDLED;
}

public 
FwdPlayerSpawnid )
{
ExecuteForwardForward_spawnForwardReturnidiLevel[id], iXp[id] );
}

public 
fw_TakeDamage(victiminflictorattackerFloat:damage)
{
if( 
get_pcvar_numscout_on ) == )
    return 
HAM_IGNORED;
    
    if( 
is_valid_playerattacker ) && get_user_weapon(attacker) == CSW_SCOUT )
    {
        
SetHamParamFloat(4damage Scout_model[attacker]);
        
        return 
HAM_HANDLED;
    }
    
    return 
HAM_IGNORED;
}

public 
ScoutSkinsMenu(id) {  
    
    if (!
get_pcvar_num(scout_on))
    {
        
ColorChat(id"The mod has been disabale.");
        return 
PLUGIN_HANDLED;
    }
    
    new 
szItem[256];
    
    new 
level iLevel[id] > iLevel[id] : 1;
    
    new 
xp level StartedLevel;
    
    if( 
iLevel[id] > )
    {
        
xp +=  ( xp );
    }
    
    
formatex(szItemcharsmax(szItem), "\w[ \r%s \w] \yScout Skins Menu \rv%s^n\yYour Level: \r%d \w- \yYour XP: \r%d\w/\r%d\w.^n\yPage:\r"g_VAULTNAMEVERSION,iLevel[id],iXp[id], xp);
    new 
menu menu_createszItem"ScoutSkinsMenu_Handler" );  
    
    for (new 
0MAX_SCOUTSi++)
    {
        
formatex(szItemcharsmax(szItem), iLevel[id] >= g_scoutLevels[i] ? "%s [\yUNLOCKED\w]" "\d%s [\rLEVEL %d REQUIRE\d]"iLevel[id] >= g_scoutLevels[i] ? g_scoutNames[i] : "?????????"g_scoutLevels[i]),
        
menu_additem(menuszItem, .paccess = (iLevel[id] >= g_scoutLevels[i]) ? 1);
    }
    
    
menu_display(idmenu);
    
    return 
PLUGIN_HANDLED;
}  

public 
ScoutSkinsMenu_Handler(idmenuitem)  
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    
    
SetScout(iditem);
    
ColorChat(id"The Scout you chose is: ^4%s^1."g_scoutNames[item]);
    
    
SaveData(id);
    return 
PLUGIN_HANDLED;
}

public 
SetScout(iditem) {  
    
    
Scout_model[id] = item
    
    
new ClipAmmoWeapon get_user_weapon(idClipAmmo)  
    if ( 
Weapon != CSW_SCOUT )  
        return 
PLUGIN_HANDLED  
    
    
new vModel[56],pModel[56]  
    
    if (
get_pcvar_num(scout_on) == 0)
    {
        
format(vModel,55,"models/v_scout.mdl")  
        return 
PLUGIN_HANDLED;
    }
    
    
format(vModel,55g_scoutvModels[item])  
    
format(pModel,55,"models/p_Scout.mdl")
    
entity_set_string(idEV_SZ_viewmodelvModel)  
    
entity_set_string(idEV_SZ_weaponmodelpModel)  
    
    return 
PLUGIN_HANDLED;    
}

public 
PlayerLevelsMenu(id)
{    
    if (
get_pcvar_num(scout_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 
ipnumi++)
    {
        new 
level iLevel[players[i]] > iLevel[players[i]] : 1;
        
        new 
xp level StartedLevel;
        
        if( 
iLevel[players[i]] > )
        {
            
xp +=  ( xp );
        }
        
        
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(menusomeszTemp);
    }
    
    
menu_setprop(menuMPROP_EXITMEXIT_ALL );
    
menu_display(idmenu);
    
    return 
PLUGIN_HANDLED;
}

public 
PlayerLevelsMenu_Handler(id,menuitem){
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu);
        return;
    }
    
    new 
data[6] ,szName[64],access,callback;
    
    
menu_item_getinfo(menuitemaccessdatacharsmax(data), szNamecharsmax(szName), callback);
    
    new 
player str_to_num(data);
    
    new 
level iLevel[player] > iLevel[player] : 1;
    
    new 
xp level StartedLevel;
    
    if( 
iLevel[player] > )
    {
        
xp +=  ( xp );
    }
    
    
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
    
SetScout(idScout_model[id])
}  

public 
givexp(id) {
    if (
get_pcvar_num(scout_on) == 0)
    {
        
ColorChat(id"The mod has been disabale.");
        return 
PLUGIN_HANDLED;
    }
    
    if( 
get_user_flagsid ) & ADMIN_RCON ) {
        
        new 
PlayerToGive[32], XP[32]
        
read_argv(1,PlayerToGive,31)
        
read_argv(2,XP31)
        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(scout_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 );
        
iXpPlayer ]-=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 
Scoutmessage(id) {  
    
    if (
get_pcvar_num(scout_on) == 0)
        return 
PLUGIN_HANDLED;
    
    
ColorChat(0"Type ^3/Scout ^1in chat to open the ^4Scout Skins Menu^1.");  
    
ColorChat(0"This server is running ^4%s ^3v%s^1 by ^4%s^1.",g_VAULTNAMEVERSIONAUTHOR)
    return 
PLUGIN_HANDLED;
}    

public 
Levelmessage(id) {  
    
    if (
get_pcvar_num(scout_on) == 0)
        return 
PLUGIN_HANDLED;
    
    
ColorChat(0,"To see other ^4Players Level ^1type ^3/level ^1in chat.");  
    return 
PLUGIN_HANDLED;
}

public 
client_putinserver(idLoadData(id);

public 
SaveData(id){  
    
    new 
authid[32]  
    
get_user_authid(idauthid31)  
    
    new 
vaultkey[64]  
    new 
vaultdata[64]  
    
    
format(vaultkey63"SCOUTMOD_%s"authid)  
    
format(vaultdata63"%d"Scout_model[id])  
    
set_vaultdata(vaultkeyvaultdata)
    
    new 
data16 ];
    
    
get_user_authididauthidsizeofauthid ) - );
    
    
formatexdatasizeofdata ) - 1"%d %d"iLevel[id], iXp[id] );
    
    
fvault_set_data(g_VAULTNAMEauthiddata );
    
    return;
    
    
}  

public 
LoadData(id){  
    
    new 
authid[32]  
    
get_user_authid(id,authid,31)  
    
    new 
vaultkey[64], vaultdata[64]  
    
    
format(vaultkey63"SCOUTMOD_%s"authid)  
    
get_vaultdata(vaultkeyvaultdata63)  
    
Scout_model[id] = str_to_num(vaultdata)
    
    new 
data16 ], szLevel], szXp];
    
    
get_user_authididauthidsizeofauthid ) - );
    
    if( 
fvault_get_data(g_VAULTNAMEauthiddatasizeofdata ) - ) )
    {
        
strbreakdataszLevelsizeofszLevel ) - 1szXpsizeofszXp ) - );
        
        
iLevel[id] = str_to_numszLevel );
        
iXp[id] = str_to_numszXp );
        
        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[ ], { FloatSqlResul} : ... )
{
new 
msg191 ], players32 ], count 1;

static 
len;
if (!
len)
    
len formatexmsgcharsmaxmsg ), "^x04[^x01 Scout-Skins^x04 ]^x01 " );
    
    
vformatmsglen ], charsmaxmsg ) - lenstring);
    
    if( 
id )
        
players] = id;
    else
        
get_playersplayers,count,"ch" );
    
    for( new 
0counti++ )
    {
        
message_beginMSG_ONE_UNRELIABLEg_msgSayTextplayers] );
        
write_byteplayers] );
        
write_stringmsg );
        
message_end( );
    }
}

public 
eventRoundEndid )
{
    if(
is_user_alive(id))
    {
        new 
XPtoGive 400 // Change amount of XP
        
ColorChat(id,"You have received %s for surviving the round"XPtoGive);
        
iXp[id]+= XPtoGive
        
    
}

The Mod Work But i not got xp when round end...
Eviatar Mor is offline
NikKOo31
Senior Member
Join Date: May 2013
Location: Home
Old 07-29-2014 , 16:11   Re: Problem on my plugin
Reply With Quote #2

PHP Code:
register_logevent("round_end"2"1=Round_End"
PHP Code:
public round_end()
{
    new 
players[32], num
    get_players
(playersnum"a"// alive players
    
    
for(new 0numi++)
    {
        
ColorChat(players[i],"You have received 200 xp for surviving the round")
        
iXp[players[i]]+= 200 // or whatever xp you want to give
        
CheckLevel(players[i])
        
SaveData(players[i])
    }

__________________
Hey ^_^

Last edited by NikKOo31; 07-29-2014 at 16:12.
NikKOo31 is offline
Eviatar Mor
Senior Member
Join Date: Jun 2014
Location: israel
Old 07-29-2014 , 16:49   Re: Problem on my plugin
Reply With Quote #3

Quote:
Originally Posted by NikKOo31 View Post
PHP Code:
register_logevent("round_end"2"1=Round_End"
PHP Code:
public round_end()
{
    new 
players[32], num
    get_players
(playersnum"a"// alive players
    
    
for(new 0numi++)
    {
        
ColorChat(players[i],"You have received 200 xp for surviving the round")
        
iXp[players[i]]+= 200 // or whatever xp you want to give
        
CheckLevel(players[i])
        
SaveData(players[i])
    }

not work...
Eviatar Mor is offline
schmurgel1983
Veteran Member
Join Date: Aug 2006
Location: Germany
Old 07-29-2014 , 17:05   Re: Problem on my plugin
Reply With Quote #4

Quote:
Originally Posted by Eviatar Mor View Post
not work...
From NikKOo31 looks good and must work maybe you forget register_logevent("round_end", 2, "1=Round_End") ?
__________________

Working on:
nothing
schmurgel1983 is offline
Eviatar Mor
Senior Member
Join Date: Jun 2014
Location: israel
Old 07-29-2014 , 17:38   Re: Problem on my plugin
Reply With Quote #5

Quote:
Originally Posted by schmurgel1983 View Post
From NikKOo31 looks good and must work maybe you forget register_logevent("round_end", 2, "1=Round_End") ?
I add register_logevent("round_end", 2, "1=Round_End") and still not work...
maybe because the hnr mod ?
Eviatar Mor is offline
NikKOo31
Senior Member
Join Date: May 2013
Location: Home
Old 07-29-2014 , 17:58   Re: Problem on my plugin
Reply With Quote #6

Quote:
Originally Posted by Eviatar Mor View Post
I add register_logevent("round_end", 2, "1=Round_End") and still not work...
maybe because the hnr mod ?
I just see you already has logevent for round end. Did you removed before adding my code? Did you check error logs? Did you debug the plugin?
__________________
Hey ^_^
NikKOo31 is offline
Eviatar Mor
Senior Member
Join Date: Jun 2014
Location: israel
Old 07-31-2014 , 11:47   Re: Problem on my plugin
Reply With Quote #7

Quote:
Originally Posted by NikKOo31 View Post
I just see you already has logevent for round end. Did you removed before adding my code? Did you check error logs? Did you debug the plugin?
i not adding nothing to your code and nikkoo i think the mod not work great because the hnr system..
but i still post here the hnr mod:
http://pastebin.com/f0Dz5M8c

thanks about the help i really need this plugin...

Last edited by Eviatar Mor; 07-31-2014 at 11:47.
Eviatar Mor is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 13:15.


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