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

Just started scripting myself, please look.


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
FukfaCe
Member
Join Date: Apr 2006
Old 10-26-2008 , 12:31   Just started scripting myself, please look.
Reply With Quote #1

I am really, really new at scripting myself, actually, I have only used hero creators until now. I have made this basic hero by my bare hands, without any help. I just want to know if I did it all right. I haven't tested it at all.

I used my own comments in danish just so I know what I do every time I do something. And if you are danish, then correct me if I am wrong

And, this is not 1.2 as you surely can see. This is the old one. I want to learn that one too.
And as you surely also can see, I used amxx studio.

Well, to the code:

Code:
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <superheromod> new gHeroName[]="Jelle" //navnet på helten new bool:gHasSuperPower[SH_MAXSLOTS+1] //en slot per spiller public plugin_init() {     register_plugin("SUPERHERO Jelle", "0.1", "Jelle"); //registrerer plugin         register_cvar("Super_level", "1"); //registrer cvar til level for helten     register_cvar("Super_health", "200"); //registrer cvar til liv     register_cvar("Super_armor", "300"); //registrer cvar til armor         shCreateHero(gHeroName, "Hero Power List", "Hero Discription", false, "Super_level");     shSetMaxHealth(gHeroName, "Super_health"); //sætter liv på personen med helten     shSetMaxArmor(gHeroName, "Super_armor"); //sætter armor på personen med helten     //superheromod.inc     //stock shCreateHero(HeroName[], heroPower[], heroHelp[], bool:requiresKeyEvents, HeroLevel[])     register_srvcmd("Super_init", "Super_init"); //registrer heltens funktion til serveren     shRegHeroInit(gHeroName, "Super_init"); //registrer heltens init til sh mod } public Super_init() {     new temp[6]; //en midlertidig variabel     read_argv(1,temp,5); //Ved at læse den første argument vil give dig ID af den person der har valgt helten     new id = str_to_num(temp); //flytter string til et nummer og ligger det som et ID         read_argv(2,temp,5); //andet argument er om de har helten eller ej         new hasPowers = str_to_num(temp);         gHasSuperPower[ID] = (HasPowers != 0); //(HasPowers != 0) vil enten komme tilbage med 1, hvis det er rigtigt, eller 0 hvis det er forkert     if (!hasPowers && gHasSuperPower [ID] && is_user_alive(id)) { //Kontrollerer om personen har haft helten men ikke ved om personen er i live eller ej         shRemHealthPower(id); //fjerner liv hvis helten bliver droppet     }     if (!hasPowers && gHasSuperPower [ID] && is_user_alive(id)) { //kontroller om personen har haft helten men ikke ved om personen er i live eller ej         shRemArmorPower(id); //Fjerner armor hvis helten bliver droppet     }         } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ ansicpg1252\\ deff0\\ deflang1033{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par } */

Thanks in advance.
__________________
Jelles legeplads (DK) sh server (mine)


Last edited by vittu; 10-28-2008 at 13:26.
FukfaCe is offline
Send a message via MSN to FukfaCe
Guilty Spark
Member
Join Date: Jan 2008
Location: clansolo.com
Old 10-26-2008 , 15:17   Re: Just started scripting myself, please look.
Reply With Quote #2

There's really no need to learn the "old one" as the "new one" is the same but using optimized functions / added functionality / renamed items. Anyways, you should work on your scripting style to make the code easier to read for others as well as for yourself. As for the code itself:

Remember, variables are case-sensitive. You cannot use "ID" in place of "id".

After learning how to use CVARs properly, you should look into PCVARs, which are a bit more confusing for beginners but are worth learning for later on.

There are more mistakes in your code, but to teach you how to identify and fix them yourself, you should compile it and you will receive error messages telling you what is wrong and on what line it's at.
__________________
Superhero Mod ([S0|0]) - 63.209.37.33:27015
[IMG]http://img157.**************/img157/1031/guiltyspark2tn9.png[/IMG]
Guilty Spark is offline
Send a message via AIM to Guilty Spark
FukfaCe
Member
Join Date: Apr 2006
Old 10-26-2008 , 15:52   Re: Just started scripting myself, please look.
Reply With Quote #3

Thanks allot!

I will compile it and see what errors I have then.

I am learning the "old one" first, because there is no tutorial with the "new one", and it is just confusing that I have to read first, then go check how it is done in 1.2. Think it is much easier to learn the "old one" first.

But isn't there anytime when you use ID instead of id?
__________________
Jelles legeplads (DK) sh server (mine)

FukfaCe is offline
Send a message via MSN to FukfaCe
yang
Veteran Member
Join Date: May 2005
Location: galoreservers.net
Old 10-26-2008 , 17:30   Re: Just started scripting myself, please look.
Reply With Quote #4

ID and id is no different. Just be consistent. If you use ID then all your id's use ID. visa versa.
__________________
yang is offline
Send a message via AIM to yang
FukfaCe
Member
Join Date: Apr 2006
Old 10-27-2008 , 10:19   Re: Just started scripting myself, please look.
Reply With Quote #5

So it doesn't matter what I am using?
__________________
Jelles legeplads (DK) sh server (mine)

FukfaCe is offline
Send a message via MSN to FukfaCe
FukfaCe
Member
Join Date: Apr 2006
Old 10-27-2008 , 10:54   Error in line 36 self made hero
Reply With Quote #6

I did compile it, and I fixed all errors except one. I don't really know what to do with this one:

