Notice: Any messages purporting to come from this site telling you that your password has expired, or that you need to "verify" your details, making threats, or asking for money, are
spam. We do not email users with any such messages. If you have lost your password you can obtain a new one by using the
password reset link.
Entire forum
➜ SMAUG
➜ SMAUG coding
➜ Giving skills to players.
Giving skills to players.
|
It is now over 60 days since the last post. This thread is closed.
Refresh page
Posted by
| Robert Powell
Australia (367 posts) Bio
|
Date
| Sun 27 Mar 2005 11:24 PM (UTC) |
Message
| Is there an easy way that i can give a skill to a player as an award. Sort of like bestow but for skills not commands.
Im working on a new remort system for my 1 class mud, i dont wish to go through the whole creation process to select a remort class as others have done, but still need a way that i can give the remorted players a few new skills.
Any ideas on how i might achieve this would be most welcome. |
Just a guy having a bit of fun. Nothing more, nothing less, I do not need I WIN to feel validated. | Top |
|
Posted by
| Zeno
USA (2,871 posts) Bio
|
Date
| Reply #1 on Mon 28 Mar 2005 12:15 AM (UTC) |
Message
| You could use sset:
sset <player> <skill> <percent>
But because of the way skills write, it may not save. |
Zeno McDohl,
Owner of Bleached InuYasha Galaxy
http://www.biyg.org | Top |
|
Posted by
| Robert Powell
Australia (367 posts) Bio
|
Date
| Reply #2 on Mon 28 Mar 2005 12:54 AM (UTC) |
Message
| What i have done is a bunch of if checks to determine what remort number the PC is, then give them the skill like this,
victim->pcdata->learned[gsn_backstab] = 1;
then saved the pfile.
When i open the pfile the skill is there with 1 as the learned value.
Skill 1 'backstab'
My trouble is now when the PC quits and logs back in they loose the skill, so im now trying to find where things are being changed.
If anyone has any ideas where i should look would be most welcomed, Thanks for now. |
Just a guy having a bit of fun. Nothing more, nothing less, I do not need I WIN to feel validated. | Top |
|
Posted by
| Nick Cash
USA (626 posts) Bio
|
Date
| Reply #3 on Mon 28 Mar 2005 01:09 AM (UTC) |
Message
| Try looking over the do_teach function. I think that should outline anything you should need to know. |
~Nick Cash
http://www.nick-cash.com | Top |
|
Posted by
| Zeno
USA (2,871 posts) Bio
|
Date
| Reply #4 on Mon 28 Mar 2005 01:23 AM (UTC) |
Message
| To lay it out, skills will not save unless the player is the right class or race that the skill is under. What I see in do_teach doesn't seem to have a way around that.
victim->pcdata->learned[sn] += int_app[get_curr_int( ch )].learn;
sprintf( buf, "You teach %s $T.", victim->name );
act( AT_ACTION, buf, ch, NULL, skill_table[sn]->name, TO_CHAR );
sprintf( buf, "%s teaches you $T.", ch->name );
act( AT_ACTION, buf, victim, NULL, skill_table[sn]->name, TO_CHAR );
My thought would be to add a new skill flag, OVERRIDE or the sort, and have it if a skill is flagged with that, then do not remove from a players skills. |
Zeno McDohl,
Owner of Bleached InuYasha Galaxy
http://www.biyg.org | Top |
|
Posted by
| Robert Powell
Australia (367 posts) Bio
|
Date
| Reply #5 on Mon 28 Mar 2005 01:57 AM (UTC) Amended on Mon 28 Mar 2005 02:17 AM (UTC) by Robert Powell
|
Message
| Ok where are the checks made to see if the PC can have a skill or not.
Im sort of gathering the pfile just holds skill practiced value and its the class file that determines if you can use the skill.
Hmmm and i thought this was going to be easy HEHEH.
I have seen do_teach/do_study working, but i guess they only allow you to learn skills that your race/class combination receives and not to gain extra skills not in the race/class files. |
Just a guy having a bit of fun. Nothing more, nothing less, I do not need I WIN to feel validated. | Top |
|
Posted by
| Zeno
USA (2,871 posts) Bio
|
Date
| Reply #6 on Mon 28 Mar 2005 02:05 AM (UTC) |
Message
| In save.c, look for these lines:
bug( "Fread_char: unknown skill.", 0 );
else
{
ch->pcdata->learned[sn] = value;
/* Take care of people who have stuff they shouldn't *
* Assumes class and level were loaded before. -- Altrag *
* Assumes practices are loaded first too now. -- Altrag */
if ( ch->level < LEVEL_IMMORTAL )
{
if ( skill_level( ch, sn) >= LEVEL_IMMORTAL )
{
ch->pcdata->learned[sn] = 0;
ch->practice++;
}
*points to the comment* |
Zeno McDohl,
Owner of Bleached InuYasha Galaxy
http://www.biyg.org | Top |
|
Posted by
| Nick Cash
USA (626 posts) Bio
|
Date
| Reply #7 on Mon 28 Mar 2005 02:42 AM (UTC) |
Message
| Heh, sorry if do_teach didn't help, I work with SWR in which skills are more or less available to everyone. |
~Nick Cash
http://www.nick-cash.com | Top |
|
Posted by
| Robert Powell
Australia (367 posts) Bio
|
Date
| Reply #8 on Mon 28 Mar 2005 03:02 AM (UTC) |
Message
| Thanks, that now allows them to use the skills gained, do you have any idea how i can display them, i have been playing about with this in do_practice
if ( ch->level < skill_table[sn]->skill_level[ch->class]
|| (!IS_IMMORTAL(ch) && skill_table[sn]->skill_level[ch->class] == 0) )
continue;
i just cannot work out how to display the learned skills with the class skills,
if ( ch->pcdata->learned[sn] <= 0 )
continue;
I can get it to show all learned or all class, just not both, any ideas on what to do.
Thanks for all the help so far |
Just a guy having a bit of fun. Nothing more, nothing less, I do not need I WIN to feel validated. | Top |
|
Posted by
| Robert Powell
Australia (367 posts) Bio
|
Date
| Reply #9 on Mon 28 Mar 2005 03:11 AM (UTC) |
Message
| So whats SWR do different to SmaugFUSS in relation to how skills are delt out. I would like to make skills and spells available to PC's without the restriction of Class and Race, Teach and Study were going to be at the heart of this, with some skills being received via remorting.
I sort of like those old ROM muds where if you remorted enought times and got enough practices you could GAIN every skill that was on offer.
All i need now is to make the gained skills viewable in practice and i think im close to having what i want. |
Just a guy having a bit of fun. Nothing more, nothing less, I do not need I WIN to feel validated. | Top |
|
Posted by
| Greven
Canada (835 posts) Bio
|
Date
| Reply #10 on Mon 28 Mar 2005 04:09 AM (UTC) |
Message
| There are no practice points in SWR. If you can find the teacher for the skill, you can practice it. All skills are available as long as you have the levels in that class. |
Nobody ever expects the spanish inquisition!
darkwarriors.net:4848
http://darkwarriors.net | Top |
|
Posted by
| Robert Powell
Australia (367 posts) Bio
|
Date
| Reply #11 on Mon 28 Mar 2005 05:34 AM (UTC) Amended on Mon 28 Mar 2005 05:35 AM (UTC) by Robert Powell
|
Message
| Have been doing some trauling through the code and came accross the SECRETSKILL flag which i can use to hide skills, this is niffty, so what i have done is added a check to stop secret skills being practiced untill you study the spell or are taught the skill basics.
Not exactly what i had im mind when i started this but it will work how i wanted it to, even if its a bit messy.
I will do a simular thing for remort only skills, i will just have to add all the skills to the class file, something i didnt want to do.
One day if i get up the courage, i might rip out all that class file crap for skills and come up with a better system. Untill then, Anyone want to go throught and flag all the skill and spells for me, and add them to the class file? hehe,
What no takers, guess im the sucker then.
Thanks everyone, you have been a great help. |
Just a guy having a bit of fun. Nothing more, nothing less, I do not need I WIN to feel validated. | Top |
|
The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).
To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.
28,756 views.
It is now over 60 days since the last post. This thread is closed.
Refresh page
top