AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   XP mod problems (https://forums.alliedmods.net/showthread.php?t=82652)

Frozen Usp 12-27-2008 08:48

XP mod problems
 
PHP Code:

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c1997-2006 ITB CompuPhaseAMX Mod X Team
C
:\Users\Valentin\Desktop\TFMOD.sma(62) : error 017undefined symbol "attacker"
C:\Users\Valentin\Desktop\TFMOD.sma(70) : error 017undefined symbol "id"
C:\Users\Valentin\Desktop\TFMOD.sma(71) : error 012invalid function callnot a valid address
C
:\Users\Valentin\Desktop\TFMOD.sma(71) : error 017undefined symbol "attacker"
C:\Users\Valentin\Desktop\TFMOD.sma(75) : error 012invalid function callnot a valid address
C
:\Users\Valentin\Desktop\TFMOD.sma(75) : error 017undefined symbol "attacker"
C:\Users\Valentin\Desktop\TFMOD.sma(79) : error 017undefined symbol "attacker"
C:\Users\Valentin\Desktop\TFMOD.sma(82) : warning 217loose indentation
C
:\Users\Valentin\Desktop\TFMOD.sma(82) : error 017undefined symbol "attacker"
C:\Users\Valentin\Desktop\TFMOD.sma(84) : error 017undefined symbol "attacker"
C:\Users\Valentin\Desktop\TFMOD.sma(84) : warning 215expression has no effect
C
:\Users\Valentin\Desktop\TFMOD.sma(84) : warning 215expression has no effect
C
:\Users\Valentin\Desktop\TFMOD.sma(84) : error 017undefined symbol "attacker"
C:\Users\Valentin\Desktop\TFMOD.sma(84) : error 029invalid expressionassumed zero
C
:\Users\Valentin\Desktop\TFMOD.sma(84) : fatal error 107too many error messages on one line
Compilation aborted
.
12 Errors.
Could not locate output file C:\Users\Valentin\Desktop\TFMOD.amx (compile failed).
Compilation Time0,34 sec 

This is the errors i get from trying to compile my code, the code is based on the Xp mod tutorial by flyeni6
http://forums.alliedmods.net/showthread.php?t=66497

PHP Code:

/* Script generated by Pawn Studio */
#include <amxmodx>
#include <amxmisc>
#include <nvault> 
#include <cstrike>
#include <fun>
#include <fakemeta>
 
#define PLUGIN "TF Mod"
#define AUTHOR "V-X aka FrozenUSP"
#define VERSION "1.0"
#define MAXCLASSES 4
#define CLASS_NOTHING 0
#define CLASS_SCOUT 1
#define CLASS_HEAVY 2
#define CLASS_SNIPER 3

new PlayerXP[33],PlayerLevel[33],PlayerClass[33]
new 
XP_Kill,XP_Knife,XP_Hs,SaveXP
new g_vault
new const CLASSES[MAXCLASSES] [] = {
 
"None",
 
"Scout",
 
"Heavy",
 
"Sniper"
}
new const 
BATTLEXP[7] = {
 
0,
 
22,
 
34,
 
43,
 
57,
 
66,
 
80
}

public 
plugin_init()
{
 
register_plugin(PLUGINVERSIONAUTHOR)
 
register_event("DeathMsg""eDeath""a")
 
SaveXP register_cvar("SaveXP""1")
 
XP_Kill register_cvar("XP_per_kill""1")
 
XP_Hs register_cvar("XP_per_hs""2")
 
XP_Knife register_cvar("XP_per_knife""3")
 
 
g_vault nvault_open("TF Mod")
 
 
register_clcmd("say /class""ChangeClass")
 
register_clcmd("say_team /class""ChangeClass")
 
register_clcmd("say /battlexp""ShowHud")
 
register_clcmd("say_team /battlexp""ShowHud")
}
public 
eDeath( ) 

    
    if(
PlayerClass[attacker] == 0)
         return 
PLUGIN_CONTINUE
 
    
    
new iVictim read_data)
    
    new 
