User talk:Kymara: Difference between revisions
imported>Kymara No edit summary |
imported>Kymara No edit summary |
||
| Line 41: | Line 41: | ||
</source> |
</source> |
||
== Quests which ask for a random item to be collected == |
|||
wanted: |
|||
* ask player to collect item randomly chosen from a list |
|||
* remember the item asked for |
|||
* be able to check if player has it |
|||
* be able to drop it from player |
|||
Additional: |
|||
Be able to do the above but for a quantity of items instead. Possibly, but no quest uses it yet, have a different quantity depended on what item asked for. |
|||
Plan: |
|||
* Possible names and the matching amounts to pick from are all passed to the action which picks and stores |
|||
* Idea 1 is to store itemname=amount in substrings of quest slot e.g. collecting;wood=10;113795759595 or in whole slot like nihonto=1 |
|||
:* Then the checking if equipped conditions and Drop Actions only need to know the questslot name and index to get item name and amount |
|||
:* This would mean the equipped conditions and drop actions could be used also for other quests where a single item and amount was stored in this way |
|||
* Idea 2 is not to store the amount, but just the item, and pass the equipped condition and drop actions the full map of items to amounts each time. it felt wasteful but... |
|||
* Idea 3 is not to allow that amounts vary within the same quest and therefore just have the quest itself tell each time as a separate parameter (this got to be a lot of parameters though) |
|||
===Current quests with a randomly selected item to collect:=== |
|||
====mithril cloak quest 'initial steps'==== |
|||
requires 1 from a list 3 items |
|||
currently stored like |
|||
machine;itemname |
|||
Already Ok with Idea 1 as I default to amount 1 if I can't split the quest slot on = |
|||
====obsidian knife quest==== |
|||
requires 100 of 3 items |
|||
currently stored with itemname only in quest slot |
|||
Not ok Idea 1, only Idea 2 |
|||
====daily item quest==== |
|||
requires 1 of a huge list of items |
|||
currently stored with itemname in slot like |
|||
itemname;timestamp;number of times completed |
|||
Already Ok with Idea 1 as I default to amount 1 if I can't split the quest slot on = |
|||
====weekly item quest==== |
|||
as for daily item quest |
|||
==== ultimate collector ==== |
|||
not live in game yet, don't worry about this one. we can fit it to what we choose. |
|||
===Current quests which store what to collect in the slot but didn't have a random element:=== |
|||
There's the long lists of items quests |
|||
(ElvishArmor, WeaponsCollector ..) but they already have ok logic |
|||
There's the lists of items with quantities too quests, |
|||
(CrownForWannabeKing, HerbsForCarmen) again they just got logic done recently, they're fine. |
|||
Hmmm.. any others? |
|||
==Stuff to do, over time== |
==Stuff to do, over time== |
||
| Line 115: | Line 49: | ||
* Review golden orc sword quest that's in feature requests |
* Review golden orc sword quest that's in feature requests |
||
* Create quests pointing to dungeons |
* Create quests pointing to dungeons |
||
* Finish Ultimate Collector quest |
|||
* Work on [[StendhalOrb]] |
|||
Revision as of 20:49, 22 July 2010
cleanup postman table
<source lang="sql"> CREATE TABLE IF NOT EXISTS temp_postman ( source VARCHAR(64),
target VARCHAR(64), message TEXT);
LOAD DATA LOCAL INFILE '/home/katie/workspace/stendhal/postmantable.csv' INTO TABLE temp_postman FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
insert into postman (source, target, message, timedate, messagetype, delivered)
select source, target, message, '2010-07-20 00:00:00', 'P', 0 from temp_postman;
-- yes thats a lie about the message type, some came from npcs update postman set messagetype = 'N' where source in ('MrTaxman','Dagobert','Harold','Wilfred');
-- add indices on target and delivered (combined?)
-- remove messages where the target does not correspond to an existing character name delete postman from postman left join characters on character.charname = postman.target where character.charname is null;
-- remove messages where the target account.username is permanently banned (why do this first? it might get more?) delete postman from postman join account on account.username = postman.target where account.status='banned';
-- remove messages where the target character has an account which is is permanently banned delete postman from postman join characters on character.charname = postman.target join account on account.id = characters.player_id where account.status='banned';
-- remove any uncaught spam? delete from postman where source = 'Harold' and length(message)>1000;
</source>
Stuff to do, over time
- Correct some of the warnings in findbugs:
- Blackjack
- Help tomi string append
- Portal cast
- Review golden orc sword quest that's in feature requests
- Create quests pointing to dungeons