Item Preview pretty much requires a dynamic script (unless you enjoy duplicating lines... endlessly).
So, https://rathena.svn.sourceforge.net/svnroot/rathena/trunk/npc/custom/quests/quest_shop.txt
I'm not exactly sure what you mean. There's a 'progressbar' command that will create, well, a progress bar that can make it look like you're "casting" the teleport skill (and it'll be interrupted when you're hit):
Yes, bindatcmd allows you to create new atcommands without modifying source. If you bind to an existing command, the atcommand will invoke your script and not the source function. There is no command which checks for an existing command.
No, you didn't fix the last error. I posted a solution in your other thread yesterday, you must've missed it.
//...
set q_timer, gettimetick(2)+<delay time>;
//...
if (refat == 1 && gettimetick(2) < q_timer) {
//...
set .@timer, gettimetick(2)-q_timer; // q_timer is not defined
set .@wait, 9000-.@timer; // variable .@wait is not used
set refat,1;
close;
// needs closing curly
if((refat == 1 || .@timer < 9000)){ // should be &&, and .@var is not defined
close;
So long as it doesn't mean a huge cost in performance or database size... why not? Nobody will mind an added convenience/safety measure, even if they don't have a use for it.
Change dr_time$ to #dr_time$ to make it account-based.
Blocking multiple IPs is more complicated. The basic form would be:
Create a new SQL table, ex. `daily_ip`.
Query attached player's `login`.`last_ip` into `daily_ip`.
Check if other players' IPs are in `daily_ip` (more queries!).
Each new day (OnHour00), clear `daily_ip`.
@shadowseph: That could be simplified by setting the permanent variable as:
gettimetick(2) + <delay, in seconds>
Then,
if (gettimetick(2) < q_timer) {
mes "You must wait a little longer~";
close;
}
As far as I know, yes, everything should be backwards compatible. Many of the new sprites/classes will not display properly on clients older than 2010.
*pcblockmove <id>,<option>;
Prevents the given ID from moving when the option != 0, 0 enables the ID to move again.
ID should be able to be GID of a monster/NPC or AID from a character.
*unitstop <GID>;