Raised This Month: $51 Target: $400
 12% 

problem with hasPowers?


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Jelle
[b]MOAR CANDY[/b]
Join Date: Aug 2009
Location: Denmark
Old 09-02-2009 , 13:04   problem with hasPowers?
Reply With Quote #1

Code:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <superheromod>


new gHeroName[] = "Jelle" //hero navn
new bool:gHasJelle[SH_MAXSLOTS+1] //en slot per spiller

public plugin_init() {
    register_plugin("SUPERHERO Jelle", "0.1", "Jelle") //registrer plugin
    
    //events
    register_event("damage", "jelle_damage", "b", "2!0");
    
    //cvars
    register_cvar("jelle_level", "10"); //level
    register_cvar("jelle_health", "400"); //liv
    register_cvar("jelle_armor", "400"); //armor
    register_cvar("jelle_grav", "0.5"); //gravity
    register_cvar("jelle_speed", "600"); //speed
    register_cvar("jelle_m4a1mult", "10"); //multiplier for m4a1
    
    //Lav hero!
    shCreateHero(gHeroName, "Has all abilities", "Awesome Jelle, all superheroes in one!!", false, "jelle_level");
    
    //sæt hero funktioner
    shSetMaxHealth(gHeroName, "jelle_health");
    shSetMaxArmor(gHeroName, "jelle_armor");
    shSetMinGravity(gHeroName, "jelle_grav");
    shSetMaxSpeed(gHeroName, "jelle_speed", "[0]");
    
    //registrer init med server
    register_srvcmd("jelle_init", "jelle_init");
    
    //registrer init med sh mod
    shRegHeroInit(gHeroName, "jelle_init");
    
    
}

