Jump to content

Litro Endemic

  • Content Count

  • Avg. Content Per Day

  • Joined

  • Days Won


Litro Endemic last won the day on February 15 2020

Litro Endemic had the most liked content!

Community Reputation

59 Excellent


About Litro Endemic

  • Rank
  • Birthday 10/27/1991

Profile Information

Contact Methods

Recent Profile Visitors

2,617 profile views
  1. // START OF NEW CHECK - [Duplicate IP in one party?] attachrid [email protected]; // Check Party Members [email protected] = getcharid(1); if ([email protected] == 0) { mes "you have no party"; close; } getpartymember [email protected], 2, [email protected]; [email protected] = [email protected]; // make sure there is no pause between the check and collected party member data // like script command next, select, prompt, sleep2, sleep. for ([email protected] = 0; [email protected] < [email protected]; [email protected]++) { // no need to check with isloggedin anymore, // if failed to attach meaning the party member / player isn't online, // since only one char in account id can online at one time. if (attachrid([email protected][[email protected]]) == true) { // getcharip() script command was there in the script engine, why query? [email protected]$ = getcharip(); // script for you self? if use gepard do not bother using query, // get_unique_id() should be there in the script engine, why query? [email protected] = get_unique_id(); // check ip duplicate if (([email protected] = inarray([email protected]$, [email protected]$)) > -1) [email protected]_$[getarraysize([email protected]_$)] = strcharinfo(0); else [email protected]$[getarraysize([email protected]$)] = [email protected]$; // check gepard unique id duplicate if (([email protected] = inarray([email protected], [email protected])) > -1) [email protected]$[getarraysize([email protected]$)] = strcharinfo(0); else [email protected][getarraysize[[email protected]]] = [email protected]; } } // Get back to party leader to display message attachrid [email protected]; if (getarraysize([email protected]_$)) { mes "There is party member that found with same ip they are "+ implode([email protected]$, ","); close; } if (getarraysize([email protected]$)) { mes "There is party member that found with same pc they are "+ implode([email protected]$, ","); close; } // END OF NEW CHECK
  2. udah dari 2018 ini klo lg penuh kek lg pasar pas lebaran https://letmegooglethat.com/?q=telkom+dropping+packet
  3. this is super weird, functor even reacted up there.
  4. first make a mysql user that suit your need. replace user, ip, password and your_db to what you need. ip can be "%" which mean can from anywhere CREATE USER 'user'@'ip' IDENTIFIED BY 'password'; GRANT ALL ON your_db.* TO 'user'@'ip'; note: grant all is bad practice, imo just set permission as you deem fit (i am lazy to look up permission that needed for rA db). find in file '/etc/mysql/my.cnf' set bind-address value like below. "x.x.x.x" is ip that used when created mysql user or can be set with "" to match if you use "%" when created mysql user. # # Allow server to accept connections on all interfaces. # bind-address=x.x.x.x
  5. you can use file monster_size_effect in folder system and play around the mob size and effect with that
  6. prefer method 1, another note with an array and card id as index and price will get same output. duh when I said "simplify", my script is too extra haha..
  7. after re-reading the script I see err in my writing.. [email protected]_list$ = getarg(1, ""); if ([email protected]$ == "") { debugmes sprintf("[%s] AddCard: card list is empty for price %d", strnpcinfo(0), [email protected]); return; } explode([email protected]$, [email protected]_list$, ":"); for ([email protected] = 0; [email protected] < getarraysize([email protected]$); [email protected]++) { [email protected] = atoi([email protected]$); should be [email protected]_list$ = getarg(1, ""); if ([email protected]_list$ == "") { debugmes sprintf("[%s] AddCard: card list is empty for price %d", strnpcinfo(0), [email protected]); return; } explode([email protected]$, [email protected]_list$, ":"); for ([email protected] = 0; [email protected] < getarraysize([email protected]$); [email protected]++) { [email protected] = atoi([email protected]$[[email protected]]); here fixed script. prontera,181,204,4 script Card Buyer#rAthena 658,{ mes "[Card Buyer]"; mes "You have any card to sell ? <3"; next; getinventorylist; for ([email protected] = 0; [email protected] < @inventorylist_count; [email protected]++) { [email protected]_id = @inventorylist_id[[email protected]]; [email protected]_qt = @inventorylist_amount[[email protected]]; if (getiteminfo([email protected]_id, 2) != 6) continue; // skip not card // find if this card can be sold to this npc [email protected] = inarray(.card_list, [email protected]_id); // not in list card that can be sold, skip! if ([email protected] == -1) continue; [email protected]$[[email protected]] = getitemname([email protected]_id) +" "+ callfunc("F_InsertComma", .card_price[[email protected]_id]); [email protected]_ids[[email protected]] = [email protected]_id; [email protected]_qts[[email protected]] = [email protected]_qt; [email protected]++; } if ([email protected]) { mes "[Card Buyer]"; mes "You don't have any card huh?"; close; } [email protected] = select(implode([email protected]$, ":")) -1; mes "[Card Buyer]"; [email protected]_id = [email protected]_ids[[email protected]]; [email protected]_qt = [email protected]_qts[[email protected]]; mes "You have "+ callfunc("F_InsertComma", [email protected]_qt) +"x "+ getitemname([email protected]_id); mes "You want to sell "+ getitemname([email protected]_id) +"? I will pay you "+ callfunc("F_InsertComma", .card_price[[email protected]_id]) +"z/ea"; [email protected] = .card_price[[email protected]_id] * [email protected]_qt; mes "For total: "+ callfunc("F_InsertComma", [email protected])+"z."; select("Yes"); delitem [email protected]_id, [email protected]_qt; Zeny += [email protected]; clear; mes "[Card Buyer]"; mes "Thank you for your patronage!"; close; OnInit: function AddCard; /* @param price in zeny @param "card id:card id:card id:...." Sample: AddCard(10000, "4001:4002:4003"); */ freeloop(true); AddCard(100000, "4032:4013:4023:4009:4004:4002:4026:4019:4006:4050:4008:4011:4001:4021:4022:4028:4016:4051"); AddCard(500000, "4043:4015:4052:4027:4003:4014:4012:4010:4034"); freeloop(false); end; function AddCard { [email protected] = getarg(0, 0); if ([email protected] < 1) { debugmes sprintf("[%s] AddCard: buying price is %d, minimum price is 1", strnpcinfo(0), [email protected]); return; } [email protected]_list$ = getarg(1, ""); if ([email protected]_list$ == "") { debugmes sprintf("[%s] AddCard: card list is empty for price %d", strnpcinfo(0), [email protected]); return; } explode([email protected]$, [email protected]_list$, ":"); for ([email protected] = 0; [email protected] < getarraysize([email protected]$); [email protected]++) { [email protected] = atoi([email protected]$[[email protected]]); if (getitemname([email protected]) == "null") { debugmes sprintf("[%s] AddCard: card id %d is not exist price %d", strnpcinfo(0), [email protected], [email protected]); continue; } [email protected] = inarray(.card_list, [email protected]); if ([email protected] > -1) { debugmes sprintf("[%s] AddCard: card id %d duplicate entry, first set price %d", strnpcinfo(0), [email protected], .card_price[[email protected]]); continue; } .card_list[getarraysize(.card_list)] = [email protected]; .card_price[[email protected]] = [email protected]; } return; } } just ask... if anyone has time and understand it, maybe there is someone will answer.
  8. testing random will give you random result , if (rand(1,100) < 91) ^ that mean 90% = 1 ~ 100 lower than 91
  9. imho addrid and so on, should be inside check map bracket, if outside it will trigger any mvp in or not in the map set.
  10. according here https://ro.gnjoy.in.th/new-system-matching-party/ there should be extra button to click "Register ..." to be listed in there after you create a party.
  11. missing progress bar in download patch or by default not have any ? is there a way to ensure only single rpatchur instance is open or re-maximize and or bring to front if rpatchur is already running? and before patch begin download / apply check if the target grf's / client is running? also a config for save downloaded patch with check sum's so when reset patch can be taken from saved / previous downloaded patch files and if the sum of patch file is not match need to be redownloaded.
  12. yes yes, you get the idea correctly and gracias, for taking the idea. I am interested in rpatchur as it is open source patcher, but sadly can't help much in the code since I am only started learning rust. anyway thank you
  13. this will be good feature though, like iterate file plist.txt from webserver into html page, with additional button download and patch this thor file, in my opinion the idea is like single patch file / self update like many official games that has patch file that can be downloaded manually not automatically from patcher it self. but I think this action will not update / edit / change patch.dat or patch.json whatever the file named the index of last downloaded patch from plist. one of issue I created previously that was is to client have ability to modify patch.dat so the user can download from specific index. there is this scenario. the server owner want to make downloadable patch but not the patch it self is "not must" download and patch content like official data, so the owner can ship / deploy his client rpatchur with patch.json with last index from what number client has to / must download.
  14. floating rates script or something like that use setBattleFlag script commands with flag reload set true
  • Create New...

Important Information

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