-
Posts
1,238 -
Joined
-
Last visited
-
Days Won
28
Skorm last won the day on February 20
Skorm had the most liked content!
About Skorm

- Birthday 06/01/1991
Profile Information
-
Gender
Male
-
Location
Ɵ Chosen Hopeless Nothing
-
Server
rAthena
- Github: Skormie
- Discord: Skorm#0649
-
Interests
Scripting.
Contact Methods
- Website URL
- Yahoo
-
Skype
Jasontated.yo
Skorm's Achievements
-
prontera,100,100,1 script WalkNearMe 100,10,10,{ end; OnTouch: npctalk "Hello world"; end; } It is activated by the presence of the character. The "10,10" after "100," in the NPC header refers to the x and y distance from the NPC with which a character can "bump" into the NPC and trigger the OnTouch: event.
-
Ghost's Scripts [Latest: Ghost's PvP System v1.3]
Skorm replied to Ghost's topic in Script Collections
https://pastebin.com/pX5nFgdp I'll update the original post. -
PMing someone to soliciting sales is against the forums rules and would result in infractions, but someone else contacting you because they've seen your work isn't. So yeah, I don't think this is necessary a bad thing. I'd also like to reiterate that the Graphic Section has had this since 2011. But, I respect your input all the same.
-
Yeah ok this is my first attempt it's completely untested and probably not going to work. Also it's horrendous this is probably better done with source tbh. - script CardHolderThing -1,{ OnPCStatCalcEvent: OnPCLoadMapEvent: [email protected] = true; if(inarray(.maps$,strcharinfo(3)) != -1) { for([email protected] = 0; [email protected] < .slotlen; [email protected]++) [email protected] &= !getequipcardcnt(.slots[[email protected]]); if([email protected]) end; for([email protected] = 0; [email protected] < .slotlen; [email protected]++) { if(inarray([email protected],getequipid(.slots[[email protected]])) == -1) { [email protected][getarraysize([email protected])] = getequipid(.slots[[email protected]]); for([email protected] = 0; [email protected] < 4; [email protected]++) { [email protected] = getequipcardid(.slots[[email protected]],[email protected]); if([email protected] >= 4000) { getmapunits(BL_PC,strcharinfo(3),[email protected][0]); // Add player to ongoing list. for([email protected] = 0; [email protected] < getarraysize([email protected]); [email protected]++) { if(inarray(getd("."+strcharinfo(3)+"_mapusers"), [email protected][[email protected]]) != -1) { setd "."+strcharinfo(3)+"_mapusers["+getarraysize(getd("."+strcharinfo(3)+"_mapusers"))+"]", [email protected][[email protected]]; } } for([email protected] = 0; [email protected] < getarraysize(getd("."+strcharinfo(3)+"_mapusers")); [email protected]++) { // Remove player and item list. if(inarray([email protected], getd("."+strcharinfo(3)+"_mapusers["[email protected]+"]")) != -1) { deletearray "."+strcharinfo(3)+"_"+getd("."+strcharinfo(3)+"_mapusers["[email protected]+"]")+"_mapitems"; deletearray getd("."+strcharinfo(3)+"_mapusers["[email protected]+"]"), 1; } // Searching through lists of map players cards... else if(getcharid(3) != getd("."+strcharinfo(3)+"_mapusers["[email protected]+"]")) { if(inarray(getd("."+strcharinfo(3)+"_"+getd("."+strcharinfo(3)+"_mapusers["[email protected]+"]")+"_mapitems"), [email protected]) != -1) { warp "prontera",0,0; dispbottom "You've been removed from the map because someone else is already using "+getitemname([email protected])+"."; end; } } } // Adding card to the current players list. setd "."+strcharinfo(3)+"_"+getcharid(3)+"_mapitems["+getarraysize(getd("."+strcharinfo(3)+"_"+getcharid(3)+"_mapitems"))+"]", [email protected]; } } } } } end; OnInit: setarray .slots, EQI_ACC_L, EQI_ACC_R, EQI_GARMENT, EQI_HEAD_LOW, EQI_HEAD_MID, EQI_HEAD_TOP, EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, EQI_SHOES; setarray .maps$, "alde_gld", "aru_gld", "gef_fild13"; .slotlen = getarraysize(.slots); for([email protected] = 0; [email protected] < getarraysize(.maps$); [email protected]++) setmapflag .maps$[[email protected]], mf_loadevent; }
-
[email protected] Is incremented before evaluation. Example: if([email protected] == 1) //True if([email protected]++ == 1) //False
-
Ahh topic title is misleading then.
-
Where does @die not work?
-
I want a place to showcase scripts and mini-games and instances that I've made but not necessary release them. A place that I can get comments and feedback. We have that for graphics things but I think a "Script Showcase" section under scripts could be useful. Thoughts?
-
@worn I think a more practical way to do this would be... https://github.com/rathena/rathena/blob/master/doc/script_commands.txt#L6663 - script AllMobDrop -1,{ OnInit: query_sql("SELECT `ID` FROM `mob_db_re` UNION SELECT `ID` FROM `mob_db2_re`;", [email protected]_ids); [email protected] = getarraysize([email protected]_ids); for([email protected] = 0; [email protected] < [email protected]; [email protected]++) { addmonsterdrop [email protected]_ids[[email protected]],501,100; //Red Potion at 1% drop. } end; } or... https://github.com/rathena/rathena/blob/master/doc/item_bonus.txt#L465 - script AllMobDrop -1,{ OnPCLoginEvent: bonus_script "bonus2 bAddMonsterDropItem,501,100;",86400,8,0; //Red Potion at 1% drop for 24 hours. end; }
-
Script request that shows the cards that have already been dropped on the server
Skorm replied to Tdi123's question in Script Requests
Best way I can think of to do this would to be to query the SQL database in player inventories and carts and storage/guild storage and check for the card item id ranges in a distinct fashion. -
Bloody Branch MVP kill announcer & MVP Announcer script
Skorm replied to DEsMOn's question in Script Requests
I think this is a better approach because the latter will still trigger on normal spawning MVPS. Change the Bloody Branch item script to... monster "this",-1,-1,"--ja--",-3,1,"BB_MVP_Announce::OnBBMVPDeath"; And then add this npc... - script BB_MVP_Announce -1,{ OnBBMVPDeath: announce "'"+ strcharinfo(0) +"' has killed ("+ getmonsterinfo(killedrid,MOB_NAME) +").",bc_yellow|bc_all; end; } -
@Deye0823 There are quite a few out there. Many of them are pretty easy to modify and get the results you're looking for. Have you tried this one? Also searching for them on the forums might be your best bet.
-
Yeah just set a npc variable for it. prontera,100,200,3 script Picky 78,{ if(!.one_at_a_time) { .one_at_a_time = 1; mes "Hello"; next; .one_at_a_time = 0; } else { mes "Do you mind I'm talking to someone here!"; } close; } Edit -- I thought about it a little more and this method might not always work for example if a player gets disconnected while talking with the npc and never resets the variable. So instead maybe it would be better to use an npctimer there might still be some conditions where the player leaves the npc and is still attached but I think overall it's a better approach. prontera,100,200,3 script Picky 78,{ if(!.one_at_a_time) { attachnpctimer; initnpctimer; mes "Hello"; next; } else { mes "Do you mind I'm talking to someone here!"; } close; Ontimer0: .one_at_a_time = 1; OnTimer5000: if(getattachedrid()) { attachnpctimer; initnpctimer; } OnTimerQuit: .one_at_a_time = 0; stopnpctimer; detachnpctimer; } @Reborn
-
It looks like the command mobcount was updated at some point to require another parameter. Replace the errored line with... if(!getusers(8)&&mobcount(strnpcinfo(4),"all")){killmonsterall strnpcinfo(4);}
-
@reloadmobdb something like that I can't exactly remember if that refreshes the mobs on a map though.