public Super_init() {
new temp[6]; //en midlertidig variabel
read_argv(1,temp,5); //Ved at læse den første argument vil give dig ID af den person der har valgt helten
new id = str_to_num(temp); //flytter string til et nummer og ligger det som et ID

read_argv(2,temp,5); //andet argument er om de har helten eller ej

new hasPowers = str_to_num(temp);

gHasSuperPower[id] = (HasPowers != 0);

It is the last line witch is line 36.
__________________
Jelles legeplads (DK) sh server (mine)

FukfaCe is offline
Send a message via MSN to FukfaCe
Guilty Spark
Member
Join Date: Jan 2008
Location: clansolo.com
Old 10-28-2008 , 01:11   Re: Error in line 36 self made hero
Reply With Quote #7

Quote:
Originally Posted by FukfaCe View Post
I did compile it, and I fixed all errors except one. I don't really know what to do with this one:

public Super_init() {
new temp[6]; //en midlertidig variabel
read_argv(1,temp,5); //Ved at læse den første argument vil give dig ID af den person der har valgt helten
new id = str_to_num(temp); //flytter string til et nummer og ligger det som et ID

read_argv(2,temp,5); //andet argument er om de har helten eller ej

new hasPowers = str_to_num(temp);

gHasSuperPower[id] = (HasPowers != 0);

It is the last line witch is line 36.
Notice the difference in capitalization. Use one or the other, you can't have both referring to the same thing. So, to fix this, change either "hasPowers" to "HasPowers", or "HasPowers" to "hasPowers".
__________________
Superhero Mod ([S0|0]) - 63.209.37.33:27015
[IMG]http://img157.**************/img157/1031/guiltyspark2tn9.png[/IMG]
Guilty Spark is offline
Send a message via AIM to Guilty Spark
FukfaCe
Member
Join Date: Apr 2006
Old 10-28-2008 , 12:35   Re: Just started scripting myself, please look.
Reply With Quote #8

Oh yes. Like that.

Now I did fix it, and well, the hero works perfect!
__________________
Jelles legeplads (DK) sh server (mine)

FukfaCe is offline
Send a message via MSN to FukfaCe
FukfaCe
Member
Join Date: Apr 2006
Old 10-28-2008 , 14:09   Do I need to do is_user_alive always?
Reply With Quote #9

Now I just added gravity to my hero, but I think I have made some double, or triple work. If you look at the code, I used:

Code:
if (!hasPowers && gHasSuperPower [id] && is_user_alive(id)) {         shRemGravityPower(id); }

For every ability added. Do I reallt need to do that? Cant I just do it like this:


Code:
if (!hasPowers && gHasSuperPower [id] && is_user_alive(id)) {         shRemGravityPower(id);         shRemArmorPower(id);         shRemHealthPower(id); }

I think that would be a better way since it doesn't have to read all that "is_user_alive"-thing more than one time.

Well, the code:

Code:
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <superheromod> new gHeroName[]="Jelle" //navnet på helten new bool:gHasSuperPower[SH_MAXSLOTS+1] //en slot per spiller public plugin_init() {     register_plugin("SUPERHERO Jelle", "0.1", "Jelle"); //registrerer plugin         register_cvar("Super_level", "1"); //registrer cvar til level for helten     register_cvar("Super_health", "200"); //registrer cvar til liv     register_cvar("Super_armor", "300"); //registrer cvar til armor     register_cvar("Super_grav", "0.5"); //registrer cvar til tyngdekraft         shCreateHero(gHeroName, "Hero Power List", "Hero Discription", false, "Super_level");     shSetMaxHealth(gHeroName, "Super_health"); //sætter liv på personen med helten     shSetMaxArmor(gHeroName, "Super_armor"); //sætter armor på personen med helten     shSetMinGravity(gHeroName, "Super_grav"); //sætter tyndgekraft på personen med helten     //superheromod.inc     //stock shCreateHero(HeroName[], heroPower[], heroHelp[], bool:requiresKeyEvents, HeroLevel[])     register_srvcmd("Super_init", "Super_init"); //registrer heltens funktion til serveren     shRegHeroInit(gHeroName, "Super_init"); //registrer heltens init til sh mod } public Super_init() {     new temp[6]; //en midlertidig variabel     read_argv(1,temp,5); //Ved at læse den første argument vil give dig ID af den person der har valgt helten     new id = str_to_num(temp); //flytter string til et nummer og ligger det som et ID         read_argv(2,temp,5); //andet argument er om de har helten eller ej         new hasPowers = str_to_num(temp);         gHasSuperPower[id] = (hasPowers != 0); //(HasPowers != 0) vil enten komme tilbage med 1, hvis det er rigtigt, eller 0 hvis det er forkert     if (!hasPowers && gHasSuperPower [id] && is_user_alive(id)) { //Kontrollerer om personen har haft helten men ikke ved om personen er i live eller ej         shRemHealthPower(id); //fjerner liv hvis helten bliver droppet     }     if (!hasPowers && gHasSuperPower [id] && is_user_alive(id)) { //kontrollerer om personen har haft helten men ikke ved om personen er i live eller ej         shRemArmorPower(id); //Fjerner armor hvis helten bliver droppet     }     if (!hasPowers && gHasSuperPower [id] && is_user_alive(id)) { //Kontrollerer om personen har haft helten men ikke ved om personen er i live eller ej         shRemGravityPower(id); //Fjerner gravity hvis helten bliver droppet     }         } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ ansicpg1252\\ deff0\\ deflang1033{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par } */
__________________
Jelles legeplads (DK) sh server (mine)


Last edited by vittu; 10-28-2008 at 14:31.
FukfaCe is offline
Send a message via MSN to FukfaCe
Atspulgs
Senior Member
Join Date: Mar 2008
Old 10-28-2008 , 15:11   Re: Just started scripting myself, please look.
Reply With Quote #10

Yes you can do that and i think its better way too.
__________________
-=DG Ats
DoomedGang web page -
http://www.doomedgang.com
Atspulgs 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 18:18.


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