Jump to content

Winterfox

Members
  • Content Count

    403
  • Joined

  • Last visited

  • Days Won

    10

Posts posted by Winterfox


  1. It looks kind of bad for you since the only thing that would protect you from that scam is the ebay seller protection. This isn't eligible for seller protection since it falls under digital content and service.

    As stated on https://www.paypal.com/webapps/mpp/ua/useragreement-full?country.x=US&locale.x=en_US#11:

     

    11.5 Items/transactions not eligible for PayPal Seller protection. The following are examples of items/transactions not eligible for PayPal Seller protection.

    • Intangible items, including Digital Goods, and services.
    • Claims or Chargebacks for Significantly Not as Described.
    • Items that you deliver in person, including in connection with In-Store Checkout.
    • PayPal Direct Payments.
    • Virtual Terminal Payments.
    • PayPal Business Payments.

    I would try it anyway, but i wouldn't hold my hopes up high and would keep that in mind for the future.


  2. I dont know if that works, but maybe you can disable it via groups.conf for GMs below 60 and use that script:

    -	script	mobspawn_restriction	-1,{	OnInit:		bindatcmd("monster", strnpcinfo(3) + "::OnAtcommand");		.maxMobsPerSpawn = 5;	end;	OnAtcommand:		if(getgmlevel() >= 60 || getgmlevel() == 0) end;		.@mobCount = (.@atcmd_parameters$[1] == "") ? 1 : atoi(.@atcmd_parameters$[1]);				if(.@mobCount > .maxMobsPerSpawn) {			dispbottom("You can't spawn more than " +  .@mobCount +  " mobs at a time.");			end;		}				atcommand("@monster " + .@atcmd_parameters$[0] + " " + .@mobCount);	end;}

    I don't know if this doesn't fail when the @monster command is restricted but how it should work is, it blocks the original monster command, hooks it and starts the atcommand via script and restricts the monster spawn. If a user with a gm level below 1 or above 60 uses @monster, the script just ends itself instead of doing anything since users below gm level 1 shouldn't be able to use it and users above 60 aren't restricted so the original should work.

     

    If that approach fails or you don't mind having a second monster command you also could use this:

    -	script	mobspawn_restriction	-1,{	OnInit:		bindatcmd("monster2", strnpcinfo(3) + "::OnAtcommand");		.maxMobsPerSpawn = 5;	end;	OnAtcommand:		if(getgmlevel() == 0) end;		.@mobCount = (.@atcmd_parameters$[1] == "") ? 1 : atoi(.@atcmd_parameters$[1]);				if(.@mobCount > .maxMobsPerSpawn) {			dispbottom("You can't spawn more than " +  .@mobCount +  " mobs at a time.");			end;		}				atcommand("@monster " + .@atcmd_parameters$[0] + " " + .@mobCount);	end;}

    Can be used like @monster you just have to use @monster2 it ignores everything below gm level 1. If used by any gm it works like a restricted @monster. All you have to do is to restrict the original @monster command for gms below 60 in the groups.conf.


  3. @@Dastgir I see thanks for the info. I thought it would work like that since the server didn't output a message if i directly tried to cast it like that and put it as array key afterwards.

     

    May i ask you something else too? I use the IDs of the mobs as array keys to have not have to loop trough the whole list when i want to find out if a certain mob is part of it.

    But i noticed that hercules seems to create as much elements as the biggest key i use, so i was wondering if it is a good idea to do it like that or if it is just better to use loops instead or if there is a way to prevent hercules from creating all this overhead elements.

     

    Nevermind, i didn't read the doc properly that getarraysize returns the biggest index and not the real count of items.


  4. I still had a typo in this one. Check this version out: http://pastebin.com/BU4kry6p

     

    It automatically adds the MVPs now.

     

    .@mobIdListStr$ can be used to add custom monsters etc.

    .@mobFilterListStr$ can be used to exclude monsters.

     

    The syntax for both is like this.@mobIdListStr$ = "ID, ID, ID". Make sure to insert the space after every comma or it won't work properly.

     

    The other two variables stayed the same.


  5. http://pastebin.com/j2LfhEwV

     

    You have to change the .@mobIds array to the ids of the mobs you want to give rewards for, in your case the MVPs. I am sorry for this inconvinience but i couldn't find a solution that can tell if a certain mob id is a mvp. :/

     

    To adjust the amounts of cash points the player gets you can use .mobRewardPoints and pvpRewardPoints, just change it to your needs.

     

    The MVP one will announce it on all maps, the pvp on only on the according map.


  6. To transform you can use atcommand "@disguise monstername" if you want to use that with an item, you have to put that on the onequip script part.

    And to undo you can put atcommad "@undisguise" in the unequip part of the item.

     

    Additional stats are also part of the itemscript.

     

    You can find about how they work here:

    https://github.com/HerculesWS/Hercules/blob/master/doc/script_commands.txt

     

    What you want is the *bonus function.

     

    NVM, zhao has the better answer, i didn't know there was a disguise command. 


  7. Well, the check for the equipped items just checks the slots till the lower headgear which is number 10.

    The EQ you want to check for (the costumes) range from 11-14. If you want to make them refinable you will have to extend your blacksmith accordingly.

     

    For a list of which slots you can access you can go here: https://github.com/HerculesWS/Hercules/blob/master/doc/script_commands.txt

    and search for *getequipid(<equipment slot>).

     

    To add costumes you need to modify your refiner like this:

    setarray .@position$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3", "Costume Head Low", "Costume Head Mid", "Costume Head Top", "Costume Garment";.@menu$ = "";for(.@i = 1; .@i <= 14; ++.@i) {	if(getequipisequiped(.@i)) {		.@menu$ += .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";		.@equipped = 1;	}	.@menu$ += ":";}

     

    You can find this refiner at: /npc/merchants/refine.txt

    If you also want to be able to refine shadow gear, you just have to extend the .@positions$ array by each equip slot and add it to the runs of the for loop which is currently 14 on line 616.

     

    But if you are lazy and want it quick just copy and replace the content of the refiner starting at line 614 with:

    setarray .@position$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3", "Costume Head Low", "Costume Head Mid", "Costume Head Top", "Costume Head Garment", "Shadow Armor", "Shadow Weapon", "Shadow Shield", "Shadow Shoes", "Shadow Accessory Right", "Shadow Accessory Left";.@menu$ = "";for(.@i = 1; .@i <= getarraysize(.@position$); ++.@i) {	if(getequipisequiped(.@i)) {		.@menu$ += .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";		.@equipped = 1;	}	.@menu$ += ":";}

  8. Here is how i would do it, but be aware i didn't test it. So possibly have to fix slight mistakes. But you should be able to abstract what you need from it.

    prontera,150,150,5	script	Sample	89,{	// if the random card id was never set or the timer exceeds 5 minutes, create a new random card id and reinit the timer.	if(.randCID == 0 || ((getnpctimer(0) / 1000) / 60) >= 5) {		.randCID = rand(1,494);		initnpctimer;	} 	npctalk "I'm missing a "  + .allCNames$[.randCID] +  ". I can offer "  + .allCPoints[.randCID] +  " premium points in return.";		end;		// Setup a internal database of all the cards.	OnInit:		.@[member=start] = 0;		.@end = 128;				// Fetch all cards from the database with workaround for the 128 entry limit.		for(.@i = 1; .@i <= 4; .@i++)	{			if(.@i > 1) {				.@[member=start] = (.@i - 1) * 128;				.@end = .@i * 128; 			}						.@cardQuery = query_sql("SELECT `cards`,`card_name`,`points`,`id` FROM `cards`",.@ccards,.@cnames$,.@cpoints,.@cids) + " LIMIT " +  .@[member=start] +  "," + .@end);			for(.@y = 0; .@y < getarraysize(.@ccards); .@y++) {				.allCards[.@cids[.@y]] = .@ccards[.@y];				.allCNames$[.@cids[.@y]] = .@cnames$[.@y];				.allCPoints[.@cids[.@y]] = .@cpoints[.@y];			}		}		end;}

  9. You could checkout the script documentation first before you ask since it is well documented. You can find it here: https://github.com/HerculesWS/Hercules/blob/master/doc/script_commands.txt

     

    The answer you are searching for is:

     


    *query_sql("your MySQL query"{, <array variable>{, <array variable>{, ...}}});
    *query_logsql("your MySQL query"{, <array variable>{, <array variable>{, ...}}});
     
    Executes an SQL query. A 'select' query can fill array variables with up 
    to 128 rows of values, and will return the number of rows (the array size).
     
    Note that 'query_sql' runs on the main database while 'query_logsql' runs 
    on the log database.
     
    Example:
    .@nb = query_sql("select name,fame from `char` ORDER BY fame DESC LIMIT 5", .@name$, .@fame);
    mes "Hall Of Fame: TOP5";
    mes "1."+.@name$[0]+"("+.@fame[0]+")"; // Will return a person with the biggest fame value.
    mes "2."+.@name$[1]+"("+.@fame[1]+")";
    mes "3."+.@name$[2]+"("+.@fame[2]+")";
    mes "4."+.@name$[3]+"("+.@fame[3]+")";
    mes "5."+.@name$[4]+"("+.@fame[4]+")";

  10. Hi everyone,

     

    is there a way to dynamically influence mob stats either on spawn or afterwards?

     

    The only way i can think of would be to create copies of the monster with different stats and put a switch in front of the spawn command to get the most fitting one. But thats not a road i'd like to take so i am searching for a different alternative.

     

    I tried to check how the guardians in WoE do it, since their stats should be raisable based on guild investment, but i couldn't figure out if and where they are influenced.

     

    Any suggestions are welcome and thanks in advance.

×
×
  • Create New...

Important Information

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