Advertisement
Guest User

Untitled

a guest
May 4th, 2016
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 20.21 KB | None | 0 0
  1. quest bounty begin
  2.     state start begin
  3.         when 9003.chat.'Kopfgelder | Kopfgeld aussetzen' begin
  4.             function a()
  5.                 say_title('Ein Titel direkt aus einer Funktion')
  6.                 say('Mit Text')
  7.             end
  8.            
  9.            
  10.             a()
  11.             say('a() ist eine Funktion')
  12.         end
  13.     end
  14. end
  15.             BOUNTY_MAX_JOBS = 10
  16.             BOUNTY_MAX_COUNTER_JOBS = MAX_JOBS
  17.             BOUNTY_EXPENDITURE = 0
  18.             BOUNTY_MIN_REWARD = 0
  19.            
  20.             BOUNTY_TITLE = 'Kopfgeld'
  21.             BOUNTY_NPC_NAME = mob_name(string.format("%d", npc.get_race()))
  22.             BOUNTY_SUBTITLE = string.format('[%s]|:', BOUNTY_NPC_NAME)
  23.            
  24.             bounty.wndInterface(BOUNTY_TITLE, BOUNTY_SUBTITLE)
  25.            
  26.            
  27.             --//WindowStart
  28.             local character_set = {
  29.                 {'tapferer', 'Krieger', 'Ninja', 'Sura', 'Schamane'},
  30.                 {'tapfere', 'Kriegerin', 'Kunoichi', 'Sura', 'Schamanin'}
  31.             }
  32.                
  33.             local character_presentation = string.format('Hallo %s, %s %s, hast du was für mich?', pc.get_name(), character_set[(pc.get_sex() + 1][1]), character_set[(pc.get_sex() + 1)][(pc.get_job() + 2)])
  34.                
  35.            
  36.             say_title(title)
  37.                
  38.             --//ParagraphStart
  39.             say('')
  40.             say(character_presentation)
  41.             say('Kann ich dir meine Dienste erweisen, indem ich dich über')
  42.             say('die aktuelle Geschenisse der Kopfgelder informiere,'
  43.             say('ist\'s das?')
  44.             say('Ich werde dir einen Überblick gewähren.')
  45.             say('')
  46.             --//ParagraphEnd
  47.                
  48.             --//ParagraphStart
  49.             say('')
  50.             say(subtitle)
  51.             say('Wähle aus, was du begehrst.')
  52.             say('')
  53.             --//ParagraphEnd
  54.            
  55.             local cats = {'Kopfgeld aussetzen', 'Übersicht der Kopfgelder', 'Abbrechen'}
  56.             local cat = select_table(cats)
  57.            
  58.             title = string.format('%s -> %d. %s', title, cat, cats[cat])
  59.            
  60.            
  61.             if (cat == 1) then
  62.                 --//WindowStart
  63.                 say_title(title)
  64.                 --//ParagraphStart
  65.                 say('')
  66.                 say('Ah, du möchtest somit ein Kopfgeld auf einen gewissen Jemanden aussetzen?')
  67.                 say('')
  68.                 say('Sei dir bewusst, was dies für Konsequenzen mit sich bringt.')
  69.                 say('Sei dir im Klaren, dass diese Person danach vielleicht einen Groll gegen dich hegt.')
  70.                 say('Ich kann eine Karikatur anfertigen lassen und diese an\'s Schwarze Brett hängen.')
  71.                 say('')
  72.                 say('Bist du damit einverstanden, dass ich dies tue oder möchtest du dir nochmals Gedanken machen?')
  73.                 say('Überlege dir deine Antwort gut und sei gewarnt.')
  74.                 say('')
  75.                 --//ParagraphEnd
  76.                
  77.                 if (true) then
  78.                     --//ParagraphStart
  79.                     say('')
  80.                     say(subtitle)
  81.                     say('Möchtest du dies in Auftrag geben?')
  82.                     say('')
  83.                     --//ParagraphEnd
  84.                    
  85.                     if (true) then
  86.                         --//WindowStart
  87.                         say_title(title)
  88.                         --//ParagraphStart
  89.                         say('')
  90.                         say('Ok, ich werde einem Zeichner der Stadt den Auftrag, eine Karkatur zu erstellen, erteilen.')
  91.                         say('Nur sollte ich mich vergewissern können, um welche Person es sich handelt.')
  92.                         say('Kennst du das Opfer beim Namen? Dies würde mir helfen den gesuchten ausfindig machen zu können.')
  93.                         say('')
  94.                         --//ParagraphEnd
  95.                        
  96.                         ::information_select::
  97.                        
  98.                         --//ParagraphStart
  99.                         say('')
  100.                         say(subtitle)
  101.                         say('Gib den Namen des Gesuchten/der Gesuchten.')
  102.                         say(string.format('Das gewählte Opfer darf kein Opfer von %d anderen Intrigen sein.', BOUNTY_MAX_JOBS))
  103.                         say('Schreibe den Namen deines gewählten Ziels auf.')
  104.                         say('')
  105.                         --//ParagraphEnd
  106.                        
  107.                         if (true) then
  108.                             --//WindowStart
  109.                             say_title(title)
  110.                             --//WindowStart
  111.                             say_title(title)
  112.                            
  113.                             --//ParagraphStart
  114.                             say('')
  115.                             say('Gut, somit werde ich dies in Auftrag geben.')
  116.                             say('Ich muss wohl kaum erwähnen, dass dich dies den Umständen entsprechend was kostet, oder?')
  117.                             say('Den Kosten entsprechend, werden sich ebenfalls Sölnder finden, welche deinen Auftrag annehmen.')
  118.                             say('')
  119.                             --//ParagraphEnd
  120.                            
  121.                             ::information_purchase::
  122.                            
  123.                             --//ParagraphStart
  124.                             say('')
  125.                             say(subtitle)
  126.                             say('Je mehr du zahlst, desto eher findet sich ein tapferer Krieger für die Mission.')
  127.                             say('Wähle deshalb mit bedacht, wie viel du den Kämpfern zahlst, dafür, dass sie dies an sich nehmen.')
  128.                             say('')
  129.                             --//ParagraphEnd
  130.                            
  131.                             --//ParagraphStart
  132.                             say('')
  133.                             say_reward(string.format('Kosten der Aufwendung: %d', BOUNTY_EXPENDITURE))
  134.                             say_reward(string.format('Minimale Kosten der Ausschreibung: %d', BOUNTY_EXPENDITURE))
  135.                             say_reward(string.format('Minimale Gesamtkosten: %d', (BOUNTY_EXPENDITURE + BOUNTY_MIN_REWARD)))
  136.                             say('')
  137.                             --//ParagraphEnd
  138.                            
  139.                             if (true) then
  140.                                 --//WindowStart
  141.                                 say_title(title)
  142.                                
  143.                                 --//ParagraphStart
  144.                                 say('')
  145.                                 say('Ok, in Ordnung, ich werde mir deiner dienen.')
  146.                                 say('Ich werde nun zum Marktplatz gehen und dort einen Auftrag ausschreiben.')
  147.                                 say('Findet sich ein Maler, der Begabung, mit nur einem Namen, eine Person zu zeichnen,')
  148.                                 say('Dann werde ich dir Bescheid geben durch einen Boten mit einer Schriftrolle.')
  149.                                 say('')
  150.                                 --//ParagraphEnd
  151.                                
  152.                                 local result_msg = string.format('%s hat ein Kopfgeld über %d auf %s ausgesetzt.', pc.get_name(), reward, opponent)
  153.                                
  154.                                 --//ParagraphStart
  155.                                 say('')
  156.                                 say(subtitle)
  157.                                 say('Ein Auftrag wurde erteilt.')
  158.                                 say(result_msg)
  159.                                 say('')
  160.                                 --//ParagraphEnd
  161.                                
  162.                                 --//WindowEnd
  163.                                
  164.                                 notice_all(result_msg)
  165.                             end
  166.                         else               
  167.                             --//ParagraphStart
  168.                             say('')
  169.                             say('Den? Der ist tot bevor ich jemanden gefunden habe.')
  170.                             say('Du bist nicht der Erste, der von dem wissen will.')
  171.                             say('Nenne mir ein weitunbekannteres Opfer.')
  172.                             say('')
  173.                             --//ParagraphEnd
  174.                                        
  175.                             --//ParagraphStart
  176.                             say('')
  177.                             say(subtitle)
  178.                             say('Der angegebene Spieler besitzt bereits 10 Kopfgelder auf seinem Rücken.')
  179.                             say('Wähle ein Spieler dessen unbeliebtheit geringer ist als dessen diesem.')
  180.                             say('')
  181.                             --//ParagraphEnd
  182.                                        
  183.                             --//WindowEnd  
  184.                            
  185.                            
  186.                             --//WindowStart
  187.                             say_title(title)
  188.                                
  189.                             --//ParagraphStart
  190.                             say('')
  191.                             say('Du willst dich selber anprangern?')
  192.                             say('Bitte, von wem soll ich, nach erfolgreichem Ausführen, das Geld kriegen?')
  193.                             say('')
  194.                             --//ParagraphEnd
  195.                                
  196.                             --ParagraphStart
  197.                             say('')
  198.                             say(subtitle)
  199.                             say('Du kannst dich nicht selbst ins Visier nehmen.')
  200.                             say('Wähle ein Opfer, dessen du nicht bist.')
  201.                             say('')
  202.                             --//ParagraphEnd
  203.                                
  204.                             --//WindowEnd
  205.                            
  206.                             --//WindowStart
  207.                             say_title(title)
  208.                            
  209.                             --//ParagraphStart
  210.                             say('')
  211.                             say('Mir ist keiner der Stadt geläufig mir einem solchen Namen.')
  212.                             say('Teile mir einen existenten Namen mit.')
  213.                             say('')
  214.                             --//ParagraphEnd
  215.                            
  216.                             --//ParagraphStart
  217.                             say('')
  218.                             say(subtitle)
  219.                             say('Der, der von dir angegebene Spieler, existiert nicht.')
  220.                             say('Schreibe einen existenten Namen nieder.')
  221.                             say('')
  222.                             --//ParagraphEnd
  223.                            
  224.                             --//WindowEnd
  225.                         end
  226.                     end
  227.                 else
  228.                     --//ParagraphStart
  229.                     say('')
  230.                     say(subtitle)
  231.                     say('Du hast leider schon zuviele Aufträge erteilt.')
  232.                     --say('Du kannst maximal ' .. BOUNTY_MAX_JOBS .. ' Aufträge erteilen.')
  233.                     say(string.format('Du kannst maximal %d Aufträge erteilen.', BOUNTY_MAX_JOBS))
  234.                     say('')
  235.                     --//ParagraphEnd
  236.                 end
  237.             end
  238.                
  239.         end
  240.     end
  241. end
  242.        
  243.            
  244.                
  245.        
  246.                    
  247.                     function wndActionPurchase(title, subtitle, player, opponent)
  248.                         --//WindowStart
  249.                         say_title(title)
  250.                        
  251.                         --//ParagraphStart
  252.                         say('')
  253.                         say('Gut, somit werde ich dies in Auftrag geben.')
  254.                         say('Ich muss wohl kaum erwähnen, dass dich dies den Umständen entsprechend was kostet, oder?')
  255.                         say('Den Kosten entsprechend, werden sich ebenfalls Sölnder finden, welche deinen Auftrag annehmen.')
  256.                         say('')
  257.                         --//ParagraphEnd
  258.                        
  259.                         ::information_purchase::
  260.                        
  261.                         --//ParagraphStart
  262.                         say('')
  263.                         say(subtitle)
  264.                         say('Je mehr du zahlst, desto eher findet sich ein tapferer Krieger für die Mission.')
  265.                         say('Wähle deshalb mit bedacht, wie viel du den Kämpfern zahlst, dafür, dass sie dies an sich nehmen.')
  266.                         say('')
  267.                         --//ParagraphEnd
  268.                        
  269.                         --//ParagraphStart
  270.                         say('')
  271.                         say_reward(string.format('Kosten der Aufwendung: %d', BOUNTY_EXPENDITURE))
  272.                         say_reward(string.format('Minimale Kosten der Ausschreibung: %d', BOUNTY_EXPENDITURE))
  273.                         say_reward(string.format('Minimale Gesamtkosten: %d', (BOUNTY_EXPENDITURE + BOUNTY_MIN_REWARD)))
  274.                         say('')
  275.                         --//ParagraphEnd
  276.                        
  277.                         local player_gold = pc.get_gold()
  278.                        
  279.                         if (player_gold > (BOUNTY_EXPENDITURE + BOUNTY_MIN_REWARD)) then
  280.                             bounty_reward = tonumber(input())
  281.                            
  282.                            
  283.                             if (bounty.choice_normal()) then
  284.                                 if (bounty_reward < BOUNTY_MIN_REWARD) then
  285.                                     --//WindowStart
  286.                                     say_title(title)
  287.                                    
  288.                                     --//ParagraphStart
  289.                                     say('')
  290.                                     say('Zuwenig. Brauche eindeutig mehr sonst kann ich wenig damit anfangen.')
  291.                                     say('Ich muss den Maler bezahlen, welcher mir ein Porträt erstellt.')
  292.                                     say('Zudem sollte der Auftraggeber kein Geiziger sein.')
  293.                                     say('Wähle einen Beitrag der Summe, welcher dem Auftrag würdig ist.')
  294.                                     say('')
  295.                                     --//ParagraphEnd
  296.                                    
  297.                                     --//ParagraphStart
  298.                                     say('')
  299.                                     say(subtitle)
  300.                                     say('Der Gesetze Beitrag entspricht nicht der Summe, welche mindestens von dir verlangt wird.')
  301.                                     say('Wähle eine Summe, welche genügend Ressourcen abdeckt.')
  302.                                     say('')
  303.                                     --//ParagraphEnd
  304.                                    
  305.                                     --//WindowEnd
  306.                                    
  307.                                     goto information_purchase
  308.                                    
  309.                                 elseif (player_gold > (BOUNTY_EXPENDITURE + bounty_reward)) then
  310.                                     pc.change_gold(player_gold - (BOUNTY_EXPENDITURE + bounty_reward))
  311.                                     wndActionResult(title, subtitle, bounty_reward, opponent)
  312.                                 else
  313.                                     --//WindowStart
  314.                                     say_title(title)
  315.                                    
  316.                                     --//ParagraphStart
  317.                                     say('')
  318.                                     say('Wieviel ist dir dein Auftrag wert?')
  319.                                     say('Du hast garnicht soviel Geld in deiner Tasche, die du bei dir trägst.')
  320.                                     say('Wähle einen Beitrag einer Summe, welchen du auch wiedergeben kannst.')
  321.                                     say('')
  322.                                     --//ParagraphEnd
  323.                                    
  324.                                     --//ParagraphStart
  325.                                     say('')
  326.                                     say(subtitle)
  327.                                     say('Das Gesetze konnte nicht von deinem Konto beglichen werden.')
  328.                                     say('Wähle eine Summe, welche dir gewachsen ist.')
  329.                                     say('')
  330.                                     --//ParagraphEnd
  331.                                    
  332.                                     --//WindowEnd
  333.                                     goto information_purchase
  334.                                 end
  335.                             else
  336.                                 bounty.wndEnd(title, subtitle)
  337.                             end
  338.                         else
  339.                             --//ParagraphStart
  340.                             say('')
  341.                             say('Du hast nicht ausreichend Kapazität, wenn es um dein Vermögen geht.')
  342.                             say('Besser du legst dir noch was zur Seite und kommst wieder, wenn du die Möglichkeiten hast.')
  343.                             say('')
  344.                             --//ParagraphEnd
  345.                            
  346.                             --//ParagraphStart
  347.                             say('')
  348.                             say(subtitle)
  349.                             say('Du hast nicht genügend Kleingeld Ressourcen, um einen solche Mission in Auftrag zu geben.')
  350.                             say('')
  351.                             --//ParagraphEnd
  352.                            
  353.                             bounty.wndEnd(title, subtitle)
  354.                         end
  355.                         --//WindowEnd
  356.                        
  357.                        
  358.                         --bounty_reward = tonumber(input())
  359.                         --local choice = bounty.choice()
  360.                        
  361.                         function wndActionResult(title, subtitle, reward, opponent)
  362.                             --//WindowStart
  363.                             say_title(title)
  364.                            
  365.                             --//ParagraphStart
  366.                             say('')
  367.                             say('Ok, in Ordnung, ich werde mir deiner dienen.')
  368.                             say('Ich werde nun zum Marktplatz gehen und dort einen Auftrag ausschreiben.')
  369.                             say('Findet sich ein Maler, der Begabung, mit nur einem Namen, eine Person zu zeichnen,')
  370.                             say('Dann werde ich dir Bescheid geben durch einen Boten mit einer Schriftrolle.')
  371.                             say('')
  372.                             --//ParagraphEnd
  373.                            
  374.                             local result_msg = string.format('%s hat ein Kopfgeld über %d auf %s ausgesetzt.', pc.get_name(), reward, opponent)
  375.                            
  376.                             --//ParagraphStart
  377.                             say('')
  378.                             say(subtitle)
  379.                             say('Ein Auftrag wurde erteilt.')
  380.                             say(result_msg)
  381.                             say('')
  382.                             --//ParagraphEnd
  383.                            
  384.                             --//WindowEnd
  385.                            
  386.                             notice_all(result_msg)
  387.                             --say('Du wirst benachrichtigt und dies durch eine Schriftrolle des Auftrages.')
  388.                             --chat(string.format('Du hast somit ein Kopfgeld über %d auf %s ausgesetzt.', reward, opponent))
  389.                             bounty.wndEnd(title, subtitle)
  390.                         end
  391.                     end
  392.                 end
  393.             end
  394.            
  395.             function wndOverview(title, subtitle)
  396.                 --//WindowStart
  397.                 say_title(title)
  398.                
  399.                 --//ParagraphStart
  400.                 say('')
  401.                 say('Soll ich dir also eine Übersicht der aktuellen Geschenisse liefern?')
  402.                 say('Ich kann dich jederzeit informieren, über das, was sich so abspielt.')
  403.                 say('was würdest du gerne sehen?')
  404.                 say('')
  405.                 --//ParagraphEnd
  406.                
  407.                 --//ParagraphStart
  408.                 say('')
  409.                 say(subtitle)
  410.                 say('Wähle aus, was du begehrst.')
  411.                 say('')
  412.                 --//ParagraphEnd
  413.                
  414.                 local categories = bounty.cancellable({'Übersicht aller Kopfgelder', 'Übersicht meiner Aufträge', 'Ausgesetzte Kopfgelder auf mich'})
  415.                 local category = bounty.compare_selection(categories)
  416.                
  417.                 title = string.format('%s -> %d. %s', title, category[2], category[1])
  418.                
  419.                 if (bounty.cancellable_choice(categories, category[2])) then
  420.                     local category_links = {
  421.                         [1] = function () wndOverviewAll(title, subtitle) end,
  422.                         [2] = function () wndOverviewTo(title, subtitle) end,
  423.                         [3] = function () wndOverviewFrom(title, subtitle) end
  424.                     }
  425.                    
  426.                     category_links[category[2]]()
  427.                 else
  428.                     bounty.wndEnd()
  429.                 end
  430.                
  431.                
  432.                
  433.                 function wndOverviewAll(title, subtitle)
  434.                     --//WindowStart
  435.                     say_title(title)
  436.                    
  437.                     --//ParagraphStart
  438.                     say('')
  439.                     say('Hier siehst du eine Übersicht aller Aufträge.')
  440.                     say('')
  441.                     --//ParagraphEnd
  442.                    
  443.                     --//ParagraphStart
  444.                    
  445.                     --//ParagraphEnd
  446.                    
  447.                     wait()
  448.                     bounty.wndEnd()
  449.                     --//WindowEnd
  450.                 end
  451.                
  452.                 function wndOverviewTo(title, subtitle)
  453.                     ::overview_to::
  454.                     --//WindowStart
  455.                     say_title(title)
  456.                    
  457.                     --//ParagraphStart
  458.                     say('')
  459.                     say('Hier siehst du eine Übersicht all deiner Aufträge.')
  460.                     say('')
  461.                     --//ParagraphEnd
  462.                    
  463.                     --//ParagraphStart
  464.                    
  465.                     --//ParagraphEnd
  466.  
  467.                    
  468.                     local categories = bounty.cancellable({'Auftrag löschen', 'Alle Aufträge löschen'})
  469.                     local category = compare_selection(categories)
  470.                    
  471.                        
  472.                     if (bounty.cancellable_choice(categories, category[2])) then
  473.                         if (true) then
  474.                             --//WindowStart
  475.                             say_title(title)
  476.                            
  477.                             --//ParagraphStart
  478.                             say('')
  479.                             say('Wähle den zu löschenden Auftrag aus.')
  480.                             say('')
  481.                             --//ParagraphEnd
  482.                            
  483.                             --table.insert(overview_job, 'Abbrechen')
  484.                             overview_job = bounty.cancellable(overview_job)
  485.                             local job = compare_selection(overview_job)
  486.                            
  487.                             if (cancellable_choice(overview_job, job[2])) then
  488.                                 local opponent_name = overview_job_keyset[job[2]]
  489.                                 local overview_delete_sql = string.format('DELETE FROM bounty WHERE name = "%s" AND opponent_name = "%s";', pc.get_name(), opponent_name)
  490.                                 local overview_delete_query = mysql_query(overview_delete_sql)
  491.                             else
  492.                                 bounty.wndEnd()
  493.                             end
  494.                             --//WindowEnd
  495.                            
  496.                             goto overview_to
  497.                         end
  498.                     else
  499.                         bounty.wndEnd()
  500.                     end
  501.                        
  502.                 end
  503.                
  504.                 function wndOverviewFrom(title, subtitle)
  505.                     --//WindowStart
  506.                     say_title(title)
  507.                    
  508.                     --//ParagraphStart
  509.                     say('')
  510.                     say('Hier siehst du eine Übersicht all anderer Aufträge gegen dich.')
  511.                     say('')
  512.                     --//ParagraphEnd
  513.                    
  514.                     --//ParagraphStart
  515.                    
  516.                     --//ParagraphEnd
  517.                    
  518.                     wait()
  519.                     bounty.wndEnd()
  520.                     --//WindowEnd
  521.                 end
  522.             end
  523.            
  524.             function create_overview(arguments)            
  525.                 arguments = (arguments == nil) and '1' or arguments
  526.                
  527.                 local overview_sql = string.format([[
  528.                     USE player;
  529.  
  530.                     SET @GOLD_NAME := (SELECT locale_name FROM item_proto WHERE vnum = 1);
  531.  
  532.                     (SELECT
  533.                         @NAME_MAX := MAX(LENGTH(name)),
  534.                         @OPPONENT_NAME_MAX := MAX(LENGTH(opponent_name)),
  535.                         @GOLD_MAX := MAX(LENGTH(REPLACE(gold, '000', 'k')))
  536.                     FROM bounty);
  537.  
  538.                     SELECT LIST_ROW FROM
  539.                     ((SELECT
  540.                         CONCAT('[',
  541.                             RPAD(name, @NAME_MAX, ' '), '|',
  542.                             RPAD(opponent_name, @OPPONENT_NAME_MAX, ' '), '|',
  543.                             RPAD(REPLACE(gold, '000', 'k'), @GOLD_MAX, ' '),
  544.                         ']') AS LIST_ROW
  545.                     FROM bounty a ORDER BY create_time DESC) AS LIST_TABLE) WHERE %s;
  546.                 ]], arguments)
  547.                
  548.                 local overview_query = mysql_query(overview_sql)
  549.                 local overview_table = {}
  550.                
  551.                 table.foreach(overview_query, function(k, tcell)
  552.                     table.insert(overview_table, tcell[1])
  553.                 end)
  554.                
  555.                 return overview_table
  556.             end
  557.            
  558.             function job_create(player_name, opponent_name, gold)
  559.                 local job_sql = string.format([[
  560.                     USE player;
  561.  
  562.                     SET @PLAYER_NAME := '%s';
  563.                     SET @OPPONENT_NAME := '%s';
  564.                     SET @GOLD_VALUE := %d;
  565.  
  566.                     INSERT INTO bounty (name, opponent_name, gold) VALUES (@PLAYER_NAME, @OPPONENT_NAME, @GOLD_VALUE);
  567.  
  568.                     SELECT IF(
  569.                         (SELECT COUNT(*) FROM bounty WHERE
  570.                             name = @PLAYER_NAME AND
  571.                             opponent_name = @OPPONENT_NAME AND
  572.                             gold = @GOLD_VALUE LIMIT 1) = 1
  573.                     , TRUE, FALSE);
  574.                 ]], player_name, opponent_name, gold)
  575.                
  576.                 local job_query = mysql_query(job_sql)
  577.                 local job_result = job_query[1][1]
  578.                
  579.                 return job_result
  580.             end
  581.            
  582.             function job_survey(player_name, opponent_name, max_counter_bounty)
  583.                
  584.                 local job_survey_sql = string.format([[
  585.                     USE player;
  586.  
  587.                     SET @PLAYER_NAME := '%s'
  588.                     SET @OPPONENT_NAME := '%s';
  589.                     SET @COUNTER_MAX := %d;
  590.  
  591.                     SET @EXISTENCE := IF ((SELECT COUNT(*) FROM player WHERE name = @OPPONENT_NAME LIMIT 1) = 1, TRUE, FALSE);
  592.  
  593.                     PREPARE COUNTER_SQL FROM 'SELECT COUNT(*) FROM bounty WHERE opponent_name = @OPPONENT_NAME LIMIT ? INTO @COUNTER_COUNT';
  594.                     EXECUTE COUNTER_SQL USING @COUNTER_MAX;
  595.  
  596.                     SET @CONFIDENCE := IF ((SELECT COUNT(*) FROM player WHERE name = @OPPONENT_NAME OR name = @PLAYER_NAME GROUP BY name, account_id LIMIT 2) = 2, TRUE, FALSE);
  597.                     SET @COUNTER := IF (@COUNTER_COUNT < @COUNTER_MAX, TRUE, FALSE);
  598.  
  599.                     (SELECT
  600.                         @EXISTENCE AS EXISTENCE,
  601.                         @CONFIDENCE AS CONFIDENCE,
  602.                         @COUNTER AS COUNTER);
  603.                 ]], player_name, opponent_name, max_counter_bounty)
  604.                
  605.                 local job_survey_query = mysql_query(job_survey_sql)
  606.                 local job_survey_table = {}
  607.                
  608.                 job_survey_table['EXISTENCE'] = job_survey_query[1][1]
  609.                 job_survey_table['CONFIDENCE'] = job_survey_query[1][2]
  610.                 job_survey_table['COUNTER'] = job_survey_query[1][3]
  611.                
  612.                 return job_survey_table
  613.             end
  614.            
  615.             function job_delete(player_name, opponent_name)
  616.                 local job_delete_sql = string.format([[
  617.                     USE player;
  618.  
  619.                     SET @PLAYER_NAME := '%s';
  620.                     SET @OPPONENT_NAME := '%s';
  621.  
  622.                     DELETE FROM bounty WHERE name = @PLAYER_NAME AND opponent_name = @OPPONENT_NAME;
  623.  
  624.                     SELECT IF(
  625.                         (SELECT COUNT(*) FROM bounty WHERE
  626.                             name = @PLAYER_NAME AND
  627.                             opponent_name = @OPPONENT_NAME LIMIT 1) = 0
  628.                     , TRUE, FALSE);
  629.                 ]], player_name, opponent_name)
  630.                
  631.                 local job_delete_query = mysql_query(job_delete_sql)
  632.                 local job_delete_result = job_delete_query[1][1]
  633.                
  634.                 return job_delete_result
  635.             end
  636.        
  637.             function bounty_survey(player_name, max_bounty_jobs)
  638.                 local bounty_survey_sql = string.format([[
  639.                     USE player;
  640.  
  641.                     SET @PLAYER_NAME := '%s';
  642.                     SET @COUNTER_MAX := %d;
  643.  
  644.                     PREPARE COUNTER_SQL FROM 'SELECT COUNT(*) FROM bounty WHERE name = @PLAYER_NAME LIMIT ? INTO @COUNTER_COUNT';
  645.                     EXECUTE COUNTER_SQL USING @COUNTER_MAX;
  646.  
  647.                     SELECT IF (@COUNTER_COUNT < @COUNTER_MAX, TRUE, FALSE);
  648.                 ]], player_name, max_bounty_jobs)
  649.                
  650.                 local bounty_survey_query = mysql_query(bounty_survey_sql)
  651.                 local bounty_survey_result = bounty_survey_query[1][1]
  652.                
  653.                 return bounty_survey_result
  654.             end
  655.         end
  656.     end
  657. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement