-
Posts
941 -
Joined
-
Last visited
-
Days Won
23
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Rynbef
-
@Skorm @qtdan @Yuno I remind myself but the loop starts at 0 and on end of loop it set to one. It will never output 0. Therefore I think it will always output female cause the statement if is 1 it is female. No 0 returns. Maybe just change the line from: setunitdata .pvp_ladder_statues[.@i +1],UNPC_SEX,(.@sex$[.@i] == "F")?SEX_FEMALE:SEX_MALE; To:. setunitdata .pvp_ladder_statues[.@i +1],UNPC_SEX,(.@sex$[.@i-1] == "F")?SEX_FEMALE:SEX_MALE; Other For Loops I've changed will cause errors I think. Rynbef~
-
@qtdan@Yuno //updated below Rynbef~
-
Have u killed a mob? Do u've tried on other monsters? Do u use the newest version of rAthena? Rynbef~
-
@wornHere two versions the first with a change and the 2nd one with extended experimental debugging. Try the first one and then 2nd one. getItemByMapFunction v9.txt getItemByMapFunction v8 - Experimentell - Extended Debugging.txt Rynbef~
-
I've changed an if statement. I hope that's the final solution. U can add the same map as often as u want. getItemByMapFunction v7.txt Rynbef~ It could looks like: setarray .@maps$[0],"prontera","prontera","prontera"; serarray .@items[0],501,4012,512; setarray .@item_amounts[0],100,1,5; setarray .@item_chance[0],1000,500,800; But the player will get only one item. If u set items to 100% he will get everytimes the first listed one. It's a good idea to change. I'll do it soon if everything works yet. Rynbef~
-
Do u activated debugging? What does the console debug? @worn Rynbef~
-
I've edited a few seconds ago. Maybe it works now. I've forgot to add all arrays to the callfunc. Best regards, Rynbef~
-
@wornim sorry I'm not able to test the script cause I just have my mobile phone. If it yet won't works I'll give up. I just want to help. getItemByMapFunction v6.txt Rynbef~
-
@sader1992I now understand what u mean. I've improved it now. The function is if someone whould call it another way. @worn getItemByMapFunction v5.txt Rynbef~
-
@qtdan @Yuno On the script is another part instead u're posted. U access wrong variable. I don't understand ur problem. setunitdata .pvp_ladder_statues[.@i +1],UNPC_SEX,(.@sex$[.@i] == "F")?SEX_FEMALE:SEX_MALE; Rynbef~
-
@powkdaEvery line will end with a semicolon therefore the 2nd bonus failed. U only able to write bonuses in one line at an item script. function script F_Excalibur { if(agitcheck() || agitcheck2() || agitcheck3()){ bonus bBaseAtk,2600; } else { bonus bBaseAtk,2600; bonus2 bHPDrainRate,1000,100; } end; } Rynbef~
-
@sader1992I think u means to change to scope variables. Next time I bet u to tell me what u mean. getItemByMapFunction v4.txt Rynbef~
-
@wornThis should fix the error. /* rAthena Script Author: @Rynbef Create Date: 2021-19-12 Last Updated: 2022-01-01 Changelogs: 2022-01-01: *changed OnNPCLoadEvent to OnNPCKillEvent *added check if killed enemie is player *removed space on callfunc after OnNPCKillEvent *fixed if statement syntax error *fixed if statement getarraysize of integer to getarraysize of specified getarg *removed callfunc OnInit *added console debugging can be disabled or enabled *changed variable types *fixed cant get item cause of wrong if statement *fixed for loop used array size instead random chance from argument getarg(3) *fixed player can't get item if random chance was equals to specified item chance *added argument amount to debug message *added map notification if player get lucky but not on a listed map. This can disabled or enabled seperat at OnInit below. Debugging needs to be enabled *added notification if everything works fine. Can be disabled or enabled on bottom of OnInit. Debugging needs to disabled Feature planned: #Player get zeny if he get lucky #Player get zeny only if items disabled #Player get zeny or item if both enabled Description: Give a specified item getarg(1) of amount getarg(2) on specified map getarg(0) with a percentage of getarg(3) (0.1 to 100 percent) to a player IMPORTANT: All arrays needs to have the same sizes It's importent to set all 3 arguments to callfunc Terms: Dont name this as yours Dont sell this script Dont upload this script on download-/s section or share it otherwise for pay Modifications are included from this terms Otherwise feel free to edit Other: Don't hestiate to contact me at the forum as pm if u've any error,question,suggestion or want a modification Script: */ - script GetItemByMap -1,{ OnNPCKillEvent: if(killedrid >= 150000) end; set .retval,callfunc("F_GetItemByMap",$@maps$,$@items,$@item_amounts); if(!$@debug) end; if(.retval == 1) debugmes "[F_GetItemByMap]: Works fine! Player get item."; else if(.retval == 2) debugmes "[F_GetItemByMap]: Works fine! Player is unlucky and get no item."; else if(.retval == 3 && $@debugmap) debugmes "[F_GetItemByMap]: Player isn't on a listed map. Current map: "+strcharinfo(3); else if(.retval == 4 && $@debugworking) debugmes "[F_GetItemByMap]: Everything works fine!"; else debugmes "[F_GetItemByMap]: Causes in errors. Debug logs on top!"; end; OnInit: setarray $@maps$[0],"prontera","alberta","izlude"; serarray $@items[0],501,4012,512; setarray $@item_amounts[0],100,1,5; setarray $@item_chance[0],1000,500,800;//Chance begins by 0.1 percentage. 1 = 0.1 and 1000 = 100 percent set $@debug,1;//0 = disable debugging,1 = enable set $@debugmap,1;//0 = disable map notification,1 = enable set $@debugworking,1;//0 = disable notification if everything works fine,1 = enable end; } function script F_GetItemByMap { if(!getarg(0) || !getarg(1) || !getarg(2) || !getarg(3) || getarraysize(getarg(0)) != getarraysize(getarg(1)) || getarraysize(getarg(0)) != getarraysize(getarg(2)) || getarraysize(getarg(0)) != getarraysize(getarg(3))){ if($@debug){ debugmes "[F_GetItemByMap]: An error is occurupted"; debugmes "[Function arguments]: Function arguments are empty or to short. Arguments: "+getargcount(); debugmes "[Array sizes]: Maps:"+getarraysize(getarg(0))+" - Items:"+getarraysize(getarg(1))+" - Amounts:"+getarraysize(getarg(2))+" - Chances:"+getarraysize(getarg(3)); debugmes "[Function arguments]: Maps:"+getarg(0)+" - Items:"+getarg(1)+" - Amounts:"+getarg(2)+" - Chances:"+getarg(3); } return 0; } else { for(.i = 0; .i<getarraysize(getarg(0)); .i++){ if(rand(1,1000) < getelementofarray(getarg(3),.i)) return 2; if(strcharinfo(3) == getelementofarray(getarg(0),.i)){ getitem getelementofarray(getarg(1),.i),getelementofarray(getarg(2),.i); return 1; } else if($@debugmap){ return 3; } } } return 4; } getItemByMapFunction v3.txt Rynbef~
-
@wornthat's exactly what I've scripted. Rynbef~
-
I've found a way to check the screenshots. I've updated today and added a changelog. NOTE: U don't need loadevent. U now can/should remove it. Just to say: I've written this script with my smartphone and therefore no way to test it. getItemByMapFunction v2.txt I hope this helps u and will works fine now. Rynbef~
-
I hope I can help u with my script I've written for u. It's a few time ago after I had an own server. The script isn't tested. /* rAthena Script Author: @Rynbef Date: 2021-19-12 Information: Dont forget to set "loadevent" mapflag for each map you will use this function Description: Give a specified item (getarg(1)) of amount getarg(2) on specified map getarg(0) with a percentage of getarg(3) (0.1 to 100 percent) Terms: Dont name this as yours Dont sell this script Dont upload this script on download-/s section Otherwise feel free to edit or contact me as pm Example: */ - script GetItemByMap -1,{ OnNPCLoadEvent: set .retval,callfunc ("F_GetItemByMap",$#maps$,$#items,$#item_amounts); //You can debug if it causes error or not if(.retval == 1) debugmes "[F_GetItemByMap]: Works fine! Player get item."; else if(.retval == 2) debugmes "[F_GetItemByMap]: Works fine! Player is unlucky and get no item."; else debugmes "[F_GetItemByMap]: Causes in errors. Debug logs below!"; end; OnInit: setarray $#maps$[0],"prontera","alberta","izlude"; serarray $#items[0],501,4012,512; setarray $#item_amounts[0],100,1,5; setarray $#item_chance[0],1000,500,800;//Chance begins by 0.1 percentage. 1 = 0.1 and 1000 = 100 percent callfunc($#maps$,$#items,$#item_amounts,$#item_chance); end; } function script F_GetItemByMap { if(((!getarg(0) || !getarg(1) || !getarg(2))) || ((getarraysize(getarg(0)) != getarraysize(getarg(1))) ||(getarraysize(getarg(0)) != getarraysize(2)) || (getarraysize(0)) != getarraysize(3))){ debugmes "[F_GetItemByMap]: An error is occurupted"; debugmes "[Function arguments]: Function arguments are empty or to short."; debugmes "[Array sizes]: Maps:"+getarraysize(getarg(0))+" - Items:"+getarraysize(getarg(1))+" - Amounts:"+getarraysize(getarg(2))+" - Chances:"+getarg(3); debugmes "[Function arguments]: Maps:"+getarg(0)+" - Items:"+getarg(1)+" - Amounts:"+getarg(2)+" - Chances:"+getarg(3); return 0; } else { for(.@i,0; getarraysize(getarg(0); .@i++){ if(rand(1,1000) <= (getarraysize(getarg(3))-1)){ debugmes "[F_GetItemByMap]: The player doesnt get item because hes an unlucky player"; if(strcharinfo(3) == getarg(0)[.@i]) getitem getarg(1)[.@i],getarg(2)[.@i]; return 1; } return 2; } } } set .retval,callfunc ("F_GetItemByMap",$#maps$,$#items,$#item_amounts); //You can debug if it causes error or not if(.retval == 1) debugmes "[F_GetItemByMap]: Works fine! Player get item." else if(.retval == 2) debugmes "[F_GetItemByMap]: Works fine! Player is unlucky and get no item." else debugmes "[F_GetItemByMap]: Causes in errors. Debug logs below!" end; OnInit: setarray $#maps$[0],"prontera","alberta","izlude"; serarray $#items[0],501,4012,512; setarray $#item_amounts[0],100,1,5; setarray $#item_chance[0],1000,500,800;//Chance begins by 0.1 percentage. 1 = 0.1 and 1000 = 100 percent callfunc($#maps$,$#items,$#item_amounts,$#item_chance); end; } function script F_GetItemByMap { if(((!getarg(0) || !getarg(1) || !getarg(2))) || ((getarraysize(getarg(0)) != getarraysize(getarg(1))) ||(getarraysize(getarg(0)) != getarraysize(2)) || (getarraysize(0)) != getarraysize(3))){ debugmes "[F_Inarray]: Function arguments are empty or to short."; debugmes "[Array sizes]: Maps:"+getarraysize(getarg(0))+" - Items:"+getarraysize(getarg(1))+" - Amounts:"+getarraysize(getarg(2))+" - Chances:"+getarg(3); debugmes "[Function arrguments]: Maps:"+getarg(0)+" - Items:"+getarg(1)+" - Amounts:"+getarg(2)+" - Chances:"+getarg(3); return 0; } else { for(.@i,0; getarraysize(getarg(0); .@i++){ if(rand(1,1000) <= (getarraysize(getarg(3))-1)){ debugmes "[F_GetItemByMap]: The player doesnt get item because hes an unlucky player"; if(strcharinfo(3) == getarg(0)[.@i]) getitem getarg(1)[.@i],getarg(2)[.@i]; return 1; } return 2; } } } Rynbef~
-
I can't recommend too much calls of OnNPCKillEvent its could crash the map server. Rynbef~
-
It looks good I just want to say that much of the layouts looks similar. I'm web developer and I'm missing a bit the innovation. The art to make some different. Rynbef~
-
Try to run as administrator Greetings, Rynbef~
-
Thor Patcher Fails if Using Domain
Rynbef replied to ziqqfrytz0725's question in Third Party Support
Thor Patcher doesn't available to use SSL (https). Do u have 301 redirection activated? If yes, u need to disable it. Rynbef~ -
Yes it's not really complicated. U can check if the killed mob is a boss monster or a monster of a list/an array. Save the mob ID of the latest monster u've attacked and the dealt damage in an array. Than OnPCKillEvent check if this monster u've killed is the monster u've attacked before. Than u can save ur dealt damage in a database. Later u can sort the damage by "highest first" and u have ur ranking. U can update a database entry which structure is like: "Char ID, Latest Mob ID, Latest Dealt Dmg, Total Dealt Dmg, Create Date, Latest Update Date" or u can use the account ID to combine the Dmg of all characters of an account. Rynbef~
-
On the top of the PHP Files there are a <table> between the PHP Open Tags. Just copy this in your website and import the PHP files. But your HTML files need to be named as PHP. https://www.w3schools.com/php/php_includes.asp <?php require "status.php"; ?> Rynbef~
-
[Showcase] Prontera Full HD 8K / Morroc HD / Other Final
Rynbef replied to ittiphol's topic in Maps & 3D Modeling Showcase
Wow! It looks rly amazing. Do u use Esrgan? Whould u release it? Rynbef~ -
Write a DLL File and inject it to ur client. That catch the login Paket sending and change it before u send it. After this u Can use Thread.sleep (C#) to wait like u said 60 sec. After this build a new packet and send it to the server by using the client function. U can easily find out how the structure needs to be. Look at the Doc of ur server. If I don't know what u are doing, the guard will easily bypassable. Rynbef~
-
U can embedd it to ur executable or use a hackshield which generates a checksum/hash and check it every start. Gepard as example. Rynbef~