-
Content Count
349 -
Joined
-
Last visited
-
Days Won
31
Reputation Activity
-
Tio Akima reacted to Hyroshima in Add cooldown dynamically on npcs
I made this function for a friend and it can be useful in general.
basically allows you to add wait time for something in npc, you can put different times in the same npc using the reference names.
a utility to put in Global_Functions
//== Function F_SetNpcCD ================================ // Add cooldown to access specific functions of a pc but not limited //== // callfunc "F_SetNpcCD","reference_name",time_in_seconds{,cooldown type}; // Examples: // callfunc("F_SetNpcCD","name_example0",45) // Adds 45 second cooldown at player level // callfunc("F_SetNpcCD","name_example1",85,1) // Adds 1 minute 25 second cooldown at player level // callfunc("F_SetNpcCD","name_example2",120,2) // Adds 2-minute cooldown at account level function script F_SetNpcCD { set .@var$,(countstr(getarg(0)," ")?replacestr(getarg(0)," ","_"):getarg(0)); set .@time,getarg(1); set .@type,getarg(2,0); setd(""+(.@type==2?"#":"")+""+.@var$+"_time",gettimetick(2)+.@time); return; } //== Function F_GetNpcCD ================================ // Check npc access cooldown //== // callfunc "F_GetNpcCD","name_example"{,cooldown type}; // Examples: // callfunc("F_GetNpcCD","name_example0") // returns "NPC Cooldown: 00H:00M:45s (player)" // callfunc("F_GetNpcCD","name_example1",1) // returns "NPC Cooldown: 00H:01M:25s (player)" // callfunc("F_GetNpcCD","name_example2",2) // returns "NPC Cooldown: 00H:02M:00s (account)" function script F_GetNpcCD { set .@var$,(countstr(getarg(0)," ")?replacestr(getarg(0)," ","_"):getarg(0)); set .@type,getarg(1,0); if(gettimetick(2) < getd(""+(.@type==2?"#":"")+""+.@var$+"_time")) { set .@ts,getd(""+(.@type==2?"#":"")+""+.@var$+"_time")-gettimetick(2); set .@h,.@ts/3600; set .@m,(.@ts%3600)/60; set .@s,.@ts%60; dispbottom "NPC Cooldown: "+(.@h<10?"0"+.@h:.@h)+"H:"+(.@m<10?"0"+.@m:.@m)+"M:"+(.@s<10?"0"+.@s:.@s)+"s ("+(.@type==2?"account":"player")+")"; end; } return; }
-
Tio Akima got a reaction from brunosc in [showcase] Pokemon League Map + Yugi-oh Duel Map
Pokemon League Map
Hi, I'm doing some duel maps.
pokemon league map, can be used as a duel map or map for any event, depending on your creativity.
Did you see the dueling map of the yugi-oh?
Haven't seen it yet?
can also be used for dueling, or for any event that is
map print:
Yugi-oh duel map
-
Tio Akima got a reaction from Ridley in [showcase] Pokemon League Map + Yugi-oh Duel Map
Pokemon League Map
Hi, I'm doing some duel maps.
pokemon league map, can be used as a duel map or map for any event, depending on your creativity.
Did you see the dueling map of the yugi-oh?
Haven't seen it yet?
can also be used for dueling, or for any event that is
map print:
Yugi-oh duel map
-
Tio Akima got a reaction from sirmiles20 in [Showcase] Survival - The infected city
Hi ... I've finished a series of maps recently, inspired by a horror story theme. The main map is a modern city, freely inspired by Raccon City (RE)
with classic places such as the famous Mansion of RE1 and also the raccon city police station.
A map made for RO, but the idea was to remove all the medieval elements, to maintain a modern aesthetic, to approach our present world.
The second map is MANSION (freely inspired)
This map has 4 floors (two extremely large 2 floors (150x150), 1 small floor and basement.
The maps are well detailed and with the possibility to compose a series of quest's and events.
There are many possibilities. It can be used as an instance, as main city, map for events
(such as zombie invazion, undead, savior, vips events, hunter), quests, etc. just be creative.
Tell me your opinion, maybe you can help me improve.
Thank you.
ps: The police department is not ready yet.*****
(Some images to better illustrate)
THE CITY
Now some images of the Mansion with 4 floors
I like it when the maps are well filled, with no empty spaces, and with many details,
something that suggests that there is life there, with dirt and trash on the floor, etc ...
01F and 02F
03F and basement
-
Tio Akima got a reaction from Samuel in Medieval Tavern - [FREE MAP]
View File Medieval Tavern - [FREE MAP]
Hi.
I am Tio Akima.
This is one of my works in creating maps / graphs.
Available to the community. (free)
Medieval Tavern Map
Map made in Browedit (Thanks Borf)
3d models made in 3D Max
Any error / bug let me know so I can fix it.
Submitter Tio Akima Submitted 05/18/20 Category Maps & Textures
-
Tio Akima got a reaction from Caspian in Medieval Tavern - [FREE MAP]
View File Medieval Tavern - [FREE MAP]
Hi.
I am Tio Akima.
This is one of my works in creating maps / graphs.
Available to the community. (free)
Medieval Tavern Map
Map made in Browedit (Thanks Borf)
3d models made in 3D Max
Any error / bug let me know so I can fix it.
Submitter Tio Akima Submitted 05/18/20 Category Maps & Textures
-
Tio Akima got a reaction from SyncMaster in [Showcase] RPD - Raccoon City Police Department
Hi ... I've finished a series of maps recently, inspired by a horror story theme. The main map is a modern city,
freely inspired by Raccon City (RE)
with classic places such as the famous Mansion of RE1 and also the raccon city police station.
A map made for RO, but the idea was to remove all the medieval elements, to maintain a modern aesthetic, to approach our present world.
I've posted here the city and also the mansion ...
I recently finished the police department
RPD - Raccoon City Police Department
B01
first floor with several rooms
B02
second floor with several other rooms
Now there are 3 huge maps
The city, the mansion and the police department
RPD
MANSION
CITY
-
Tio Akima got a reaction from eitopop in [Showcase] Survival - The infected city
Hi ... I've finished a series of maps recently, inspired by a horror story theme. The main map is a modern city, freely inspired by Raccon City (RE)
with classic places such as the famous Mansion of RE1 and also the raccon city police station.
A map made for RO, but the idea was to remove all the medieval elements, to maintain a modern aesthetic, to approach our present world.
The second map is MANSION (freely inspired)
This map has 4 floors (two extremely large 2 floors (150x150), 1 small floor and basement.
The maps are well detailed and with the possibility to compose a series of quest's and events.
There are many possibilities. It can be used as an instance, as main city, map for events
(such as zombie invazion, undead, savior, vips events, hunter), quests, etc. just be creative.
Tell me your opinion, maybe you can help me improve.
Thank you.
ps: The police department is not ready yet.*****
(Some images to better illustrate)
THE CITY
Now some images of the Mansion with 4 floors
I like it when the maps are well filled, with no empty spaces, and with many details,
something that suggests that there is life there, with dirt and trash on the floor, etc ...
01F and 02F
03F and basement
-
Tio Akima reacted to Cretino in doubt about weight
I think the 'problem' is the character inventory size.
The client send the message 'You're overweight', but really you don't have space in your inventory.
-
Tio Akima reacted to Kenpachi in callfunc Heal group in area
Hi.
//members id getpartymember(getcharid(CHAR_ID_PARTY), 1); You have to use type 2 instead of 1 to get the account ID of all party members instead of their char IDs.
(The getunits() command will collect the GID of found units, which is the account ID for player type units. (BL_PC))
Additionally you should immediately save the IDs and the member count to prevent other scripts from interfering with your data.
// Get party data. getpartymember(getcharid(CHAR_ID_PARTY), 2); .@p_mem_cnt = $@partymembercount; copyarray(.@p_mem_aid[0], $@partymemberaid[0], .@p_mem_cnt);
.@range= 10; This should be 5 for a 10x10 area. When setting this to 10, your area is 20x20.
.@count = getunits((BL_MOB | BL_PC), .@units, -1, .@m$, max(0, .@x - .@range), max(0, .@y - .@range), .@x + .@range, .@y + .@range); Any reason to get monster type units (BL_MOB), too? 😯 If you only want to heal party members you should only collect player type units (BL_PC).
Also better use false for <limit>. -1 works, too, but is less readable.
.@count = getunits(BL_PC, .@units, false, .@m$, max(0, .@x - .@range), max(0, .@y - .@range), .@x + .@range, .@y + .@range);
And finally you have to add a nested loop to your loop to compare the account IDs. (Loop through found units and for each iteration loop through party members.)
for (.@i = 0; .@i < .@count; .@i++) { dispbottom(".@units[" + .@i + "]: " + .@units[.@i]); //debug - print the user id (getunits) for (.@j = 0; .@j < .@p_mem_cnt; .@j++) { dispbottom(".@p_mem_aid[" + .@j + "]: " + .@p_mem_aid[.@j]); //debug - print the user id (getpartymember) if (.@units[.@i] == .@p_mem_aid[.@j]) { dispbottom("Party member found. Try healing!"); //debug - party member found if (attachrid(.@p_mem_aid[.@j])) { percentheal(.@porcent, .@porcent); specialeffect(310, AREA, playerattached()); } } } }
That's just a quick draft. Syntax errors are for free. 😋
~Kenpachi
-
Tio Akima reacted to Kenpachi in [bug] dispbottom
Hi.
The dispbottom() messages were hidden due to misconfigured chat filters.
~Kenpachi
-
Tio Akima reacted to Cretino in combat arena error
I made some changes, now is working fine.
OnPCDieEvent part:
OnPCLogoutEvent part:
-
Tio Akima reacted to Cretino in combat arena error
'getmapusers' only will count a 'dead player' if he still in the map... but you already added this:
When a player die, it send back to 'kame_house',
Now about the the quit players you can do this:
Add:
And change these:
OnPCDieEvent part:
Enter arena part:
I think is it, not tested.
-
Tio Akima reacted to Cretino in combat arena error
I made a little mistake, now is tested and working:
-
Tio Akima got a reaction from Hyroshima in [Showcase] RPD - Raccoon City Police Department
Hi ... I've finished a series of maps recently, inspired by a horror story theme. The main map is a modern city,
freely inspired by Raccon City (RE)
with classic places such as the famous Mansion of RE1 and also the raccon city police station.
A map made for RO, but the idea was to remove all the medieval elements, to maintain a modern aesthetic, to approach our present world.
I've posted here the city and also the mansion ...
I recently finished the police department
RPD - Raccoon City Police Department
B01
first floor with several rooms
B02
second floor with several other rooms
Now there are 3 huge maps
The city, the mansion and the police department
RPD
MANSION
CITY
-
Tio Akima got a reaction from Caspian in [Showcase] RPD - Raccoon City Police Department
Hi ... I've finished a series of maps recently, inspired by a horror story theme. The main map is a modern city,
freely inspired by Raccon City (RE)
with classic places such as the famous Mansion of RE1 and also the raccon city police station.
A map made for RO, but the idea was to remove all the medieval elements, to maintain a modern aesthetic, to approach our present world.
I've posted here the city and also the mansion ...
I recently finished the police department
RPD - Raccoon City Police Department
B01
first floor with several rooms
B02
second floor with several other rooms
Now there are 3 huge maps
The city, the mansion and the police department
RPD
MANSION
CITY
-
Tio Akima reacted to Kenpachi in OnPCSkillUseEvent + getskillname
Hi.
Untested; just converted to Hercules!
OnPCSkillUseEvent.diff
getskillname.diff
~Kenpachi
-
Tio Akima got a reaction from Hyroshima in Barter shop doubt
@4144
@Hyroshima
Thank you for your help! it worked. ty
[SOLVED]
-
Tio Akima reacted to Hyroshima in Barter shop doubt
try this way:
- trader Shop1 FAKE_NPC,{ OnInit: tradertype(NST_BARTER); sellitem White_Herb, 100, Red_Potion, 2; sellitem Blue_Herb, 200, Orange_Potion, 3; end; } - trader Shop2 FAKE_NPC,{ OnInit: tradertype(NST_BARTER); sellitem Green_Herb, 100, Red_Potion, 4; sellitem White_Herb, 100, Orange_Potion, 1; end; } - trader Shop3 FAKE_NPC,{ OnInit: tradertype(NST_BARTER); sellitem Apple, -1, Orange_Potion, 1; sellitem Praetorian_Shield, 100, Berserk_Potion, 10; end; } prontera,159,284,4 trader Barter Shop 4_M_KID1,{ mes "Select the shop for open!"; switch(select("Shop 1:Shop 2:Shop 3")) { case 1: close2; openshop "Shop1"; break; case 2: close2; openshop "Shop2"; break; case 3: close2; openshop "Shop3"; break; } end; }
-
Tio Akima reacted to 4144 in Barter shop doubt
try use two or more npcs. Even at same position if you want shops hidden.
also for barter shops you must set shop type. in your example type is missing
-
Tio Akima reacted to Kenpachi in costume item (body sprite)
Hi.
Maybe a little bit late, but...
You can disguise a player with the changelook() script command. Just use an item's OnEquipScript/OnUnequipScript.
An example to disguise the player as Swordman when equipping Hat.
{ Id: 2220 AegisName: "Hat" Name: "Hat" Type: "IT_ARMOR" Buy: 1000 Weight: 200 Def: 2 Loc: "EQP_HEAD_TOP" ViewSprite: 16 OnEquipScript: <" changelook(LOOK_BASE, Job_Swordman); "> OnUnequipScript: <" changelook(LOOK_BASE, Class); "> } But this works only with jobs. If you have custom body sprites, you have to add them as new jobs.
~Kenpachi
-
Tio Akima reacted to meko in Create instance for just one player
It's IOT_CHAR, not IM_CHAR
.@char = getcharid(CHAR_ID_CHAR); .@account = getcharid(CHAR_ID_ACCOUNT); .@map_name$ = "mapname"; // the map you want to instance .@instance_name$ = sprintf("%s@%i%d", .@map_name$, .@char, gettime(GETTIME_SECOND)); // a unique name for your instance .@instance = instance_create(.@instance_name$, .@account, IOT_CHAR); // create the instance and attach it to the char .@instanced_map_name$ = sprintf("%s@%i", .@map_name$, .@instance); // a unique name for the instanced map .@map$ = instance_attachmap(.@map_name$, .@instance, false, .@instanced_map_name$); // attach the instanced map to your instance instance_timeout(600, 1, .@instance); // alive and idle timeout, in seconds // setup is ready so init the instance and warp the player instance_init(.@instance); warpchar(.@map$, 20, 20, .@char); // the (x,y) starting point -
Tio Akima got a reaction from Naruto in jobchange and sc_end
when i use pc-> jobchange () it finishes some SC_ (sc originals) and my sc_ custom it doesn't finish ...
The idea is that he will stop finishing all SCs
the two original sc_ he is finalizing ... I can not understand why he finalizes these two, and my custom not
I looked at the whole pc->jobchange() function
And I found this condition that from status_change_end,
I left commented //
// if ((job & MAPID_UPPERMASK) != (sd->job & MAPID_UPPERMASK)) { //Things to remove when changing class tree. // const int class_idx = pc->class2idx(sd->status.class); // short id; // for (i = 0; i < MAX_SKILL_TREE && (id = pc->skill_tree[class_idx][i].id) > 0; i++) { //Remove status specific to your current tree skills. // enum sc_type sc = status->skill2sc(id); // if (sc > SC_COMMON_MAX && sd->sc.data[sc]){ // status_change_end(&sd->bl, sc, INVALID_TIMER); // } // } // } but it did not work
the strange thing is that it finish (sc_end) only the original sc
in sc_config they are set the same
with these flags
Flags: { NoDeathReset: true NoDispelReset: true NoClearanceReset: true NoMadoReset: true }
@EDIT SOLVED!
-
-
Tio Akima reacted to meko in get npc name
use strnpcinfo() like
strnpcinfo(NPC_NAME_UNIQUE, "", npc id)