headshot read_data)
 
    new 
clipammoweapon get_user_weapon(id,clip,ammo);
    
PlayerXP[attacker] += get_pcvar_num(XP_Kill
     
    if(
headshot
    
    
PlayerXP[attacker] += get_pcvar_num(XP_Hs
     
    if(
weapon == CSW_KNIFE
    
    
PlayerXP[attacker] += get_pcvar_num(XP_Knife
    
 
    while(
PlayerXP[attacker] >= BATTLEXP[PlayerLevel[attacker]]) 
    { 
        
client_print(attackerprint_chat"[TF Mod] Congratulations! You Are Now More Experienced In Battle!"PlayerLevel[attacker],CLASSES[PlayerClass[attacker]]) 
        
        
PlayerLevel[attacker] += 
    

 
    
ShowHud(attacker)
 
}  
public 
ShowHud(id

    
set_hudmessage(255000.750.0106.015.0
    
show_hudmessage(id"BattleXP: %i^nXP: %i^nClass: %s",PlayerLevel[id],PlayerXP[id],CLASSES[PlayerClass[id]]) 
}  
public 
ChangeClass(id
{
    new 
menu menu_create("Class Menu" "Class_Handle");
    
menu_additem(menu ,"Scout""1" 0); 
    
menu_additem(menu ,"Heavy""2" 0); 
    
menu_additem(menu ,"Sniper""3" 0); 
    
menu_setprop(menu MPROP_EXIT MEXIT_ALL);
    
menu_display(id menu 0); 
    return 
PLUGIN_CONTINUE

 
public 
Class_Handle(id menu item

    if(
item == MENU_EXIT
    { 
        
menu_destroy(menu); 
    } 
    new 
szCommand[6] , szName[64]; new access callback
    
menu_item_getinfo(menu item access szCommand szName 63 callback); 
    new 
str_to_num(szCommand
    if(
PlayerClass[id] != i
    { 
        
PlayerClass[id] = i client_print(id,print_chat,"You are now a %s!, Make me Proud Soldier!",CLASSES[i]) 
    }
    else 
    { 
        
client_print(id,print_chat,"You Are Alredy a %s!, Stop Whine and get back to ACTION!",CLASSES[i]) 
    } 
    
menu_destroy(menu); 
    return 
PLUGIN_CONTINUE 
}

public 
client_connect(id
{
    
    if(
get_pcvar_num(SaveXP) == 1
    { 
  
        
LoadData(id
    } 
}
public 
client_disconnect(id

     if(
get_pcvar_num(SaveXP) == 1
     { 
       
          
SaveData(id
     } 
}
public 
SaveData(id

    
    new 
AuthID[35get_user_authid(id,AuthID,34
    new 
vaultkey[64],vaultdata[256
    
    
format(vaultkey,63,"%s-Mod",AuthID
    
format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id]) 
    
nvault_set(g_vault,vaultkey,vaultdata
    return 
PLUGIN_CONTINUE 
}
public 
LoadData(id

    new 
AuthID[35get_user_authid(id,AuthID,34
    new 
vaultkey[64],vaultdata[256
    
    
format(vaultkey,63,"%s-Mod",AuthID
    
format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id]) 
    
    
nvault_get(g_vault,vaultkey,vaultdata,255
    
replace_all(vaultdata255"#"" "
    new 
playerxp[32], playerlevel[32
    
parse(vaultdataplayerxp31playerlevel31
    
PlayerXP[id] = str_to_num(playerxp
    
PlayerLevel[id] = str_to_num(playerlevel
    return 
PLUGIN_CONTINUE 

public 
respawn_player(id)
{
 if(
is_user_connected(id))
 {
  
set_pev(id,pev_deadflag,DEAD_RESPAWNABLE);
        
set_pev(idpev_iuser10);
        
dllfunc(DLLFunc_Think,id)
  
  
engfunc(EngFunc_SetOrigin,id,Float:{-4800.0,-4800.0,-4800.0})
  
  
set_task(0.5,"spawnagain",id)
 }
}
public 
spawnagain(id)
{
    
    if(
is_user_connected(id))
    {
        
       
spawn(id)
       
dllfunc(DLLFunc_Spawn,id)
    
    }
}
public 
fwHamPlayerSpawnPost(id) { 
 
    if(
is_user_alive(id) {
  
        
fm_strip_user_weapons(id); 
        
ham_give_weapon(id"CSW_KNIFE");
    }
 if(
PlayerClass(id) == CLASS_SCOUT)
  
ham_give_weapon(id"CSW_M3")
  
ham_give_weapon(id"CSW_USP")
 }
 if(
PlayerClass(id) == CLASS_HEAVY)
  
ham_give_weapon(id"CSW_M249")
  
ham_give_weapon(id"CSW_M3")
 }
 if(
PlayerClass(id) == CLASS_SNIPER)
  
ham_give_weapon(id"CSW_SCOUT")
  
ham_give_weapon(id"CSW_MP5NAVY")
 }



SnoW 12-27-2008 11:53

Re: XP mod problems
 
You don't read the attacker on function eDeath.
Code:

new attacker = read_data(1);

Frozen Usp 12-27-2008 13:35

Re: XP mod problems
 
Thanks! :D

Frozen Usp 12-27-2008 15:31

Re: XP mod problems
 
Same errors stile remains

SnoW 12-27-2008 16:04

Re: XP mod problems
 
Your code is full of errors, when you fix 10 of them you get 20 more. You use engine, fakemeta, fun, fakemeta_util and cstrike. Only half of those was included. You use variables like this String(id) = 1; and a lot of other mess with ids and almost everything. If you can't fix those errors you could request this so someone else would do this. :I

Hawk552 12-28-2008 19:54

Re: XP mod problems
 
People need to stop beginning their learning with huge scripts like XP mod which is terribly written and archaic compared to the APIs available today. That's irrelevant, though. Start with something small like a heal or slay command and gradually build on it. Then make something a bit harder like a csay command.

ianglowz 12-29-2008 01:33

Re: XP mod problems
 
Here I help you.

PHP Code:

#include <amxmodx>
#include <amxmisc>
#include <nvault>
#define MAXCLASSES 5
new const CLASSES[MAXCLASSES][] = {
    
"None",
    
"Dog",
    
"Cat",
    
"Horse",
    
"Cow"
}
new const 
LEVELS[6] = {
    
100
    
200
    
400
    
800,
    
1600,
    
3200
}
new 
PlayerXP[33],PlayerLevel[33],PlayerClass[33]
new 
XP_Kill,XP_Knife,XP_Hs,SaveXP,g_vault
public plugin_init()
{
    
register_plugin("XpMod""1.0""Fxfighter")
 
    
register_event("DeathMsg""eDeath""a"
 
    
SaveXP register_cvar("SaveXP","1")
    
XP_Kill=register_cvar("XP_per_kill""20")
    
XP_Hs=register_cvar("XP_hs_bonus","20")
    
XP_Knife=register_cvar("XP_knife_bonus","20")
    
g_vault nvault_open("animod")
 
    
register_clcmd("say /class""ChangeClass")
    
register_clcmd("say_team /class""ChangeClass")
    
register_clcmd("say /xp""ShowHud")
    
register_clcmd("say_team /xp""ShowHud")
}
public 
eDeath(  ) 
{
    new 
attacker read_data)
    new 
headshot read_data)
    new 
clipammoweapon get_user_weapon(attacker,clip,ammo);
 
    
PlayerXP[attacker] += get_pcvar_num(XP_Kill)
 
    if(
headshot)
    
PlayerXP[attacker] += get_pcvar_num(XP_Hs)
 
    if(
weapon == CSW_KNIFE)
    
PlayerXP[attacker] += get_pcvar_num(XP_Knife)
 
 
    while(
PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]])
    {
    
client_print(attackerprint_chat"[Animal Mod] Congratulations! You are a level %i %s!",PlayerLevel[attacker],CLASSES[PlayerClass[attacker]])
    
PlayerLevel[attacker] += 1
    
}

    
ShowHud(attacker)
    
SaveData(attacker)
}

public 
ShowHud(id)
{
    
set_hudmessage(255000.750.0106.015.0)
    
show_hudmessage(id"Level: %i^nXP: %i^nClass: %s",PlayerLevel[id],PlayerXP[id],CLASSES[PlayerClass[id]])
}
public 
ChangeClass(id)
{
    new 
menu menu_create("Class Menu" "Class_Handle");
    
menu_additem(menu ,"Dog""1" 0);
    
menu_additem(menu ,"Cat""2" 0);
    
menu_additem(menu ,"Horse""3" 0);
    
menu_additem(menu ,"Cow""4" 0);
 
    
menu_setprop(menu MPROP_EXIT MEXIT_ALL);
 
    
menu_display(id menu 0);
 
    return 
PLUGIN_CONTINUE;
}
public 
Class_Handle(id menu item
{
    if(
item == MENU_EXIT
    {
 
        
menu_destroy(menu);
 
    }
 
    new 
szCommand[6] , szName[64];
    new 
access callback;
 
    
menu_item_getinfo(menu item access szCommand szName 63 callback);
 
    new 
str_to_num(szCommand)
    if(
PlayerClass[id] != i)
    {
        
PlayerClass[id] = i
        client_print
(id,print_chat,"You are now a %s",CLASSES[i])
    }
    else
    {
        
client_print(id,print_chat,"You are alredy a %s",CLASSES[i])
    }
 
    
menu_destroy(menu);
    return 
PLUGIN_CONTINUE
}
public 
client_connect(id)
{
    if(
get_pcvar_num(SaveXP) == 1)
    {
 
        
LoadData(id)
    }
}
public 
client_disconnect(id)
{
    if(
get_pcvar_num(SaveXP) == 1)
    {
 
        
SaveData(id)
    }
    
PlayerXP[id] = 0
    PlayerLevel
[id] = 0
    PlayerClass
[id] = 0
}
public 
SaveData(id)
{
    new 
AuthID[35]
    
get_user_authid(id,AuthID,34)
 
    new 
vaultkey[64],vaultdata[256]
    
format(vaultkey,63,"%s-Mod",AuthID)
    
format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id])
    
nvault_set(g_vault,vaultkey,vaultdata)
    return 
PLUGIN_CONTINUE
}
public 
LoadData(id)
{
    new 
AuthID[35]
    
get_user_authid(id,AuthID,34)
 
    new 
vaultkey[64],vaultdata[256]
    
format(vaultkey,63,"%s-Mod",AuthID)
    
format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id])
    
nvault_get(g_vault,vaultkey,vaultdata,255)
 
    
replace_all(vaultdata255"#"" ")
 
    new 
playerxp[32], playerlevel[32]
 
    
parse(vaultdataplayerxp31playerlevel31)
 
    
PlayerXP[id] = str_to_num(playerxp)
    
PlayerLevel[id] = str_to_num(playerlevel)
 
    return 
PLUGIN_CONTINUE



Frozen Usp 12-29-2008 07:01

Re: XP mod problems
 
Ianglowz - Thats the Tutorial i have been using...

ianglowz 12-29-2008 08:21

Re: XP mod problems
 
Ooo..sorry..now I will check the error.

Frozen Usp 12-29-2008 08:31

Re: XP mod problems
 
Well i kind rewrote the plugin and now it works just fine with some minor errors,
the errors where becuse i was using the unUpdated XP-Mod TUT :D


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

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