-
Content Count
349 -
Joined
-
Last visited
-
Days Won
31
Posts posted by Tio Akima
-
-
Hi
I wanted help to fix this instance info window.
This window (with the destroy button) appears when you are out of the instance saying that it is available/accessible, etc... You can even use the button to destroy and terminate the instance.However, this window bug completely if the time spent in the instance expires.
When the dwell time expires, should the player be sent to out and the instance destroyed?With the instance destroyed, it should no longer show the window with the button and saying "available"... right? but the window bugs, and never disappears again (hahaha), and the destroy button stops working.
Something is wrong with the function called when the dwell time in the instance expires.the time out func:
*instance_set_timeout(<alive timeout>, <idle timeout>{, <instance id>}) Parameter <alive timeout> specifies the total amount of time the instance will exist. Parameter <idle timeout> specifies how long players have, when they are outside of the instance, until it is destroyed.
<idle timeout> works perfectly. when it expires, the instance is destroyed correctly, the window disappears.
the problem is when the <alive timeout> expires. The window bugs, the button bugs...
maybe it could be the func in instance.c or the clif call -
20 hours ago, Hyroshima said: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; }
congrats Hyro, this will help a lot of people.
Nice func! Thanks for sharing ❤️ -
hi, i made a skill to send the clone generated by the player to attack a target. (order to attack a target).
I did a custom function, where I return the clone ID on the map.
And so, give him an order.
But, I do not know if it is correct to go this way, or if there is any other necessary procedurecase CLONE_ATTACK: { int c = 0; int clone_id = 0; int maxcount = 1; map->foreachinmap(skill->check_condition_clone, sd->bl.m, BL_MOB, sd->bl.id, &c , &clone_id ); // clone search on the map //ShowWarning("clone_id: %d\n", clone_id); //debug if( c < maxcount ) { //if no clones are found clif->skill_fail(sd, skill_id, USESKILL_FAIL_CONDITION, 0, 0); map->freeblock_unlock(); return 0; } struct block_list* mbl = map->id2bl(clone_id); //takes the clone id and converts it to a bl struct unit_data *ud = unit->bl2ud(mbl); //take the bl and convert it to a unit //nullpo_ret(mbl); //nullpo_ret(ud); if(ud){ unit->set_target(ud, bl->id); //set a target unit->attack(mbl, bl->id, ud->state.attack_continue); // Execute normal attack } }
suggestions?
@EDIT: Solved
-
Darkmoon - Sprite NPC
DarkMoon
Hi... I did this NPC some time ago
Now I'm posting to the communityFREE
TioAkima
-
Submitter
-
Submitted03/07/21
-
Category
-
-
On 2/27/2021 at 6:55 PM, Lergen said:Pardon if this is the wrong section, it's a bit of a broad question.
Is it possible to completely replace a job sprite with something else? For example, if I wanted to replace the novice so instead it's a poring or an NPC, how would you go about it? I've seen a few threads on replacing the outfits of jobs, but nothing about whether or not you can actually completely replace the job's sprite with something else. If anybody has any suggestions or an idea of where to start with something like this, or if it's even actually possible, it'd be greatly appreciated.
Hi
You may face some mistakes by switching a class's sprite to a monster's sprite.
In a class sprite there are positions that a monster does not have, sitting position for example, 2 or 3 types of attacks, etc ...
So, maybe you face some mistakes in that sense.
A monster has 4 layouts if I'm not mistaken, a class already has between 8 or 9 ... I don't remember for sure.
So it is necessary to pay attention to that
Someone correct me if I'm wrong, but I'm thinking about all the functions that a class sprite has
oh, there is the option for you to use the disguise command, isn't it interesting for you?
you can turn the player into the monster you wantperhaps it is a good option for your goal.
-
8 hours ago, Ridley said:"You don't even believe in the heart of cards 😏"
"Oh ye? Go, get that duck Pikachu ⚡⚡"
Nice maps 😁
the heart of cards hahahahahaha it reminds me of my whole childhood
i love Pikachu haha :3
ty ridley ❤️ -
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 -
-
Has anyone changed edited the daily compensations to get the awards for accounts and not for char?
it would be nice if you had that alternative in the settings.
Has anyone thought of this alternative?
I think it is safer and more correct that the daily rewards are for accounts and not char.
Thus, it avoids the player creating different characters to get the rewards. -
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
-
Submitted05/18/20
-
Category
-
-
guys, i'm using the barter shop, and even putting -1 (to sell unlimited items) he is acting like it's 1 ... and he doesn't let the player buy the item.
Does anyone know why he is behaving this way?
the value being -1 was for him to exchange unlimited items and not block the player from exchanging (says he doesn't have enough items to exchange) -
hy guys
I'm creating an instance, and I have some doubts
I created the instance setup:
// instance create ================================================================= if ( FYC_deny + .deny > gettimetick(2) ) { mes "["+ strnpcinfo(1) +"]"; mes "Você não pode tentar imediatamente... Precisa de uma pausa antes de enfrenta-lo novamente."; mes "Tem que esperar "+ callfunc( "timeleft__", FYC_deny + .deny - gettimetick(2) ) +"."; close2; cutin "", 255; end; } .@instance_name$ = "Piccolo Training"; //nome da instancia .@map_name$ = "1@area"; // nome do mapa if ( has_instance2("1@area") >= 0 ) instance_destroy has_instance2("1@area"); .@instance = instance_create( .@instance_name$, getcharid( 3 ), IOT_CHAR); if( .@instance < 0 ) { dispbottom "Ixe! A Instancia Falhou!"; end; } dispbottom "^0000ff" + .@instance_name$ + "^000000- Criando Instancia..."; if( instance_attachmap(.@map_name$,.@instance) == "" ) { instance_destroy( .@instance ); dispbottom "Houve uma falha ao criar a Instancia..."; close2; cutin "", 255; end; } instance_set_timeout 600, 1, .@instance; // 10 minutos para matar, 1 segundos para destruir instance_init .@instance; percentheal 100,100; FYC_deny = gettimetick(2); //warp has_instance("1@area"), 104,84; warp instance_mapname("1@area",.@instance),104,84;
Now, I don’t know how I can check to see if the player died, or if quit ...
Because if that happens, you have to get the player out of there, and destroy the instance, right?
how to do this?
ps* oh .. and also need to check for when time is up?
-
Hi guys,
found this npc on some topics here on the forum
it's a battle between groups, but I noticed some errors, if anyone can look ... If I'm not mistaken, this npc was edited by AnnieRuru and is called Team Wars (7vs7) group battle* after the groups register, the npc says a message and if the player doesn't close the message, the battle will never start, that is ... the player can troll a lot doing this!
* after the battle is over, the winning group is stuck on the map.
I'm not sure, but somehow the event doesn't end.
* Does anyone have the sql table? I did not find.
* The reset option in the admin menu does not work
-
3 hours ago, Cretino said: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.
oh ... got it ... yes, that's probably it. You still have the strength to carry many things, but there is no space in the inventory .... it makes sense. ty
-
32 minutes ago, MikZ said:Do you have idea why my client crashed
If I use my .grf my client crashes and have these sprite error but if I just use the data folder works fine.00# [FAIL] sprite\¸ó½ºÅÍ\Ãʺ¸ÀÚ.act [266 ms]
01# [FAIL] sprite\¸ó½ºÅÍ\Ãʺ¸ÀÚ.act [266 ms]
02# [FAIL] sprite\¸ó½ºÅÍ\Ãʺ¸ÀÚ.spr [266 ms]
03# [FAIL] sprite\¸ó½ºÅÍ\Ãʺ¸ÀÚ.spr [266 ms]
Client crashed.1=my.grf
2=palletes.grf
3=data.grf
4=rdata.grfVs
1=data (consisting all in my.grf)
2=palletes.grf
3=data.grf
4=rdata.grfwhich path does your hexed take first?
* read data folder first
* read first grfwhen you use your data folder, the client may actually be reading the kro data.grf first to avoid causing problems ...
well, try to change the sprite of this mob that is giving problems ...
Alias, enter the mobs folder, and check that the monster is there and that the file is not damaged. -
guys
Hi guys
with the change of maximum level and maximum status (str, int, luk, etc ...)
do I need to set the maximum weight too?sometimes it happens that the char gets heavy with only 20% of objects in the warehouse
I figured that maybe the weight would adapt to the size of the force (whatever it is, str stats custom or not)
@EDIT doubt
-
6 hours ago, 4144 said:may be you changing matk outside of allowed range?
see matk_min and matk_max in config directory for limits.
hmmm ... So, I need my change to be within this rule defined in the return ?
return cap_value (matk, battle_config.matk_min, battle_config.matk_max);I looked in limits.conf and found these values
// magic attack limits matk_min_limit: 0 matk_max_limit: 65535
do these values apply to the rule?
Actually, I didn't understand how the rule works ...
The change I make to the status_calc_matk function, can't make the matk exceed matk_max?
Can you explain me?The change I made was this:
if(sc->data[SC_MAXIMIZEPOWER]){ skill_lv = pc->checkskill(sd,BS_MAXIMIZE); matk += 8 * skill_lv; printf("debug msg"); }
is basically this:
matk += 40;but it doesn't work ... it shouldn't exceed matk_max, I think. 😵
I'm really confused ...
I'm thinking that maybe I can't change the matak, just change the value of INT (and the matak will be generated automatically)I dont know...
-
Hi guys
my sv is from December 2019 and is not with the updated SC_ system ... so far so good ...However when adding some attributes in SC_MAXIMIZEPOWER, it does not work ...
original code
status->set_sc( BS_MAXIMIZE , SC_MAXIMIZEPOWER , SI_MAXIMIZE , SCB_REGEN );
my edit
status->set_sc( BS_MAXIMIZE , SC_MAXIMIZEPOWER , SI_MAXIMIZE , SCB_REGEN|SCB_AGI|SCB_DEX|SCB_STR|SCB_INT|SCB_BATK|SCB_MATK|SCB_SPEED );
so in the status_calc_matk function I put one of the attributes to be added, increasing the magic attack according to the skill level ...
if(sc->data[SC_MAXIMIZEPOWER]){ //--------------------------------------------------------------- up matak base skill_lv = pc->checkskill(sd,BS_MAXIMIZE); matk += 8 * skill_lv; printf("debug print "); }
however it did not work ... the debug print is show but the magic attack is not changed ...
well ... it makes me think that maybe this is not the right function ...
so I tried on:
status_calc_watk
status_calc_ematkSo when the ability is activated, the result is the same ... my debug message is displayed, but the status is not changed ...
this is funny because I added the condition in status_calc_int to add an attribute in INT and it works perfectly.
if(sc->data[SC_MAXIMIZEPOWER]){ skill_lv = pc->checkskill(sd,BS_MAXIMIZE); int_ += 2 * skill_lv; }
well ... I am not able to calculate the basic attack and the magic attack ... there is something wrong with my calculation ... maybe I am doing the wrong way.
so ... how to correctly calculate the magic attack correctly? (and also the basic attack) 😵
-
guys
i have an array with id of some mobs collected in an area
.@units[.@i]
how can I do to turn calm monsters into aggressive and aggressive monsters into calm monsters.
for (.@i = 0; .@i < .@count; .@i++) {
if (aggressive monster ){ stay calm }
if (calm monster) { get aggressive / apply Provoke lv 1 }
if ( boss monster) { it is not effective }
}
-
1 hour ago, Zhao Chow said:Delete the old prontera.mcache on trunk/pre-re/maps then reload again your prontera map on putty, turn off first your server to make it sure
that's not it ... i did it several times before creating this topic ..
but i did it again to make sure ... and it didn't solve it.
-
guys, I remade the mapcache of my Prontera (new prontera) ... however, when I enter the game, the server is reading the cache of the old Prontera (it seems to me that the gat's are from the old Prontera) ... i remade mapcache several times and he keeps reading the old cache ... does anyone know the source of this problem? I can't think what I might be forgetting to do..
* The new prontera is in the data folder
* The Mapcache plugin is reading the maps perfectly in my folderI thought my sv was running on renewal and the mapcache was going to the pre-re folder ... but that's not it
~hahahaha... It must be something stupid that I'm forgetting ...
I always add custons maps and never had this problem with mapcache 😅 -
-
8 hours ago, Naruto said:no and you are still limited to the ID in the guides like you can only make BOWs that stick in the BOW hunter slot... when its within certain IDS
one of my friends just uses hats for animations instead following my guide to changing equipment slot he just flipped it all aroud and now has endless amount of bows and katars while maintaining the same equipment interface
I never understand your answers hahahahaha 😐
-
Recompensa Diária
in Suporte a Script
Posted
Na pasta \conf\map\battle\feature.conf
procure por:
// Enable Attendance System for clients >= 2018-03-07bRagexeRE or 2018-04-04bRagexe or 2018-04-11aRagexe_zero // true: enable (Default) // false: disable enable_attendance_system: true // Attendance End time in the format YearMonthDay feature_attendance_endtime: 20220802
É preciso ativar e definir a data de termino do attendance.