Jump to content

AnnieRuru

Script Developers
  • Content Count

    1677
  • Joined

  • Last visited

  • Days Won

    245

Reputation Activity

  1. Upvote
    AnnieRuru got a reaction from IndieRO in King of Emperium Hill   
    I think its better to have a release topic for this instead of me update the script across separate topics
     
    Download: Hercules 1.3
    Script
    Plugin for Hercules
    Download: rAthena 1.2
    Script.
    Patch for rAthena
     
    what this event do ? ( huh ? so popular script and I still need to explain ? )
    1. make a guild
    2. join this event
    3. whack the emperium
    4. defends it until times up
    hahaha ....
     
     
    How to configure the time:
    L_start: <-- the label to start the event
    change OnClock2000: into OnSat2000: to start this event on Saturday 8pm
    L_end: <-- the label to end the event
    change OnClock2030: into OnSat2030: to end this event on Saturday 8:30pm,
    effectively makes this event runs 30 minutes
     
     
    Frequently Asked Questions:
    Question : why the Guild member can hit their own Emperium ?
    Answer : because you didn't patch and recompile
    Question: there is an exploit in this event, guild master can use Emergency Recall to abuse the prize
    Answer : I already fixed it in this topic, now the prize reward will be given after the winner warp outside the map
     
     
    original topic from eathena forum
    http://www.eathena.ws/board/index.php?showtopic=174222
    yeah ... I have been fixing this script since 7 years ago
     
     
  2. Upvote
    AnnieRuru got a reaction from Edgar in BG queue announcement   
    when you talk about bg_queue
    it should be this
     

     
    so note, this battleground system runs real time
    the queue is process behind npc script, so there is nothing we can do when somebody starts registering
    the script function only start to execute when the queue is full
     
    go to confbattleground.conf
    /* feature is not complete */ feature_off: falsechange to false, then find KVM (lvl80+), replace with this },{ name: "KVM (Level 80 and up)" //must match the name in client files event: "bg_pvp::OnStart" minLevel: 1 maxLevel: 150 reward: { // useless ! should be done by npc scripting win: 0 loss: 0 draw: 0 } minPlayers: 2 /* minimum amount of players to start */ maxPlayers: 30 /* maximum amount of players. NOTE: I wonder why they set to 60 when MAX_BG_MEMBERS is only 30 */ minTeamPlayers: 999 /* can I off this ? this one is bugged */ delay_var: "BG_PVP_Tick" /* char variable name that will store the delay for this match */ maxDuration: 1 /* maximum duration in minutes ... this one also bugged */ fillDuration: 20 /* time in seconds to wait for more applications when minimum has been reached */ pGameDuration: 20 /* time to wait for players to confirm their attendence after queueing process has finished */ },{npc scripthttp://upaste.me/d66e107963faa3a04
    oh and my source modification of course
    http://herc.ws/board/topic/4570-battleground-system-without-waitingroom/
     
    so how to make this work
     
    1st, click on the [battle] button just below your character info
    2nd, select "KVM (Level 80 and up)", then click individual
    3rd, dual client another character, then do the same
     
    4th, go back the 1st character, this window should pop up on 1st character, click [Close]

     
    5th wait about 20 seconds, this window should pop up on both characters, both characters click [OK]

     
    .... the rest self-explain, read the script yourself
     
    to announce that the battleground started,
    find OnStart: label, add the announcement below by yourself
     
     
    EDIT:
    for those who are testing right now, yes, now you know how bug the system is
  3. Upvote
    AnnieRuru got a reaction from WalkingBad in [ Request ] @dealer command   
    just use bindatcmd
    simple
    - script slslfkdsscxvxc -1,{OnInit: bindatcmd "dealer", strnpcinfo(0)+"::Onaaa"; end;Onaaa: callshop "blahblah", 1; end;}- shop blahblah -1,678:-1,608:-1btw, if callshop with type 2, it ask you to sell items instead of want to buy it =/
  4. Upvote
    AnnieRuru got a reaction from WalkingBad in Custom Headgear (H) which gives SL_Spirit   
    https://github.com/rathena/rathena/blob/master/db/const.txt#L1304
    rathena's SC_SPIRIT in hercules is SC_SOULLINK
    https://github.com/HerculesWS/Hercules/blob/master/db/const.txt#L876
    you'll get stoned if used your script
    and also, that's outdated technique
     
    http://upaste.me/f02211100e4c8f24d
  5. Upvote
    AnnieRuru reacted to KeyWorld in Web Grf Viewer   
    GRF Viewer
     


     
     
    Hi there !
     
    If you remember, in the past I released a buggy web grf viewer.
    It was slow, didn't work with big GRF because of memory issue, can't decode DES encryption, now time to present its new version.
     
    Basically this web tool allow you to select your own GRFs and display their contents directly in the browser. Nothing to download.
    As its name suggest, it can't write into the GRF, there are currently no API available (for security reason) to have write access to the user computer, so the only point of this tool is to display its content and search on it. There are no way to repack, add or modify files. Just view and extract files.
     
    This tool is built using only javascript, html5 and webgl, it is in my point of view a demonstration of what can be done in the web today with new technologies.
    It can view as thumbnail some sort of files : bmp, gif, jpeg, tga, spr, pal, and some tools are included to render models and maps or listening audio files.
     
    Two possibilities at the start up :
    Select a GRF (click on "select files", or drag drop your grfs in the box).
    Note: once the page quit or reloading you have to re-select the files, the browser do not remember them. Click on the data folder, in this case, it will show resources from my remote client.

     
    This tool is an application from roBrowser, it's using roBrowser's core. So if you ever find a bug, I'll be really happy to fix it !
     
    Note: it's possible the viewer stop rendering a directory content because it encounter a corrupted file in the GRF (wrong gzip encryption, or invalid file offset) or the file is encrypted.
     
    You can test this tool online here: http://www.robrowser.com/prototype/GRF-Viewer/
     
    Some preview:
     











     
    All feedback are welcome.
    Have fun~
  6. Upvote
    AnnieRuru reacted to Olrox in [Guide] Documentation about Map & 3D development   
    Thanks for your interest in this guide. The main purpose of all these lines is, to have an -advance level- resource for those guys that wish to go further with their map creations.
     
    This guide will cover a useful amount of guides that has never been out there before. This is a compilation of things I have learned so far until this day;  there is more mapping than just learning browedit!
     
    Please... Don't ask for support if you have not fullfilled the previous points I'm listing here.
     
    Another point: This guide will not contain links to download copyright software. Here, I will only list the software you will need to follow the video tutorials I will add... it is up to you too obtain this software by purchasing it, or Google it.
     
    P.S.: Forget my english in some videos I talk spanish natively.
     
     

    GR2 Granny Custom 3D models in RO
    Watch in Full Screen at 1080p
     


     
    About:
    "An example of how you can add your own custom 3D GR2 models as mobs in Ragnarok Online just like the WoE Guardians or the emperium. You can add them as mobs, or even as NPC.
     
    Software Requirements:
    Granny Pack: https://dl.dropboxusercontent.com/u/52175822/Granny.rar
    Granny Converter: http://rathena.org/board/files/file/3022-granny-converter-by-ricky92/
    Umodel: http://www.gildor.org/downloads
    ActorXImporter: http://www.gildor.org/projects/unactorx
    RO2 GoTW: https://mega.co.nz/#F!tQwyQCTD!JNEehQnbvdl6Ww5JYo3Kcg
     
    If you want to only do a quick test maybe you can download directly the Mejonora already extracted: https://dl.dropboxusercontent.com/u/52175822/mejonora_test.rar
     
    Tips & Troubleshoting:

    FBX to RSM Animated Models
    Watch in Full Screen at 1080p
     


     
     
    About:
    "Importing and doing your
    own animated RSM Models
    now it is possible.."
     
    Software Requirements:
    RSMConverter 3.0 by  ---> LINK
    FBX Converter 2013.3 by Autodesk ---> LINK
    3DS Max 2013 or More
     
     

    RSW and GND Maps into FBX
    Watch in Full Screen at 1080p
     

     
     
    About:
    "Think about the possibilities you can have
    by importing whole Ragnarok Maps
    and be able to edit them with the all powerful
    3DS Max design tool" ... transform ground shapes,
    into complex structures with curves presents for ex.
    modify vertices structures of map areas, etc."
     
     
    Software Requirements:
    ROMAPCONV9 by Xarple LINK
    FBX Converter by Autodesk LINK
    3DS Max 2012 or More
     

    Importing and Editing RSM Models into 3DS
    Watch in Full Screen at 1080p
     

     
    About:
    "You might know that it is possible to Import 3DS to RSM ...
    But how about the reverse of this? In this tutorial you will learn
    How to Import RSM to 3DS And open your possibilities
    to do complex editions to default Ragnarok Models"
     
    Software Requirements:
    Browedit
    3D Object Converter any version.
    3DS Max 7 or more. I use ver 9 here.
     

     
    I will try to keep this tutorial updated. Volume 1 is ready, and Volume 2 is under progress... Any Inquiries, suggestion or... thanks! are very well appreciated, and will keep me motivated to add more and more videos of all of these things I have learned in years with a lot of effort!.
     
    Thanks to all and don't forget to follow this thread. Have a nice day.~
  7. Upvote
    AnnieRuru reacted to Ind in custom Instance script always kick the players out of the map   
    Its intentional, when a player moves out of a map the server removes it and keeps it in memory-limbo, it is only placed back within map bounds when its done loading -- so that a number of things only take effect when you are really visible in the map, otherwise things like aoe damage would be able to hit you -- as well as monsters, while you werent even able to be visible, that also guarantees that other packets are not sent to you while you're into loading screen
  8. Upvote
    AnnieRuru reacted to Ind in custom Instance script always kick the players out of the map   
    I think that makes sense, you're setting idle for 1 second, meaning if the instance is left empty for 1 second or more it is destroyed (it might be destroyed even before you warp into it) -- I'm not sure why you can't reproduce.
  9. Upvote
    AnnieRuru reacted to Ind in custom Instance script always kick the players out of the map   
    its a bit late for me to test so I'll be doing the testing when I wake up, I'll be replying now though:
    not to my knowledge, I have never played with map names that start with numbers though.there is one limitation left on that which is mapindex.h MAX_MAPINDEX (might be soon dropped), which is currently 2000the instances have been made to be reload-persistent, they reset and the script can acknowledge this action on OnInstanceInit: which is run when the instance starts and when reloadscript happens -- you can use *instance_set_respawn(<map_name>,<x>,<y>{,<instance_id>}); to control the progress of the instance and where to teleport the users when reload happens ( e.g. if endless tower kept a instance var of the progress, i.e. 'Room, you could update instance_set_respawn on every room users clear, and when restart happens you just warp them to the begin of the room in question and respawn the monsters (as reloadscript clears the mobs, unfortunately) )hum O__O to my best memory permanent instances shouldn't call instance_set_timeout at all
  10. Upvote
    AnnieRuru got a reaction from Adam in (Guild) Antagonism System   
    isn't the plugin is just below the code ?
    and there is no need to read the sql table, its not like this stuff is run when the player is offline
    to actually hit the player, both the source and target has to be online, so just use guild->check_alliance with enemy flag to read them
     
    make the script shorter a bit
    src/map/battle.c | 6 ++++++ 1 file changed, 6 insertions(+)diff --git a/src/map/battle.c b/src/map/battle.cindex 24f39a3..52b24ec 100644--- a/src/map/battle.c+++ b/src/map/battle.c@@ -6020,6 +6020,12 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f if( (s_bl = battle->get_master(src)) == NULL ) s_bl = src; + if ( s_bl->type == BL_PC && t_bl->type == BL_PC ) {+ TBL_PC *sd = BL_CAST( BL_PC, s_bl );+ if ( guild->check_alliance( sd->status.guild_id, ((TBL_PC*)t_bl)->status.guild_id, 1 ) && !map->list[sd->bl.m].flag.town && !map->list[sd->bl.m].flag.nowarpto )+ return 1;+ }+ if ( s_bl->type == BL_PC ) { switch( t_bl->type ) { case BL_MOB: // Source => PC, Target => MOB http://upaste.me/28fd11097df8e9a10 
     
    you know ... I start to think that lilith's faction system can actually be release entirely with plugins ..
  11. Upvote
    AnnieRuru got a reaction from JulioCF in custom Instance script always kick the players out of the map   
    I feel the need to make a topic about this, because many members has report about this bug
    http://herc.ws/board/topic/4850-fight-your-clone/?p=31745
    http://herc.ws/board/topic/4652-raid-instances/?p=30813
    and I didn't make a bug report, because I'm not able to reproduce the bug
    .
    ..
    .
    the example script,
    http://upaste.me/9b2110648e7662562
    ok, I admit that I used a trick
    instance_attachmap( "guild_vs2", .@ins, 1, getcharid(3)+"FYC" )which will make as many map as possibleand a new map is added everytime an user register this instance
     
    1. is there some kind of map name that is invalid to use ?
    because if accountID is 2001234, map name will be "2001234FYC" <-- string length :10, should be safe
     
     
    2. I wonder is there a limit to how many maps that the server can create ?
    I also wonder is there any hardcoded limit for how many maps the server can load
     
     
    3. after the instance has destroy, do the map unload ?
    when I wrote a custom job pvp script that each class has their own pvp room
    http://rathena.org/board/topic/92946-job-vs-job-pvp/?p=246463 <-- advertising the awesomeness of hercules
    I noticed that when the script loaded, there is some lag ... ok the map is loading
    but when I reloadscript, there is no lag -> the map is still available and didn't unload ?
    I thought those instance map should be destroyed the moment that instance_id destroy
     
     
    funny about this is ... I asked Hadeszeus to change the instance_set_timeout
    http://herc.ws/board/topic/4652-raid-instances/?p=30921
    he said that will fix it ... ? but when I'm not able to reproduce this bug, I also uncertain about this
  12. Upvote
    AnnieRuru got a reaction from roygbiv in help [Skills] Adding Custom Passive   
    I remember Emistry asked the same question before on IRC
    the problem is because of http://herc.ws/board/topic/512-skill-id-processing-overhaul/ hercules implement the skill ID reading in such a way that its harder to add more skill ID ( to save memory )
    so we have to use the skill ID that is within the range of the gap that gravity not using
  13. Upvote
    AnnieRuru got a reaction from Angelmelody in shuffle algorithm - Commited into Github   
    I really need a topic for this shuffle algorithm or I have to keep press the search button non-stop
     
    what is Shuffle Algorithm ?
    - it generate a set of numbers in random order that the numbers are not repeated
    Wiki -> http://en.wikipedia.org/wiki/Fisher–Yates_shuffle
     
    This script is no longer necessary,
    use the one inside Global Function
    Commit Link
     
    Credit to @Haru
    Pull #872
     
     
     
  14. Upvote
    AnnieRuru got a reaction from evilpuncker in More like a sugestion oh well...   
    http://upaste.me/08de11117d6ab17d3
     
    you can even make multiple copies of the script, just by copy paste in the new npc and change the npc_id as the quest ID
    provided that you are using hercules of course, only hercules has character array
  15. Upvote
    AnnieRuru got a reaction from ScriptingPhailure in (Guild) Antagonism System   
    isn't the plugin is just below the code ?
    and there is no need to read the sql table, its not like this stuff is run when the player is offline
    to actually hit the player, both the source and target has to be online, so just use guild->check_alliance with enemy flag to read them
     
    make the script shorter a bit
    src/map/battle.c | 6 ++++++ 1 file changed, 6 insertions(+)diff --git a/src/map/battle.c b/src/map/battle.cindex 24f39a3..52b24ec 100644--- a/src/map/battle.c+++ b/src/map/battle.c@@ -6020,6 +6020,12 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f if( (s_bl = battle->get_master(src)) == NULL ) s_bl = src; + if ( s_bl->type == BL_PC && t_bl->type == BL_PC ) {+ TBL_PC *sd = BL_CAST( BL_PC, s_bl );+ if ( guild->check_alliance( sd->status.guild_id, ((TBL_PC*)t_bl)->status.guild_id, 1 ) && !map->list[sd->bl.m].flag.town && !map->list[sd->bl.m].flag.nowarpto )+ return 1;+ }+ if ( s_bl->type == BL_PC ) { switch( t_bl->type ) { case BL_MOB: // Source => PC, Target => MOB http://upaste.me/28fd11097df8e9a10 
     
    you know ... I start to think that lilith's faction system can actually be release entirely with plugins ..
  16. Upvote
    AnnieRuru got a reaction from Cabrera in More like a sugestion oh well...   
    http://upaste.me/08de11117d6ab17d3
     
    you can even make multiple copies of the script, just by copy paste in the new npc and change the npc_id as the quest ID
    provided that you are using hercules of course, only hercules has character array
  17. Upvote
    AnnieRuru got a reaction from Alexandria in An item behaves like @autoloot   
    - script kdjshfksfj -1,{OnInit: bindatcmd "autoloot", strnpcinfo(0)+"::OnReqItem"; bindatcmd "alootid", strnpcinfo(0)+"::OnReqItem"; bindatcmd "autolootitem", strnpcinfo(0)+"::OnReqItem"; bindatcmd "autoloottype", strnpcinfo(0)+"::OnReqItem"; end;OnReqItem: .@itemid = Red_Potion; // require item if ( !countitem( .@itemid ) ) { message strcharinfo(0), "You must have "+ getitemname( .@itemid ) +" to use "+ .@atcmd_command$; end; } if ( .@atcmd_numparameters ) atcommand .@atcmd_command$ +" "+ implode( .@atcmd_parameters$, " " ); else atcommand .@atcmd_command$; end;}why not just use bindatcmd and overwrite those autoloot stuffsso you can rentitem with an expire tick, then while the player having the items, they can use autoloot
    http://herc.ws/wiki/Timers_%28Scripting%29#AttachNPCTimer1. attachnpctimer is a npc type timer that is attached to the npc
    2. addtimer is a player type timer that is attached to the player
    they are different
    3. sleep type timer ... my favorite
    4. static timer ... gettimetick(2)
  18. Upvote
    AnnieRuru got a reaction from Adam in shuffle algorithm - Commited into Github   
    I really need a topic for this shuffle algorithm or I have to keep press the search button non-stop
     
    what is Shuffle Algorithm ?
    - it generate a set of numbers in random order that the numbers are not repeated
    Wiki -> http://en.wikipedia.org/wiki/Fisher–Yates_shuffle
     
    This script is no longer necessary,
    use the one inside Global Function
    Commit Link
     
    Credit to @Haru
    Pull #872
     
     
     
  19. Upvote
    AnnieRuru got a reaction from Hadeszeus in Need this script applied to the party, not only the killer in the party   
    - script custom_drop -1,{OnNPCKillEvent: if ( !getcharid(1) ) { if ( checkidle() > 10 ) // 10 seconds end; if ( rand(4000) < 25 ) // .@rand_gc_drop ... 25/4000 = 1/160 getitem 512,1; if ( rand(2000) < 5 ) // .@rand_sc_drop .... 5/2000 = 1/400 getitem 513,1; if ( rand(1000) < 1 ) // .@rand_gc_drop .... 1/1000 getitem 511,1; } else { .@map$ = strcharinfo(3); // added a map check getpartymember getcharid(1), 1; getpartymember getcharid(1), 2; for ( .@i = 0; .@i < $@partymembercount; .@i++ ) { if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { attachrid $@partymemberaid[.@i]; if ( strcharinfo(3) != .@map$ || checkidle() > 10 ) continue; if ( rand(4000) < 25 ) // .@rand_gc_drop ... 25/4000 = 1/160 getitem 512,1; if ( rand(2000) < 5 ) // .@rand_sc_drop .... 5/2000 = 1/400 getitem 513,1; if ( rand(1000) < 1 ) // .@rand_gc_drop .... 1/1000 getitem 511,1; } } } end;}
  20. Upvote
    AnnieRuru got a reaction from Adam in Need this script applied to the party, not only the killer in the party   
    - script custom_drop -1,{OnNPCKillEvent: if ( !getcharid(1) ) { if ( checkidle() > 10 ) // 10 seconds end; if ( rand(4000) < 25 ) // .@rand_gc_drop ... 25/4000 = 1/160 getitem 512,1; if ( rand(2000) < 5 ) // .@rand_sc_drop .... 5/2000 = 1/400 getitem 513,1; if ( rand(1000) < 1 ) // .@rand_gc_drop .... 1/1000 getitem 511,1; } else { .@map$ = strcharinfo(3); // added a map check getpartymember getcharid(1), 1; getpartymember getcharid(1), 2; for ( .@i = 0; .@i < $@partymembercount; .@i++ ) { if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { attachrid $@partymemberaid[.@i]; if ( strcharinfo(3) != .@map$ || checkidle() > 10 ) continue; if ( rand(4000) < 25 ) // .@rand_gc_drop ... 25/4000 = 1/160 getitem 512,1; if ( rand(2000) < 5 ) // .@rand_sc_drop .... 5/2000 = 1/400 getitem 513,1; if ( rand(1000) < 1 ) // .@rand_gc_drop .... 1/1000 getitem 511,1; } } } end;}
  21. Upvote
    AnnieRuru got a reaction from 安赫尔 in Need this script applied to the party, not only the killer in the party   
    - script custom_drop -1,{OnNPCKillEvent: if ( !getcharid(1) ) { if ( checkidle() > 10 ) // 10 seconds end; if ( rand(4000) < 25 ) // .@rand_gc_drop ... 25/4000 = 1/160 getitem 512,1; if ( rand(2000) < 5 ) // .@rand_sc_drop .... 5/2000 = 1/400 getitem 513,1; if ( rand(1000) < 1 ) // .@rand_gc_drop .... 1/1000 getitem 511,1; } else { .@map$ = strcharinfo(3); // added a map check getpartymember getcharid(1), 1; getpartymember getcharid(1), 2; for ( .@i = 0; .@i < $@partymembercount; .@i++ ) { if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { attachrid $@partymemberaid[.@i]; if ( strcharinfo(3) != .@map$ || checkidle() > 10 ) continue; if ( rand(4000) < 25 ) // .@rand_gc_drop ... 25/4000 = 1/160 getitem 512,1; if ( rand(2000) < 5 ) // .@rand_sc_drop .... 5/2000 = 1/400 getitem 513,1; if ( rand(1000) < 1 ) // .@rand_gc_drop .... 1/1000 getitem 511,1; } } } end;}
  22. Upvote
    AnnieRuru got a reaction from Adam in An item behaves like @autoloot   
    - script kdjshfksfj -1,{OnInit: bindatcmd "autoloot", strnpcinfo(0)+"::OnReqItem"; bindatcmd "alootid", strnpcinfo(0)+"::OnReqItem"; bindatcmd "autolootitem", strnpcinfo(0)+"::OnReqItem"; bindatcmd "autoloottype", strnpcinfo(0)+"::OnReqItem"; end;OnReqItem: .@itemid = Red_Potion; // require item if ( !countitem( .@itemid ) ) { message strcharinfo(0), "You must have "+ getitemname( .@itemid ) +" to use "+ .@atcmd_command$; end; } if ( .@atcmd_numparameters ) atcommand .@atcmd_command$ +" "+ implode( .@atcmd_parameters$, " " ); else atcommand .@atcmd_command$; end;}why not just use bindatcmd and overwrite those autoloot stuffsso you can rentitem with an expire tick, then while the player having the items, they can use autoloot
    http://herc.ws/wiki/Timers_%28Scripting%29#AttachNPCTimer1. attachnpctimer is a npc type timer that is attached to the npc
    2. addtimer is a player type timer that is attached to the player
    they are different
    3. sleep type timer ... my favorite
    4. static timer ... gettimetick(2)
  23. Upvote
    AnnieRuru got a reaction from Begin in noitem plugin   
    Download: 1.9
    plugin
     
    tested with
    prontera mapflag noitem 0,4,5 prontera mapflag noitem IT_HEALING, IT_WEAPON, IT_ARMOR disable player from using healing items, and preventing equip weapon and armor.
    .
    prontera mapflag noitem Poring_Card prontera mapflag noitem 4001 disable player from using Poring Card
     
     
    Credit to original author -> https://rathena.org/board/topic/59578-mapflags-noitem-and-noskill2/
    Wynn_
     
  24. Upvote
    AnnieRuru got a reaction from Hadeszeus in requesting this kind of script? if doable.   
    why not just use changelook ...
    prontera,156,183,5 script kjdhfsksjf 100,{ mes "input an item to preview the look"; next; input .@id, 500, 32768; if ( getitemname(.@id) == "null" ) { mes "no such item"; close; } if ( getiteminfo( .@id, 2 ) != IT_ARMOR && !( getiteminfo( .@id, 5 ) & 256 ) ) { mes "that item is not a upper headgear"; close; } @look_temp = getlook(LOOK_HEAD_TOP); addtimer 100, strnpcinfo(0)+"::OnQuit"; changelook LOOK_HEAD_TOP, getiteminfo( .@id, 11 ); mes "how's the look ?"; next; changelook LOOK_HEAD_TOP, @look_temp; @look_temp = 0; mes "bye"; close;OnQuit: changelook LOOK_HEAD_TOP, look_temp; @look_temp = 0; end;}euphy's quest shop already has the preview function isn't it ?
  25. Upvote
    AnnieRuru got a reaction from Mhalicot in [AtCommand] afk   
    that's a very reassuring answer ..
     
    fixed
    http://upaste.me/0fd910896b0cf5621
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.