-
Posts
639 -
Joined
-
Last visited
-
Days Won
89
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by Haziel
-
-
It's simple, it'll be easier if you make the item only equipabble by Transclasses, but:
Just put it on the OnEquip and OnUnequip of your Item.{ if (Class > 4000 && Class < 4023) changebase Class + 22; },{ changebase Class; }
-
Hmm, try this:
OnPCLoginEvent: setarray .@mac_list$[0],"bc:ee:7b:57:b4:2","bc:ee:7b:58:b4:2"; query_sql("SELECT `last_mac` FROM `login` WHERE `account_id` = '" + getcharid(3) + "'", .@mac_ip$); for (set .@i, 0; .@i < getarraysize(.@mac_list$); set .@i, .@i + 1){ if (.@mac_ip$ == .@mac_list$[.@i]){ atcommand "@jail " + strcharinfo(0); break; } } end;
-
Interesting, but it's all server-sided?
-
First of all, It's supposed to be a permanent change or appearence change?
Yes, it's possible to make it to change accordingly to caster's job, but I need to know what you want to achieve. -
Did you check if this occurs in a normal character?
You may have set to GMs to have all skills. -
Voices are cool, I'm supposing you made a mode server-side for it, right?
It would be nice if the player could be able to turn it on and off.
Also, you could make your mod read the file names from an array variable stored on character to see what files to play, It could open possibilities of choosing the voice of your character.
Also, about the jump, the 'punch sound' seems just not right placed. -
It seems you applied Nemo's Custom Job patches and forgot to put the Lua Files located on NEMO's folder on your data.
-
After making any update on source, you need to recompile.
-
It jumps towards the direction it's facing?
So, could be a Custom Skill and you could assign space as a hotkey.
By the way, good job.
I would replace the sparkle effect for some steam or smoke.
It's a nice customization, could be useful for events or plataform-game-like custom events. -
This problem was caused in a commit of rAthena, can be fixed applying this update.
- 1
-
Take a look on db/skill_nocast_db.txt.
-
See db/item_stack.txt.
-
What's your rAthena rev?
-
I could not understand the point on your request.
When It is needed to compare MACs? It is to block Dual Account?
And what is supposed to happens when two MACs are equal? -
Actually, It seems to be a bug of the OnSellItem.
Find:if (!.@card_id) { mes " ^777777(none)^000000"; emotion e_swt; close; }
Change:
if (!.@card_id) { mes " ^777777(none)^000000"; emotion e_swt; next; close; }
With a next it'll works.
-
This is the THIRD thread you open with the same subject.
You were already being helped here, and also opened this after.
And now, a third one, this is NOT the correct way to ask for help.
By the way... *sigh*
To set it to 10 points, find:setarray .Points[0],1,5; // Points per <normal card>,<MVP card>
And change to:
setarray .Points[0],1,10; // Points per <normal card>,<MVP card>
Done.
As for it to only accept MVP Cards, find:for(set .@i,0; .@i<getarraysize(@sold_nameid); set .@i,.@i+1) if (@sold_nameid[.@i] > 4000 && @sold_nameid[.@i] < 4700) { if (.Level) { query_sql("SELECT `LV` FROM `mob_db` WHERE `DropCardid` = "+@sold_nameid[.@i],.@lv); if (.@lv < .Level) { dispbottom getitemname(@sold_nameid[.@i])+" is under the minimum level."; continue; } } set .@card_id[getarraysize(.@card_id)], @sold_nameid[.@i]; set .@card_amt[getarraysize(.@card_amt)], @sold_quantity[.@i]; set .@mvp, compare(.MVP$,""+@sold_nameid[.@i]); mes ((.@mvp)?" ^FF0000":" ^777777")+@sold_quantity[.@i]+"x "+getitemname(@sold_nameid[.@i])+"^000000"; set .@card_total, .@card_total+(@sold_quantity[.@i]*((.@mvp)?.Points[1]:.Points[0])); }
And change to:
for(set .@i,0; .@i<getarraysize(@sold_nameid); set .@i,.@i+1) if (@sold_nameid[.@i] > 4000 && @sold_nameid[.@i] < 4700) { set .@mvp, compare(.MVP$,""+@sold_nameid[.@i]); if (!.@mvp) { continue; } set .@card_id[getarraysize(.@card_id)], @sold_nameid[.@i]; set .@card_amt[getarraysize(.@card_amt)], @sold_quantity[.@i]; mes ((.@mvp)?" ^FF0000":" ^777777")+@sold_quantity[.@i]+"x "+getitemname(@sold_nameid[.@i])+"^000000"; set .@card_total, .@card_total+(@sold_quantity[.@i]*((.@mvp)?.Points[1]:.Points[0])); }
It may works, I'm not entirely sure, it's untested.
- 1
-
Can you belive that the problem in your code is that:
2941,MM_EVIL_SHADOW3 , Evil Shadow‚Evil Shadow,142,153400,1,8863,6736,1,2795,4062,89,44,120,87,66,33,106,27,10,12,2,6,47,0x37B5,150,432,432,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2942,MM_EVIL_FANATICS , Evil Fanatic‚Evil Believer,151,8256000,1,1008650,988954,1,2949,4289,166,103,118,72,40,55,213,30,10,12,2,6,67,0x37B5,150,768,768,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Commas, weren't real commas? At least, were not being read as commas. -
For that matter, you'll need to do a query_sql, otherwise, it'll only works when the character is online.
set .@accid, "SELECT `account_id` FROM `char` WHERE `name` =" + @playersearchname; set .@wp, "SELECT `value` FROM `acc_reg_num` WHERE `key` = "#warningpoints" AND account_id = " + .@accid; mes .@wp + " points.";
-
First, you need some to do some investigation on the lines it said the error is on (4853 and 20748), but, my guess is that your old source is using a function (probably pc_readregistry) in a old way.
You should compare with any other fragment which use the same functions to see how it works nowadays. -
As I could search about, Flee is only Base Level + AGI (on Pre-Renewal), while the Hit is Base Level + DEX.
To calculate the hit, the formula seems to be:Dodge Rate(%) = 100% - (Attacker Hit + 80 - Defenders Flee)
It means, for your monster, yes, It has Flee 80.
Dodge Rate(%) = 100% - (Attacker Hit + (Base Level + AGI) - Defenders Flee) Dodge Rate(%) = 100% - (Attacker Hit + 80 - Defenders Flee) DR = 100 - (Attacker Hit + 80 - 80) DR = 100 - Attacker Hit
With 80 of Flee, the Player needs 100 of Hit so the monster be unable to dodge.
(Again, these are Pre-Renewal mechanics!) -
Please, show how you edited your files.
-
I thought about suggesting it, it's a really fancier way, but, focused on teach you what you wanted to learn.
Glad you made it.- 1
-
Thor Generator is broken.
The updater works but the generator corrupt files, specially when it comes to be non-grf patches.
So, use Tokei's GRF Editor to generate your .thor files, it's easier and simpler to do it.
-
As said in doc/script_commands.txt:
*set <variable>,<expression>{,<char_id>}; *set(<variable>,<expression>{,<char id>}) This command will set a variable to the value that the expression results in. Variables may either be set through this command or directly, much like any other programming language (refer to the "Assigning variables" section). This is the most basic script command and is used a lot whenever you try to do anything more advanced than just printing text into a message box. set @x,100; will make @x equal 100. set @x,1+5/8+9; will compute 1+5/8+9 (which is, surprisingly, 10 - remember, all numbers are integer in this language) and make @x equal it. Returns the variable reference (since trunk r12870).
You can add a target character at the end of set, but you need it's CharID:
You're using the function set incorrectly, It's:
set #warningpoints, #warningpoints + 1; // It means, set a new value to variable #warningpoints. // The new value is the current value of #warningpoints plus one.
Now, let's target it to a player.
Since you need to get the Char ID and you only have the Char Name, we need to convert it, using getcharid():*getcharid(<type>{,"<character name>"}) This function will return a unique ID number of the invoking character, or, if a character name is specified, of that player. Type is the kind of associated ID number required: 0 - Character ID 1 - Party ID 2 - Guild ID 3 - Account ID 4 - Battle Ground ID For most purposes other than printing it, a number is better to have than a name (people do horrifying things to their character names). If the character is not in a party or not in a guild, the function will return 0 if guild or party number is requested. If a name is specified and the character is not found, 0 is returned. If getcharid(0) returns a zero, the script got called not by a character and doesn't have an attached RID. Note that this will cause the map server to print "player not attached!" error messages, so it is preferred to use "playerattached" to check for the character attached to the script. if (getcharid(2) == 0) mes "Only members of a guild are allowed here!";
Since you got the name via input:
getcharid(0, $@warnplayer$)
Let's attach it to set:
set #warningpoints, #warningpoints + 1, getcharid(0, $@warnplayer$); // It means, set a new value for #warningpoints. // The new value is the current value of #warningpoints plus one. // Set it to the Char ID of the given Char Name via the variable $@warnplayer$ set by input.
A simple look in doc/script_commands.txt could lead you to the solution...
- 1
Auto Change Baby Job Following Class
in Scripting Support
Posted
I said it's is supposed to be put on OnEquip and OnUnequip {}s.
This way.