View Single Post
NiceAndSimple
Member
Join Date: Jan 2012
Old 07-07-2012 , 23:07   Re: Lysis: An experimental .smx decompiler
Reply With Quote #108

PHP Code:
new PlVers:__version 5;
new 
Float:NULL_VECTOR[3];
new 
String:NULL_STRING[1];
new 
Extension:__ext_core 68;
new 
MaxClients;
new 
Extension:__ext_sdktools 184;
public 
Plugin:myinfo =
{
    
name "KnockBack",
    
description "Weapon Knock Back",
    
author "ıı¿ııı",
    
version "1.0",
    
url ""
};
new 
String:weaponKB[28][2][64] =
{
    {
        
"knife",
        
"0.0"
    
},
    {
        
"glock",
        
"40.0"
    
},
    {
        
"usp",
        
"40.0"
    
},
    {
        
"p228",
        
"40.0"
    
},
    {
        
"deagle",
        
"50.0"
    
},
    {
        
"fiveseven",
        
"40.0"
    
},
    {
        
"elite",
        
"40.0"
    
},
    {
        
"m3",
        
"100.0"
    
},
    {
        
"xm1014",
        
"80.0"
    
},
    {
        
"tmp",
        
"50.0"
    
},
    {
        
"mac10",
        
"50.0"
    
},
    {
        
"ump45",
        
"60.0"
    
},
    {
        
"mp5navy",
        
"60.0"
    
},
    {
        
"p90",
        
"60.0"
    
},
    {
        
"galil",
        
"70.0"
    
},
    {
        
"ak47",
        
"70.0"
    
},
    {
        
"m4a1",
        
"70.0"
    
},
    {
        
"famas",
        
"70.0"
    
},
    {
        
"aug",
        
"70.0"
    
},
    {
        
"sg552",
        
"70.0"
    
},
    {
        
"m249",
        
"70.0"
    
},
    {
        
"scout",
        
"150.0"
    
},    
    {
        
"awp",
        
"250.0"
    
},
    {
        
"sg550",
        
"80.0"
    
},
    {
        
"g3sg1",
        
"80.0"
    
}
}
public 
__ext_core_SetNTVOptional()
{
    
MarkNativeAsOptional("GetFeatureStatus");
    
MarkNativeAsOptional("RequireFeature");
    
MarkNativeAsOptional("AddCommandListener");
    
MarkNativeAsOptional("RemoveCommandListener");
    
VerifyCoreVersion();
    return 
0;
}

ScaleVector(Float:vec[3], Float:scale)
{
    new 
var1 vec;
    
var1[0] = FloatMul(var1[0], scale);
    new 
var2 vec[4];
    
var2 FloatMul(var2scale);
    new 
var3 vec[8];
    
var3 FloatMul(var3scale);
    return 
0;
}

MakeVectorFromPoints(Float:pt1[3], Float:pt2[3], Float:output[3])
{
    
output[0] = FloatSub(pt2[0], pt1[0]);
    
output[4] = FloatSub(pt2[4], pt1[4]);
    
output[8] = FloatSub(pt2[8], pt1[8]);
    return 
0;
}

bool:StrEqual(String:str1[], String:str2[], bool:caseSensitive)
{
    return 
strcmp(str1str2caseSensitive) == 0;
}

public 
OnPluginStart()
{
    
CreateConVar("knockback_version""1.0""knockback plugin info cvar"8448false0.0false0.0);
    
HookEvent("player_hurt"EventHook:5EventHookMode:1);
    return 
0;
}

public 
Action:Player_Hurt(Handle:eventString:name[], bool:dontBroadcast)
{
    new 
Client GetClientOfUserId(GetEventInt(event"userid"));
    new 
Attacker GetClientOfUserId(GetEventInt(event"Attacker"));
    new 
var1;
    if (
AliveCheck(Client) == 1) {
        
decl String:k_weapon[32];
        
GetEventString(event"weapon"k_weapon32);
        new 
0;
        while (
28) {
            new 
var2 weaponKB[i][0][0];
            if (
StrEqual(var2[0][var2], k_weapontrue)) {
                
decl Float:Clientposition[3];
                
decl Float:targetposition[3];
                
decl Float:vector[3];
                
GetClientEyePosition(AttackerClientposition);
                
GetClientEyePosition(Clienttargetposition);
                
MakeVectorFromPoints(Clientpositiontargetpositionvector);
                
NormalizeVector(vectorvector);
                
ScaleVector(vectorStringToFloat(weaponKB[i][0][0][4]));
                
TeleportEntity(ClientNULL_VECTORNULL_VECTORvector);
            }
            
i++;
        }
    }
    return 
Action:0;
}

public 
bool:AliveCheck(Client)
{
    new 
var1;
    if (
Client 0) {
        if (
IsClientConnected(Client) == 1) {
            if (
IsClientInGame(Client) == 1) {
                if (
IsPlayerAlive(Client) == 1) {
                    return 
true;
                }
                return 
false;
            }
            return 
false;
        }
        return 
false;
    }
    return 
false;

I compiled this and got these 11 errors: And where the cool face is its meant to be an 8

/groups/sourcemod/compiler-1.4/include/core.inc(171) : warning 209: function "__ext_core_SetNTVOptional" should return a value
/groups/sourcemod/compiler-1.4/include/vector.inc(160) : warning 209: function "ScaleVector" should return a value
/groups/sourcemod/compiler-1.4/include/vector.inc(18 : warning 209: function "MakeVectorFromPoints" should return a value
/home/groups/sourcemod/upload_tmp/phpDlQwwV.sp(1) : warning 213: tag mismatch
/home/groups/sourcemod/upload_tmp/phpDlQwwV.sp(2) : error 021: symbol already defined: "NULL_VECTOR"
/home/groups/sourcemod/upload_tmp/phpDlQwwV.sp(3) : error 021: symbol already defined: "NULL_STRING"
/home/groups/sourcemod/upload_tmp/phpDlQwwV.sp(4) : warning 213: tag mismatch
/home/groups/sourcemod/upload_tmp/phpDlQwwV.sp(5) : error 021: symbol already defined: "MaxClients"
/home/groups/sourcemod/upload_tmp/phpDlQwwV.sp(117) : error 052: multi-dimensional arrays must be fully initialized
/home/groups/sourcemod/upload_tmp/phpDlQwwV.sp(119) : error 021: symbol already defined: "__ext_core_SetNTVOptional"
/home/groups/sourcemod/upload_tmp/phpDlQwwV.sp(129) : error 021: symbol already defined: "ScaleVector"
/home/groups/sourcemod/upload_tmp/phpDlQwwV.sp(130) : error 033: array must be indexed (variable "-unknown-")
/home/groups/sourcemod/upload_tmp/phpDlQwwV.sp(131) : error 028: invalid subscript (not an array or too many subscripts): "var1"
/home/groups/sourcemod/upload_tmp/phpDlQwwV.sp(131) : warning 215: expression has no effect
/home/groups/sourcemod/upload_tmp/phpDlQwwV.sp(131) : error 001: expected token: ";", but found "]"
/home/groups/sourcemod/upload_tmp/phpDlQwwV.sp(131) : error 029: invalid expression, assumed zero
/home/groups/sourcemod/upload_tmp/phpDlQwwV.sp(131) : fatal error 127: too many error messages on one line

Last edited by NiceAndSimple; 07-07-2012 at 23:42.
NiceAndSimple is offline