Jump to content

Probleme quest with sql


Recommended Posts

Hello, here I have a problem with a quest that uses sql. If two players use the quest at the same time, one of the sql queries is not executed and I do not understand why. I put the quest and lua.

Quest :

 

	quest skill_pet begin
    state start begin
        when 33003.take with item.get_id() begin
            id = item.get_id()
            vnum = item.get_vnum()
            if vnum >= 55701 and vnum <= 55706 then    
                say_title("Eleveur :")
                say("Que voulez vous faire ?")
                local s = select ("Renommer mon pet", "Changer le nombre de skill", "Réinitialiser les compétences", "Switch les stats","Quitter")
                if s==1 then
                    --if pc.count_item(xxx) > 0
                        say_title("Eleveur :")
                        say("Inscrivez le nouveau nom de votre pet :")
                        local name = input()
                        say_title("Eleveur :")
                        say("Voulez vous vraiment rename votre pet")
                        say("en "..name.." ?")
                        local s = select ("Oui", "Non")
                        if s==1 then
                            pet_name1(name,id)
                            --pc.remove_item(xxx,1)
                        else
                            return
                        end
                    --else
                        --say_title("Eleveur :")
                        --say("Vous n'avez pas l'item nécessaire")
                    --end
                elseif s==2 then                            
                    --if pc.count_item(xxx) > 0 then        
                        if check_evo(id) == 3 then
                            say_title("Eleveur :")
                            say("Je peux donner à votre pet un grand pouvoir !")
                            say("Souhaitez-vous que votre compagnon obtiennent la")
                            say("possibilité d'apprendre 3 skills ?")
                            say("Votre pet ne doit pas être sorti pendant la procédure")
                            local s = select ("Oui", "Non")
                            if s== 1 then
                                full_skill(id)
                                --pc.remove_item(xxx,1)
                            else
                                return
                            end
                        else
                            say_title("Eleveur :")
                            say("Votre pet n'est pas évolué.")
                        end
                    --else
                        --say_title("Eleveur :")
                        --say("Vous n'avez pas l'item nécessaire")
                    --end
                elseif s == 3 then
                    if check_evo(id) == 3 then                                    
                        if check_skill2(id) == -1 then
                            say_title("Eleveur :")
                            say("Je peux remettre les compétences de votre pet")
                            say("à zéro, si vous le désirez.")
                            local s = select ("Oui", "Non")
                            if s==1 then
                                reset_skill1(id)
                            else
                                return
                            end
                        elseif check_skill3(id) == -1 then
                            say_title("Eleveur :")
                            say("Je peux remettre les compétences de votre pet")
                            say("à zéro, si vous le désirez.")
                            local s = select ("Oui", "Non")
                            if s==1 then
                                reset_skill2(id)
                            else
                                return
                            end
                        else
                            say_title("Eleveur :")
                            say("Je peux remettre les compétences de votre pet")
                            say("à zéro, si vous le désirez.")
                            local s = select ("Oui", "Non")
                            if s==1 then
                                reset_skill3(id)
                            else
                                return
                            end
                        end
                    else
                        say_title("Eleveur :")
                        say("Votre pet n'est pas évolué.")
                    end
                elseif s==4 then
                    say_title("Eleveur :")
                    say("Souhaitez vous switch les stats de votre pet ?")
                    local s = select ("Oui", "Non")
                    if s==1 then
                        --if pc.count_item(xxx) > 0
                            
                            if check_level(id) == 121 then                                 
                                pv = number(80,130)
                                cc = number(50,100)
                                y = number(1,100)
                                if y > 10 then                                 
                                    dh = number(100,150)
                                else
                                    dh = number(130,150)
                                end
                                switch_stat(id,pv,cc,dh)
                                --pc.remove_item(xxx,1)
                            else
                                say_title("Eleveur :")
                                say("Votre pet n'est pas 121.")
                            end
                        --else
                            --say_title("Eleveur :")
                            --say("Vous n'avez pas l'item nécessaire.")
                        --end
                    else
                        return
                    end
                else
                    return
                end    
            else
                say_title("Eleveur :")
                say("L'item que vous m'avez donné n'est pas un sceau de pet.")
            end
        end
    end
end
	

 

Lua :

 

	function pet_name1(name,id)
    mysql_query("UPDATE player_test.new_petsystem SET name='"..name.."' WHERE id = '"..id.."';")
end
	function check_evo(id)
    local check_evo_pet = mysql_query("SELECT evolution FROM player_test.new_petsystem WHERE id='"..id.."' LIMIT 1;")
    local evo_pet = check_evo_pet[1][1]
    return evo_pet
end
	function full_skill(id)
    mysql_query("UPDATE player_test.new_petsystem SET skill1 = 0, skill2 = 0 WHERE id = '"..id.."';")
end
	function check_skill2(id)
    local verif_skill2 = mysql_query("SELECT skill1 FROM player_test.new_petsystem WHERE id ='"..id.."' LIMIT 1;")
    local skill2 = verif_skill2[1][1]
    return skill2
end
	function check_skill3(id)
    local verif_skill3 = mysql_query("SELECT skill2 FROM player_test.new_petsystem WHERE id ='"..id.."' LIMIT 1;")
    local skill3 = verif_skill3[1][1]
    return skill3
end
	function reset_skill1(id)
    mysql_query("UPDATE player_test.new_petsystem SET skill0 = 0, skill0lv = 0 WHERE id = '"..id.."';")
end
	function reset_skill2(id)
    mysql_query("UPDATE player_test.new_petsystem SET skill0 = 0, skill0lv = 0, skill1 = 0, skill1lv = 0 WHERE id = '"..id.."';")
end
	function reset_skill3(id)    
    mysql_query("UPDATE player_test.new_petsystem SET skill0 = 0, skill0lv = 0, skill1 = 0, skill1lv = 0, skill2 = 0, skill2lv = 0 WHERE id = '"..id.."';")
end
	function check_level(id)
    local verif_lvl = mysql_query("SELECT level FROM player_test.new_petsystem WHERE id='"..id.."' LIMIT 1;")
    local level = verif_lvl[1][1]
    return level
end
	function switch_stat(id,pv,cc,dh)
    mysql_query("UPDATE player_test.new_petsystem SET bonus0 = '"..pv.."',bonus1='"..cc.."',bonus2 ='"..dh.."'WHERE id='"..id.."' LIMIT 1;")                                    
end
	 
	
Link to comment
Share on other sites

  • Replies 4
  • Created
  • Last Reply

Top Posters In This Topic

  • Bot
		when 33003.take with item.get_id() begin
            id = item.get_id()
            vnum = item.get_vnum()
            if vnum >= 55701 and vnum <= 55706 then    
                say_title("Eleveur :")
                say("Que voulez vous faire ?")
                local s = select ("Renommer mon pet", "Changer le nombre de skill", "Réinitialiser les compétences", "Switch les stats","Quitter")
                if s==1 then
                    // Check if the npc is being used.
					if not npc.lock() then
						say_green("Le npc est utilisé par une autre personne, veuillez attendre votre tour.")
						return
					end
                    // Check if the npc is being used.

Try this, I can not think of anything else. xD

english_banner.gif

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.