public jelle_init()
{
    new temp[6]; //temp varial
    read_argv(1, temp, 5); //første argument er spilleren
    new id = str_to_num(temp); //laver string til et nummer til ID
    
    read_argv(2, temp,5); //har de helten eller ikke?
    
    new hasPower = str_to_num(temp);
    
    gHasJelle[id] = (hasPowers !=0); //har de helten?
    
    //fjern kræfter hvis de dropper helten
    if (!hasPowers && gHasJelle[id] && is_user_alive(id))
    {
        shRemHealthPower(id);
        shRemArmorPower(id);
        shRemGravityPower(id);
        shRemSpeedPower(id);
}

public jelle_damage(id)
{
    if (!shModActive() || !is_user_alive(id)) return PLUGIN_CONTINUE;
    
    new damage = read_data(2);
    new weapon, bodypart, attacker = get_user_attacker(id, weapon, bodypart) //Hvilket våben der bliver brugt, hvor der bliver ramt og angriber
    new headshot = bodypart == 1 ? 1 : 0
    
    if (attacker <= 0 || attacker > SH_MAXSLOTS ) return PLUGIN_CONTINUE; //gjorde verden damage, hvis det var, slut funktion
    
    if(gHasJelle[attacker] && weapon == CSW_M4A1 && is_user_alive (id))
    {
        new extraDamage = floatround(damage * get_cvar_float("jelle_m4a1mult") - damage); //udregner extra damage
        
        if (extraDamage > 0)
        {
            shExtraDamage( id, attacker, extraDamage, "m4a1", headshot ); //"m4a1" er våben description
        }
    }
}
I made this. I want to make almost all powers into one hero, just to learn, and for a bit of fun.

But, now I have the problem with hasPowers.

"Undefined symbol "hasPowers" on line 52"
"Undefined symbol "hasPowers" on line 55"
"Warning: Loose indentation on line 63"

I have not set hasPowers to anything as I see it, but I do not know how to do it. I used the "learn to superhero script" in this forum, and I do not see what I have done wrong.
Also, the warning is in line 63? All that is in line 63 is "public jelle_damage(id)"?
Jelle is offline
Send a message via MSN to Jelle
vittu
SuperHero Moderator
Join Date: Oct 2004
Location: L.A. County, CA
Old 09-02-2009 , 13:43   Re: problem with hasPowers?
Reply With Quote #2

Quote:
Originally Posted by Jelle View Post
Code:
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <superheromod> new gHeroName[] = "Jelle" //hero navn new bool:gHasJelle[SH_MAXSLOTS+1] //en slot per spiller public plugin_init() {     register_plugin("SUPERHERO Jelle", "0.1", "Jelle") //registrer plugin         //events     register_event("damage", "jelle_damage", "b", "2!0");         //cvars     register_cvar("jelle_level", "10"); //level     register_cvar("jelle_health", "400"); //liv     register_cvar("jelle_armor", "400"); //armor     register_cvar("jelle_grav", "0.5"); //gravity     register_cvar("jelle_speed", "600"); //speed     register_cvar("jelle_m4a1mult", "10"); //multiplier for m4a1         //Lav hero!     shCreateHero(gHeroName, "Has all abilities", "Awesome Jelle, all superheroes in one!!", false, "jelle_level");         //sæt hero funktioner     shSetMaxHealth(gHeroName, "jelle_health");     shSetMaxArmor(gHeroName, "jelle_armor");     shSetMinGravity(gHeroName, "jelle_grav");     shSetMaxSpeed(gHeroName, "jelle_speed", "[0]");         //registrer init med server     register_srvcmd("jelle_init", "jelle_init");         //registrer init med sh mod     shRegHeroInit(gHeroName, "jelle_init");         } public jelle_init() {     new temp[6]; //temp varial     read_argv(1, temp, 5); //første argument er spilleren     new id = str_to_num(temp); //laver string til et nummer til ID         read_argv(2, temp,5); //har de helten eller ikke?    
    new hasPower = str_to_num(temp);
   
    gHasJelle[id] = (hasPowers !=0); //har de helten?
        //fjern kræfter hvis de dropper helten
    if (!hasPowers && gHasJelle[id] && is_user_alive(id))
    {         shRemHealthPower(id);         shRemArmorPower(id);         shRemGravityPower(id);         shRemSpeedPower(id);
}
public jelle_damage(id) {     if (!shModActive() || !is_user_alive(id)) return PLUGIN_CONTINUE;         new damage = read_data(2);     new weapon, bodypart, attacker = get_user_attacker(id, weapon, bodypart) //Hvilket våben der bliver brugt, hvor der bliver ramt og angriber     new headshot = bodypart == 1 ? 1 : 0         if (attacker <= 0 || attacker > SH_MAXSLOTS ) return PLUGIN_CONTINUE; //gjorde verden damage, hvis det var, slut funktion         if(gHasJelle[attacker] && weapon == CSW_M4A1 && is_user_alive (id))     {         new extraDamage = floatround(damage * get_cvar_float("jelle_m4a1mult") - damage); //udregner extra damage                 if (extraDamage > 0)         {             shExtraDamage( id, attacker, extraDamage, "m4a1", headshot ); //"m4a1" er våben description         }     } }

I made this. I want to make almost all powers into one hero, just to learn, and for a bit of fun.

But, now I have the problem with hasPowers.

"Undefined symbol "hasPowers" on line 52"
"Undefined symbol "hasPowers" on line 55"
"Warning: Loose indentation on line 63"

I have not set hasPowers to anything as I see it, but I do not know how to do it. I used the "learn to superhero script" in this forum, and I do not see what I have done wrong.
Also, the warning is in line 63? All that is in line 63 is "public jelle_damage(id)"?
hasPower is not the same as hasPowers

And you are missing a closing bracket on your if statement should be more than just a loose indentation error for that (loose indentation just complains about proper spacing however this can hide other errors).
vittu is offline
Send a message via AIM to vittu Send a message via MSN to vittu Send a message via Yahoo to vittu
Jelle
[b]MOAR CANDY[/b]
Join Date: Aug 2009
Location: Denmark
Old 09-02-2009 , 13:48   Re: problem with hasPowers?
Reply With Quote #3

Oh I see my mistakes there. Dammit. Ive got be to better at seeing these things.

Thanks allot, now it compiles fine!

EDIT: Well. I did not get far before I get trouble again. As I can remember I have done a player model before. This time I have made sure that the g_model is the same. Any help here?

Code:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <superheromod>
#include <cstrike> //skal bruges til cs_get_user_model (player model)


new gHeroName[] = "Jelle" //hero navn
new bool:gHasJelle[SH_MAXSLOTS+1] //en slot per spiller
new g_model; //skal være global

public plugin_init() {
    register_plugin("SUPERHERO Jelle", "0.1", "Jelle") //registrer plugin
    
    //events
    register_event("damage", "jelle_damage", "b", "2!0");
    
    //cvars
    register_cvar("jelle_level", "10"); //level
    register_cvar("jelle_health", "400"); //liv
    register_cvar("jelle_armor", "400"); //armor
    register_cvar("jelle_grav", "0.5"); //gravity
    register_cvar("jelle_speed", "600"); //speed
    register_cvar("jelle_m4a1mult", "10"); //multiplier for m4a1
    
    //Lav hero!
    shCreateHero(gHeroName, "Has all abilities", "Awesome Jelle, all superheroes in one!!", false, "jelle_level");
    
    //sæt hero funktioner
    shSetMaxHealth(gHeroName, "jelle_health");
    shSetMaxArmor(gHeroName, "jelle_armor");
    shSetMinGravity(gHeroName, "jelle_grav");
    shSetMaxSpeed(gHeroName, "jelle_speed", "[0]");
    
    //registrer init med server
    register_srvcmd("jelle_init", "jelle_init");
    
    //registrer init med sh mod
    shRegHeroInit(gHeroName, "jelle_init");
    
    
}

public plugin_precache()
{
    g_model = precache_model("models/shmod/jelle/jelle_model.mdl"); //får spillere til at download model
}

public jelle_init()
{
    new temp[6]; //temp varial
    read_argv(1, temp, 5); //første argument er spilleren
    new id = str_to_num(temp); //laver string til et nummer til ID
    
    read_argv(2, temp,5); //har de helten eller ikke?
    
    new hasPowers = str_to_num(temp);
    
    gHasJelle[id] = (hasPowers !=0); //har de helten?
    
    //fjern kræfter hvis de dropper helten
    if (!hasPowers && gHasJelle[id] && is_user_alive(id))
    {
        shRemHealthPower(id);
        shRemArmorPower(id);
        shRemGravityPower(id);
        shRemSpeedPower(id);
    }
    //hvis de har helten, sæt model på
    if(hasPowers)
    {
        jelle_set_model(id)
    }
}

public jelle_set_model(id)
{
    if (!shModActive() || !is_user_alive(id) || !gHasJelle[id]) return PLUGIN_CONTINUE; //ender funktion hvis sh mod er af, de dropper helten, eller dør
    
    cs_set_user_model(id, g_model); //sætter player model
    
    return PLUGIN_CONTINUE;
}

public jelle_damage(id)
{
    if (!shModActive() || !is_user_alive(id)) return PLUGIN_CONTINUE;
    
    new damage = read_data(2);
    new weapon, bodypart, attacker = get_user_attacker(id, weapon, bodypart) //Hvilket våben der bliver brugt, hvor der bliver ramt og angriber
    new headshot = bodypart == 1 ? 1 : 0
    
    if (attacker <= 0 || attacker > SH_MAXSLOTS ) return PLUGIN_CONTINUE; //gjorde verden damage, hvis det var, slut funktion
    
    if(gHasJelle[attacker] && weapon == CSW_M4A1 && is_user_alive (id))
    {
        new extraDamage = floatround(damage * get_cvar_float("jelle_m4a1mult") - damage); //udregner extra damage
        
        if (extraDamage > 0)
        {
            shExtraDamage( id, attacker, extraDamage, "m4a1", headshot ); //"m4a1" er våben description
        }
    }
}
The error is in line 80: "Argument type mismatch (argument 2) on line 80"
But, the second argument is g_model, right? As I see it, it is the same.

Code:
cs_set_user_model(id, g_model);

Last edited by Jelle; 09-02-2009 at 14:05.
Jelle is offline
Send a message via MSN to Jelle
vittu
SuperHero Moderator
Join Date: Oct 2004
Location: L.A. County, CA
Old 09-02-2009 , 14:27   Re: problem with hasPowers?
Reply With Quote #4

The second parameter is supposed to be a string not an integer.
http://www.amxmodx.org/funcwiki.php?go=func&id=191

But also player models have a particular name and location scheme that you must follow.
"models/player/modelname/modelname.mdl"
not:
"models/shmod/jelle/jelle_model.mdl"


modelname must match it's containing folder name and it must be in the player models folder...
vittu is offline
Send a message via AIM to vittu Send a message via MSN to vittu Send a message via Yahoo to vittu
Jelle
[b]MOAR CANDY[/b]
Join Date: Aug 2009
Location: Denmark
Old 09-02-2009 , 14:49   Re: problem with hasPowers?
Reply With Quote #5

Quote:
Originally Posted by vittu View Post
The second parameter is supposed to be a string not an integer.
http://www.amxmodx.org/funcwiki.php?go=func&id=191

But also player models have a particular name and location scheme that you must follow.
"models/player/modelname/modelname.mdl"
not:
"models/shmod/jelle/jelle_model.mdl"


modelname must match it's containing folder name and it must be in the player models folder...
Thanks for your answer.
However, I do not plan on submitting this hero since there is so many of them in here anyway, so the location of the model files, well, does it matter where I put them?

But I do not get what you mean by it has to be an integer? I have red the link you gave me, but I am totally blank in that area. Could you cast some light in it?
Jelle is offline
Send a message via MSN to Jelle
vittu
SuperHero Moderator
Join Date: Oct 2004
Location: L.A. County, CA
Old 09-02-2009 , 15:55   Re: problem with hasPowers?
Reply With Quote #6

Quote:
Originally Posted by Jelle View Post
so the location of the model files, well, does it matter where I put them?
like i said for player models it matters, you must follow the format mentioned above no matter what if you want it to work.

Quote:
Originally Posted by Jelle View Post
But I do not get what you mean by it has to be an integer? I have red the link you gave me, but I am totally blank in that area. Could you cast some light in it?
cs_set_user_model(id, "modelname") or else it will not work...
vittu is offline
Send a message via AIM to vittu Send a message via MSN to vittu Send a message via Yahoo to vittu
Jelle
[b]MOAR CANDY[/b]
Join Date: Aug 2009
Location: Denmark
Old 09-02-2009 , 16:06   Re: problem with hasPowers?
Reply With Quote #7

Oh I see what you mean now. I will do that when I get back to my own computer. Thanks for helping.
Jelle is offline
Send a message via MSN to Jelle
Jelle
[b]MOAR CANDY[/b]
Join Date: Aug 2009
Location: Denmark
Old 09-03-2009 , 16:26   Problem with keydown?
Reply With Quote #8

I am not sure if I have to make a new thread about this, or just edit the old one, since this is the same hero, but it is another problem.

I made a new one since the probability for someone to look at the old post is minimal.

Code:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <superheromod>
#include <cstrike> //skal bruges til cs_get_user_model (player model)
#include <fakemeta> //skal bruges til våben model


new gHeroName[] = "Jelle" //hero navn
new bool:gHasJelle[SH_MAXSLOTS+1] //en slot per spiller
new g_model; //skal være global
new g_p_model; //global
new g_v_model; //global
new laser_spr; //sprite til laser

public plugin_init() 
{
    register_plugin("SUPERHERO Jelle", "0.1", "Jelle") //registrer plugin
    
    //events
    register_event("damage", "jelle_damage", "b", "2!0");
    
    //cvars
    register_cvar("jelle_level", "10"); //level
    register_cvar("jelle_health", "400"); //liv
    register_cvar("jelle_armor", "400"); //armor
    register_cvar("jelle_grav", "0.5"); //gravity
    register_cvar("jelle_speed", "600"); //speed
    register_cvar("jelle_m4a1mult", "10"); //multiplier for m4a1
    
    //Lav hero!
    shCreateHero(gHeroName, "Has all abilities", "Awesome Jelle, all superheroes in one!!", false, "jelle_level");
    
    //sæt hero funktioner
    shSetMaxHealth(gHeroName, "jelle_health");
    shSetMaxArmor(gHeroName, "jelle_armor");
    shSetMinGravity(gHeroName, "jelle_grav");
    shSetMaxSpeed(gHeroName, "jelle_speed", "[0]");
    
    //registrer init med server
    register_srvcmd("jelle_init", "jelle_init");
    register_srvcmd("jelle_kd", "jelle_kd");
    register_srvcmd("jelle_ku", "jelle_ku");
    
    //registrer init med sh mod
    shRegHeroInit(gHeroName, "jelle_init");
    shRegKeyDown(gHeroName, "jelle_kd");
    shRegKeyUp(gHeroName, "jelle_ku");
    
}

//de skal download model filer
public plugin_precache()
{
    g_model = precache_model("models/player/jelle/jelle.mdl");
    g_p_model = precache_model("models/shmod/jelle/p_gun.mdl");
    g_v_model = precache_model("models/shmod/jelle/v_gun.mdl");
    laser_spr = precache_model("sprites/laserbeam.spr");
}

public jelle_init()
{
    new temp[6]; //temp varial
    read_argv(1, temp, 5); //første argument er spilleren
    new id = str_to_num(temp); //laver string til et nummer til ID
    
    read_argv(2, temp,5); //har de helten eller ikke?
    
    new hasPowers = str_to_num(temp);
    
    gHasJelle[id] = (hasPowers !=0); //har de helten?
    
    //fjern kræfter hvis de dropper helten
    if (!hasPowers && gHasJelle[id] && is_user_alive(id))
    {
        shRemHealthPower(id);
        shRemArmorPower(id);
        shRemGravityPower(id);
        shRemSpeedPower(id);
    }
    //hvis de har helten, sæt model på
    if(hasPowers)
    {
        jelle_set_model(id)
    }
}

public jelle_set_model(id)
{
    if (!shModActive() || !is_user_alive(id) || !gHasJelle[id]) return PLUGIN_CONTINUE; //ender funktion hvis sh mod er af, de dropper helten, eller dør
    
    cs_set_user_model(id, "jelle.mdl"); //sætter player model
    
    return PLUGIN_CONTINUE;
}

public jelle_damage(id)
{
    if (!shModActive() || !is_user_alive(id)) return PLUGIN_CONTINUE;
    
    new damage = read_data(2);
    new weapon, bodypart, attacker = get_user_attacker(id, weapon, bodypart) //Hvilket våben der bliver brugt, hvor der bliver ramt og angriber
    new headshot = bodypart == 1 ? 1 : 0
    new clip, ammo, wpnid = get_user_weapon(id,clip, ammo);
    
    if(wpnid == CSW_M4A1)
    {
        set_pev(id, pev_viewmodel, engfunc(EngFunc_AllocString, g_v_model)); //vis model
        set_pev(id, pev_weaponmodel, engfunc(EngFunc_AllocString, g_p_model)); //vis player model
    }
    
    if (attacker <= 0 || attacker > SH_MAXSLOTS ) return PLUGIN_CONTINUE; //gjorde verden damage, hvis det var, slut funktion
    
    if(gHasJelle[attacker] && weapon == CSW_M4A1 && is_user_alive (id))
    {
        new extraDamage = floatround(damage * get_cvar_float("jelle_m4a1mult") - damage); //udregner extra damage
        
        if (extraDamage > 0)
        {
            shExtraDamage( id, attacker, extraDamage, "m4a1", headshot ); //"m4a1" er våben description
        }
    }
}

public jelle_kd()
{
    new temp[6];
    read_argv(1, temp, 5);
    new id = str_to_num(temp);
    
    if (!is_user_alive(id)) return; //er de døde?
    
    new aimvec[3] //aimvector
    new tid, tbody; //der hvor laser rammer
    new FFOn = get_cvar_num("mp_friendlyfire"); //er der friendly fire?
    get_user_origin(id, aimvec, 3); //hvor aimer de?
    
    jelle_laser_effects(id, aimvec); //viser laser
    
    get_user_aiming(id, tid, tbody);
    //hvor aimer de på personen?
    
    if (is_user_alive(tid) && (FFOn || get_user_team(id) != get_user_team(tid)) //target skal være i live, og er FF på, og er personen på det andet team?
    {
        new damage:
        switch(tbody)
        {
            case 1: damage = 200; //headshot
            case 2: damage = 50; //bodyshot
            case 3: damage = 50; //maveskud
            case 4: damage = 20; //arm skud
            case 5: damage = 20; //arm skud
            case 6: damage = 20; //ben skud
            case 7: damage = 20; //ben skud
        }
        shExtraDamage(tid, id, damage, "jelle_laser"); //laver skade
    }
}

public jelle_laser_effects(id, aimvec[3]
{
    new origin[3];
    get_user_origin(id, origin, 1);
    
    //deligt
    message_hegin(MSG_BROADCAST,SVC_TEMPENTITY)
    write_byte(27)
    write_coord(origin[0]) //position
    write_coord(origin[1])
    write_coord(origin[2])
    write_byte(10)
    write_byte(250) //rød farve på laser
    write_byte(0) //grøm farve på laser
    write_byte(0) //blå farve på laser
    write_byte(2) //liv
    write_byte(1) //decay
    message_end()
    
    //beampoints
    message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
    write_byte(0)
    write_coord(origin[0])
    write_coord(origin[1])
    write_coord(origin[2])
    write_coord(aimvec[0])
    write_coord(aimvec[1])
    write_coord(aimvec[2])
    write_short(laser_spr) //spriten der blev precached
    write_byte(1) //framestart
    write_byte(5) //framerate
    write_byte(2) //liv
    write_byte(40) //bredde
    write_byte(0) //lyd
    write_byte(250) //rød
    write_byte(0) //grøn
    write_byte(0) //blå
    write_byte(200) //lysstyrke
    write_byte(200) //hastighed
    message_end()
}
I get these errors:
Invalid expression, assumed zero on line 144
Invalid sybol name "" on line 146

Any help?
Jelle is offline
Send a message via MSN to Jelle
Xel0z
Senior Member
Join Date: Apr 2006
Location: Netherlands
Old 09-04-2009 , 17:01   Re: Problem with keydown?
Reply With Quote #9

Change this line:
PHP Code:
new FFOn get_cvar_num("mp_friendlyfire"
to
PHP Code:
new FFOn get_cvar_pointer("mp_friendlyfire"
Or if you are using sh 1.2 or higher, you can also forget that line, and change FFOn in line 143 to
PHP Code:
sh_friendlyfire_on() 
Though Im not sure if that is the problem. I also see that on line 145, you put this:
PHP Code:
new damage
You might have done that a little too quickly. Change the : to ;

Hope this helped you if even a little.
__________________
Heroes: TESS-One Working on: Grit (Fixing bugs)
Xel0z is offline
Send a message via MSN to Xel0z
Xel0z
Senior Member
Join Date: Apr 2006
Location: Netherlands
Old 09-04-2009 , 17:11   Re: problem with hasPowers?
Reply With Quote #10

In case you wanted to know what the difference between integers and strings is:
Integers are whole numbers, like 1 or 2. Strings re pieces of text between the "". And while we are this anyway. Float is a number with a digits behind the dot. Example: 1.8 or 2.45324 or 9.1231241.
__________________
Heroes: TESS-One Working on: Grit (Fixing bugs)
Xel0z is offline
Send a message via MSN to Xel0z
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 21:36.


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