[SERVICE] Die Questkontrolle

05/14/2013 17:47 F O R S E N B O Y S#8086
Hi,

eine kleine Frage an die etwas erfahreneren Quester. Ich würde gerne einen Teil meiner Quest so gestalten, dass zunächst ein bestimmtes Monster getötet werden muss. Allerdings in einer etwas größeren Ausführung, und zwar, dass es beispielsweise fünf verschieden eingetragene Monster gibt. Also, dass, nach dem Zufallsprinzip, eines dieser Monster ausgewählt wird (mit passendem Text).

Also Person A kriegt dann die Mission "Töte den Wildhund"
Person B kriegt "Töte einen Wolf"
Person C wieder "Töte einen Wildhund"
Person XY "Töte einen Ork"

Und das ganze halt zufällig, dass man eines dieser Monster töten soll.
Ich würde mich echt über 'ne Rückmeldung freuen.
05/15/2013 07:13 He3o Sippel#8087
Quote:
Originally Posted by Zombernatural View Post
Hi,

eine kleine Frage an die etwas erfahreneren Quester. Ich würde gerne einen Teil meiner Quest so gestalten, dass zunächst ein bestimmtes Monster getötet werden muss. Allerdings in einer etwas größeren Ausführung, und zwar, dass es beispielsweise fünf verschieden eingetragene Monster gibt. Also, dass, nach dem Zufallsprinzip, eines dieser Monster ausgewählt wird (mit passendem Text).

Also Person A kriegt dann die Mission "Töte den Wildhund"
Person B kriegt "Töte einen Wolf"
Person C wieder "Töte einen Wildhund"
Person XY "Töte einen Ork"

Und das ganze halt zufällig, dass man eines dieser Monster töten soll.
Ich würde mich echt über 'ne Rückmeldung freuen.
Ich schreibe dir das heute , wenn ich von der Schule wieder komme.
05/15/2013 16:39 Noa_#8088
es muss so heißen
PHP Code:
say("Du befindets dich im "..({"Roten-Reich","Gelben-Reich","Blauen-Reich"})[pc.get_empire()]..", auf Avenia2"
05/15/2013 16:45 Zryyy#8089
Code:
quest sensidrop begin 
    state start begin 
        when 1093.kill begin 
            local d_item = { 
				{50082, 1, 500.0}, 
				
            }             
            for i = 1, table.getn(d_item) do 
                local r_drop = number(1, 100) 
                if r_drop <= d_item[i][3] then 
                    game.drop_item_with_ownership(d_item[i][1], d_item[i][2]) 
                    end 
             end 
        end 
    end 
end
Was stimmt mit der quest nicht -.-
05/15/2013 19:07 sero61#8090
Komisch .. ich füge meine quest ein:
PHP Code:
quest BlauTiger begin   
     state start begin   
         when 71137.
use begin 
            affect
.remove_collect()           
            
pc.mount(20144,28800)
            
pc.mount_bonus(apply.EXP_DOUBLE_BONUS,20,28800)
            
pc.mount_bonus(apply.ATT_GRADE_BONUS,50,28800)
            
pc.remove_item(71137,1)  
         
end  
      end   
end 
Tue "m2 qc" in box..
ingame /reload qc
doch wenn ich das item hole erscheint ein Feuerphönix x)
mount_test schon gemacht mit 20144.. kommt blauer tiger..
aber beim item Feuerphönix -.- bitte um hilfe..
Navicat typ 16..wenn ich auf 18 mache .. geht gar nichts mehr x)

Quote:
Originally Posted by .PvPKrieger™ View Post
Salut.
Habe ein Problem bei meiner "give_basic_weapon" Quest.

Fehler: Error occured on compile give_basic_weapon.quest.

PHP Code:
quest give_basic_weapon begin 
    state start begin 
        when login    begin 
            
if pc.getqf("basic_weapon") == 0 then 
                pc
.setqf("basic_weapon"1

                if 
pc.job == 0 then                    -- Starterset Krieger
                    pc
.give_item2(19)                -- Schwert+9
                    pc
.give_item2(72723)            -- Elixier der Sonne (K)[Autopott]
                    
pc.give_item2(72727)            -- Elixier des Mondes(K)[Autopott]
                    
pc.give_item2(72702)            -- Windschuhe + [60Bew.]
                    
pc.give_item2(50053)            -- Militär-Pferdebuch
                    pc
.give_item2(70007)            -- Warpring
                    pc
.give_item2(70038100)        -- Tapferkeitsumhänge [100 Stück]
                    
pc.give_item2(50187)            -- Lehrlingstruhe I
                    pc
.give_item2(13009)            -- Schild+9
                    pc
.give_item2(17009)            -- Ohrringe+9
                    pc
.give_item2(14009)            -- Armband+9
                    pc
.give_item2(15009)            -- Schuhe+9
                    pc
.give_item2(16009)            -- Kette+9
                    pc
.give_item2(12209)            -- Krieger Helm+[Lv.1]
                    
pc.give_item2(11209)            -- Krieger Rüstung+[Lv.1]
                    
say("Willkommen auf Avenia2!"
                    
say("http://Avenia2"
                    
say("http://board.Avenia2")
                    
say("")
                    
say("Du befindets dich im "..({"Roten-Reich","Gelben-Reich","Blauen-Reich"})[pc.get_empire()], auf Avenia2)
                    
say("existieren drei Reiche, die Reiche haben sich")
                    
say("verbündet um gegen die bösen Mächte zu kämpfen!")
                    
say("Du wirst ein komplett neues Spielerlebnis erleben!")
                    
say("Fragen oder Probleme? Melde dich im Forum oderbei")
                    
say("Teamlern, eine Liste findet ihr auch im Forum.")
                    
say("Dein Avenia2-Team wünscht dir viel Spaß!")
                    
say("")
                    
say("Du bekommst das Kriegerset!")

                elseif 
pc.job == 1 then                -- Starterset Ninja 
                    pc
.give_item2(1009)                -- Dolch+9
                    pc
.give_item2(72723)            -- Elixier der Sonne (K)[Autopott]
                    
pc.give_item2(72727)            -- Elixier des Mondes(K)[Autopott]
                    
pc.give_item2(72702)            -- Windschuhe + [60Bew.]
                    
pc.give_item2(50053)            -- Militär-Pferdebuch
                    pc
.give_item2(70007)            -- Warpring
                    pc
.give_item2(70038100)        -- Tapferkeitsumhänge [100 Stück]
                    
pc.give_item2(50187)            -- Lehrlingstruhe I
                    pc
.give_item2(13009)            -- Schild+9
                    pc
.give_item2(17009)            -- Ohrringe+9
                    pc
.give_item2(14009)            -- Armband+9
                    pc
.give_item2(15009)            -- Schuhe+9
                    pc
.give_item2(16009)            -- Kette+9
                    pc
.give_item2(12349)            -- Ninja Helm+[Lv.1]
                    
pc.give_item2(11409)            -- Ninja Rüstung+[Lv.1]
                    
say("Willkommen auf Avenia2!"
                    
say("http://Avenia2"
                    
say("http://board.Avenia2")
                    
say("")
                    
say("Du befindets dich im "..({"Roten-Reich","Gelben-Reich","Blauen-Reich"})[pc.get_empire()], auf Avenia2)
                    
say("existieren drei Reiche, die Reiche haben sich")
                    
say("verbündet um gegen die bösen Mächte zu kämpfen!")
                    
say("Du wirst ein komplett neues Spielerlebnis erleben!")
                    
say("Fragen oder Probleme? Melde dich im Forum oderbei")
                    
say("Teamlern, eine Liste findet ihr auch im Forum.")
                    
say("Dein Avenia2-Team wünscht dir viel Spaß!")
                    
say("")
                    
say("Du bekommst das Kriegerset!")
                 
                elseif 
pc.job == 2 then             -- Starterset Sura
                    pc
.give_item2(19)                -- Schwert+9
                    pc
.give_item2(72723)            -- Elixier der Sonne (K)[Autopott]
                    
pc.give_item2(72727)            -- Elixier des Mondes(K)[Autopott]
                    
pc.give_item2(72702)            -- Windschuhe + [60Bew.]
                    
pc.give_item2(50053)            -- Militär-Pferdebuch
                    pc
.give_item2(70007)            -- Warpring
                    pc
.give_item2(70038100)        -- Tapferkeitsumhänge [100 Stück]
                    
pc.give_item2(50187)            -- Lehrlingstruhe I
                    pc
.give_item2(13009)            -- Schild+9
                    pc
.give_item2(17009)            -- Ohrringe+9
                    pc
.give_item2(14009)            -- Armband+9
                    pc
.give_item2(15009)            -- Schuhe+9
                    pc
.give_item2(16009)            -- Kette+9
                    pc
.give_item2(12489)            -- Sura Helm+[Lv.1]
                    
pc.give_item2(11609)            -- Sura Rüstung+[Lv.1]
                    
say("Willkommen auf Avenia2!"
                    
say("http://Avenia2"
                    
say("http://board.Avenia2")
                    
say("")
                    
say("Du befindets dich im "..({"Roten-Reich","Gelben-Reich","Blauen-Reich"})[pc.get_empire()], auf Avenia2)
                    
say("existieren drei Reiche, die Reiche haben sich")
                    
say("verbündet um gegen die bösen Mächte zu kämpfen!")
                    
say("Du wirst ein komplett neues Spielerlebnis erleben!")
                    
say("Fragen oder Probleme? Melde dich im Forum oderbei")
                    
say("Teamlern, eine Liste findet ihr auch im Forum.")
                    
say("Dein Avenia2-Team wünscht dir viel Spaß!")
                    
say("")
                    
say("Du bekommst das Kriegerset!")
                 
                elseif 
pc.job == 3 then             -- Starterset Schamie
                    pc
.give_item2(7009)                -- Fächer+9
                    pc
.give_item2(72723)            -- Elixier der Sonne (K)[Autopott]
                    
pc.give_item2(72727)            -- Elixier des Mondes(K)[Autopott]
                    
pc.give_item2(72702)            -- Windschuhe + [60Bew.]
                    
pc.give_item2(50053)            -- Militär-Pferdebuch
                    pc
.give_item2(70007)            -- Warpring
                    pc
.give_item2(70038100)        -- Tapferkeitsumhänge [100 Stück]
                    
pc.give_item2(50187)            -- Lehrlingstruhe I
                    pc
.give_item2(13009)            -- Schild+9
                    pc
.give_item2(17009)            -- Ohrringe+9
                    pc
.give_item2(14009)            -- Armband+9
                    pc
.give_item2(15009)            -- Schuhe+9
                    pc
.give_item2(16009)            -- Kette+9
                    pc
.give_item2(12629)            -- Sura Helm+[Lv.1]
                    
pc.give_item2(11809)            -- Sura Rüstung+[Lv.1]
                    
say("Willkommen auf Avenia2!"
                    
say("http://Avenia2"
                    
say("http://board.Avenia2")
                    
say("")
                    
say("Du befindets dich im "..({"Roten-Reich","Gelben-Reich","Blauen-Reich"})[pc.get_empire()], auf Avenia2)
                    
say("existieren drei Reiche, die Reiche haben sich")
                    
say("verbündet um gegen die bösen Mächte zu kämpfen!")
                    
say("Du wirst ein komplett neues Spielerlebnis erleben!")
                    
say("Fragen oder Probleme? Melde dich im Forum oderbei")
                    
say("Teamlern, eine Liste findet ihr auch im Forum.")
                    
say("Dein Avenia2-Team wünscht dir viel Spaß!")
                    
say("")
                    
say("Du bekommst das Kriegerset!")
                    
                
end
            end 
        end 
    end 
end 
zu wenige ends..
05/15/2013 19:48 Darius93#8091
Und zwar folgendes

Ich hab einen NPC mit der Value 20092 auf map1 plaziert. (Daroo Files)
Dieser Npc soll mit folgender Quest in zwei verschiedenen Läden Steine Verkaufen.

quest npc shops begin
state start begin
when 20092.chat begin
say_title("Herzlich Willkommen!")
say("")
say("Bitte wähle eine Kategorie:")
say("")
local kategorie = select("Steine 1", "Steine 2", "Abbrechen")
if kategorie == 3 then
return
elseif kategorie == 1 then
say_title("Viel Spaß")
say("")
say("Viel Spaß beim einkaufen!")
say("")
npc.open_shop(14)
elseif kategorie == 2 then
say_title("Viel Spaß")
say("")
say("Viel Spaß beim einkaufen!")
say("")
npc.open_shop(15)
end
end
end
end

Die on_click in der db hab ich auf 2 gesetz, die Quest is in die quest-list eingetragen und hat auch alle berechtigungen (777). Hab außerdem auch python make.py gemacht.
Aber der Npc öffnet die Quest bzw. die Shops nicht, also passiert nix.

Schonmal Danke im voraus
05/15/2013 19:49 .Leykas#8092
Code:
quest jobquest begin
	state start begin
	end
	state run begin
		when login or levelup with pc.level >= 50 and pc.level <= 250 begin
			set_state(information)
		end
	end

	state information begin
		when letter begin
			local v = find_npc_by_vnum(20355)
			if v != 0 then
				target.vid("__TARGET__", v, "Häuptling")
			end
			send_letter("Spezifische Ausbildung")
		end
		when button or info begin
			say_title("Die Spezifische Ausbildung..")
			say("Gehe zum Häuptling, er sucht dich.")
			say("Es steht eine weitere Ausbildung für dich bereit.")
			say("Er wird dich weiter ausbilden.")
			say("Du solltest nicht auf dich warten lassen..")
			say_reward("Gehe zum Häuptling deines Reiches!!")
		end
		when __TARGET__.target.click or 20355.chat."Spezifische Ausbildung" begin
			say_title("Spezifische Klassenausbildung:")
			say("")
			say(""..pc.get_name()..", sei gegrüßt!")
			say("Du kannst bei mir eine Ausbildung beginnen")
			say("je nach Wahl bekommst du andere Vorteile.")
			say("Doch eins muss ich dir sagen wähle klug, denn")
			say("es gibt anderen Spielern gegenüber")
			say("Vor - und Nachteile.")
			say("")
			say("")
			wait()
			say_black("Spezifische Klassenausbildung:")
			say("")
			say("Ich zähle dir nun auf was in Frage kommen würde")
			say("bei den Ausbildungen. Du kannst wählen")
			say("zwischen:")
			say("")
			say("Gladiator (Körper-Lehre)")
			say("Berserker (Mental-Lehre)")
			say("Assasine (Nahkampf-Lehre)")
			say("Jäger (Fernkampf-Lehre)")
			say("Alchemist (Waffen-Lehre)")
			say("Magier (Schwarze Magie-Lehre)")
			say("Heiler (Heil-Lehre)")
			say("Beschwörer (Drachenmacht-Lehre)")
			say("")
			say("")
			wait()
			say_title("Spezifische Klassenausbildung:")
			say("")
			say("Nun wähle weise und entscheide dich")
			say("welchen Weg du beschreiten möchtest.")
			say("")
			local wahl = select ("Gladiator", "Berserker", "Assasine", "Jäger", "Alchemist", "Magier", "Heiler", "Beschwörer", "Abbrechen")
			if wahl == 9 then
				return
			elseif wahl == 1 then
				say_title("Ausbildung zum Gladiator:")
				say("")
				say("Du hast dich zu einer Ausbildung zum")
				say("Gladiator entschieden "..pc.get_name()..".")
				say("Du wirst ein Kriegsherr deines Reiches!")
				say("")
				say("Du bekommst:")
				say("")
				say_reward("+5 Stärke")
				say_reward("5% Durchbruch")
				say_reward("30 Angriffswert")
				affect.add_collect(apply.ATT_GRADE_BONUS, 30, 60*60*24*365*60)
				affect.add_collect(apply.STR, 5, 60*60*24*365*60)
				affect.add_collect(apply.PENETRATE_PCT, 5, 60*60*24*365*60)
				set_state(__COMPLETE__)
			elseif wahl == 2 then
				say_title("Ausbildung zum Berserker:")
				say("")
				say("Du hast dich zu einer Ausbildung zum")
				say("Berserker entschieden "..pc.get_name()..".")
				say("Du wirst das Veiteidigungskommando deines Reiches!")
				say("")
				say("Du bekommst:")
				say("")
				say_reward("+5 Beweglichkeit")
				say_reward("+10% Zaubergeschwindigkeit")
				say_reward("+10% Angriffsgeschwindigkeit")
				affect.add_collect(apply.DEX, 5, 60*60*24*365*60)
				affect.add_collect(apply.CAST_SPEED, 10, 60*60*24*365*60)
				affect.add_collect(apply.ATT_SPEED, 10, 60*60*24*365*60)
				set_state(__COMPLETE__)
			elseif wahl == 3 then
				say_title("Ausbildung zum Assasine:")
				say("")
				say("Du hast dich zu einer Ausbildung zum")
				say("Assasine entschieden "..pc.get_name()..".")
				say("Du wirst ein unendeckter Assasine, der aus dem Hinterhalt angreift!")
				say("")
				say("Du bekommst:")
				say("")
				say_reward("+5 Beweglichkeit")
				say_reward("+5% Chance auf Vergiften")
				say_reward("+5% reflektieren")
				affect.add_collect(apply.DEX, 5, 60*60*24*365*60)
				affect.add_collect(apply.POISON_PCT, 5, 60*60*24*365*60)
				affect.add_collect(apply.REFLECT_MELEE, 5, 60*60*24*365*60)
				set_state(__COMPLETE__)
			elseif wahl == 4 then
				say_title("Ausbildung zum Jäger:")
				say("")
				say("Du hast dich zu einer Ausbildung zum")
				say("Jäger entschieden "..pc.get_name()..".")
				say("Du wirst ein präziser Fernkämpfer und kannst deinen Reich Rückendeckung geben!")
				say("")
				say("Du bekommst:")
				say("")
				say_reward("+5 Stärke")
				say_reward("+3% Ohnmachtchance")
				say_reward("+5% abblocken")
				affect.add_collect(apply.STR, 5, 60*60*24*365*60)
				affect.add_collect(apply.STUN_PCT, 3, 60*60*24*365*60)
				affect.add_collect(apply.BLOCK, 5, 60*60*24*365*60)
				set_state(__COMPLETE__)
			elseif wahl == 5 then
				say_title("Ausbildung zum Alchemist:")
				say("")
				say("Du hast dich zu einer Ausbildung zum")
				say("Alchemist entschieden "..pc.get_name()..".")
				say("Du wirst ein mysteriöser Alchemist und kämpst mit verzauberten Waffen für dein Reich!")
				say("")
				say("Du bekommst:")
				say("")
				say_reward("+5 Intelligenz")
				say_reward("+5% Giftwiderstand")
				say_reward("+5% Verlangsamen")
				affect.add_collect(apply.INT, 5, 60*60*24*365*60)
				affect.add_collect(apply.POISON_REDUCE, 5, 60*60*24*365*60)
				affect.add_collect(apply.SLOW_PCT, 5, 60*60*24*365*60)
				set_state(__COMPLETE__)
			elseif wahl == 6 then
				say_title("Ausbildung zum Magier:")
				say("")
				say("Du hast dich zu einer Ausbildung zum")
				say("Magier entschieden "..pc.get_name()..".")
				say("Du wirst ein mächtiger dunkler Magier, der für sein Reich zaubert!")
				say("")
				say("Du bekommst:")
				say("")
				say_reward("+5 Intelligenz")
				say_reward("+20% Tp-Regeneration")
				say_reward("+10% Tp-Absorbtion")
				affect.add_collect(apply.INT, 5, 60*60*24*365*60)
				affect.add_collect(apply.HP_REGEN, 20, 60*60*24*365*60)
				affect.add_collect(apply.STEAL_HP, 10, 60*60*24*365*60)
				set_state(__COMPLETE__)
			elseif wahl == 7 then
				say_title("Ausbildung zum Heiler:")
				say("")
				say("Du hast dich zu einer Ausbildung zum")
				say("Heiler entschieden "..pc.get_name()..".")
				say("Du wirst Heiler deines Reiches. Du wirst den mächtigen Krieger im Kampf zur Seite stehen!")
				say("")
				say("Du bekommst:")
				say("")
				say_reward("+5 Intelligenz")
				say_reward("+20% Tp-Regeneration")
				say_reward("+5% Krit")
				affect.add_collect(apply.INT, 5, 60*60*24*365*60)
				affect.add_collect(apply.HP_REGEN, 20, 60*60*24*365*60)
				affect.add_collect(apply.CRITICAL_PCT, 5, 60*60*24*365*60)
				set_state(__COMPLETE__)
			elseif wahl == 8 then
				say_title("Ausbildung zum Beschwörer:")
				say("")
				say("Du hast dich zu einer Ausbildung zum")
				say("Beschwörer entschieden "..pc.get_name()..".")
				say("Du wirst ein mächtiger Beschwörer. Du kannst mächtige Wesen herbeirufen!")
				say("")
				say("Du bekommst:")
				say("")
				say_reward("+5 Intelligenz")
				say_reward("+10% Zaubergeschwindigkeit")
				say_reward("+20 Magischer angriffswert")
				affect.add_collect(apply.INT, 5, 60*60*24*365*60)
				affect.add_collect(apply.CAST_SPEED, 3, 60*60*24*365*60)
				affect.add_collect(apply.ATT_GRADE_BONUS, 20, 60*60*24*365*60)
				set_state(__COMPLETE__)
			end
		end
	end
	state __COMPLETE__ begin
	end
end
Wo ist bitte hier der Fehler?!
05/15/2013 20:17 Zryyy#8093
Wie füg ich das ein, das man z.b. bei einem metin bis lvl 20 oder so etwas droppt?
05/15/2013 22:41 Noa_#8094
Quote:
Originally Posted by Zryyy View Post
Code:
quest sensidrop begin 
    state start begin 
        when 1093.kill begin 
            local d_item = { 
				{50082, 1, 500.0}, 
				
            }             
            for i = 1, table.getn(d_item) do 
                local r_drop = number(1, 100) 
                if r_drop <= d_item[i][3] then 
                    game.drop_item_with_ownership(d_item[i][1], d_item[i][2]) 
                    end 
             end 
        end 
    end 
end
Was stimmt mit der quest nicht -.-
PHP Code:
local d_item = {
    {
500821500},
}
local sub=3
local r_drop 
math.random(1table.getn(d_item)+sub)
if 
d_item[1][r_drop]==nil then
    
print("Fail item")
    return
end
print(d_item[1][r_drop]) 
05/16/2013 12:53 costanco#8095
Code:
quest pvp_exp begin
	state start begin
		when kill with npc.is_pc()  begin
			pc.give_exp2(50000) 
		end
	end
end
05/16/2013 13:24 Zryyy#8096
Quote:
Originally Posted by ΞΠ∪Μ View Post
PHP Code:
local d_item = {
    {
500821500},
}
local sub=3
local r_drop 
math.random(1table.getn(d_item)+sub)
if 
d_item[1][r_drop]==nil then
    
print("Fail item")
    return
end
print(d_item[1][r_drop]) 
Danke, aber klappt immer noch nicht q-q

Kann mal einer hier helfen?
€ : neue quest :

Code:
quest ingame_tombola begin
	state start begin
		function give_item()
			-- Methode 1: MySQL
			--[[local item = mysql_query("select vnum,anz from player.tombola_items;")]]
			-- Methode 2: Array
				--[[local item = {
					{19, 1},
					{29, 1},
					{39, 1},
					{49, 1},
					{59, 1},
				}
			]]
			local anz = number(1, table.getn(item))
			pc.give_item2(item[anz][1], item[anz][2])
		end
		function get_coins()
			local c = mysql_query("select coins from account.account where id = '"..pc.get_accountid().."';")
			return c
		end
		when 20095.chat."Ingame Tombola" begin
			if pc.getqf("frei") == 1 then
				say_title(string.format("%d:", mob_name(npc.get_race())))
				say()
				say("Du kannst an der Tombola noch nicht teilnehmen.")
				wait()
				return
			end
			local current_coins = ingame_tombola.get_coins()
			local reward_coins = 500
			say_title(string.format("%d:", mob_name(npc.get_race())))
			say_reward(string.format("Aktuelle Coins: %d", current_coins))
			say_reward(string.format("Teilnahmekosten: %d Coins", reward_coins))
			say()
			if select("Teilnehmen","Abbrechen") == 2 then return end
			if current_coins < reward_coins then return chat(string.format("Dir fehlen %d Coins", (reward_coins - current_coins))) end
			ingame_tombola.give_item()
			mysql_query("update account.account set coins = coins - reward_coins where id = '"..pc.get_accountid().."';")
			pc.setqf("frei",1)
			server_timer("freimachen", 60*60*24)
		end
		when freimachen.server_timer begin
			pc.setqf("frei",0)
		end
	end
end
FUNCTION give_item()
FUNCTION get_coins()
WHEN : 11005.chat ("Ingame Tombola")
WHEN : freimachen.server_timer
Calls undeclared function! :
pc.get_accountid
Error occured on compile ingame_tombola.quest
05/16/2013 14:08 Noa_#8097
Quote:
Originally Posted by Zryyy View Post
Danke, aber klappt immer noch nicht q-q

Kann mal einer hier helfen?
€ : neue quest :

Code:
quest ingame_tombola begin
	state start begin
		function give_item()
			-- Methode 1: MySQL
			--[[local item = mysql_query("select vnum,anz from player.tombola_items;")]]
			-- Methode 2: Array
				--[[local item = {
					{19, 1},
					{29, 1},
					{39, 1},
					{49, 1},
					{59, 1},
				}
			]]
			local anz = number(1, table.getn(item))
			pc.give_item2(item[anz][1], item[anz][2])
		end
		function get_coins()
			local c = mysql_query("select coins from account.account where id = '"..pc.get_accountid().."';")
			return c
		end
		when 20095.chat."Ingame Tombola" begin
			if pc.getqf("frei") == 1 then
				say_title(string.format("%d:", mob_name(npc.get_race())))
				say()
				say("Du kannst an der Tombola noch nicht teilnehmen.")
				wait()
				return
			end
			local current_coins = ingame_tombola.get_coins()
			local reward_coins = 500
			say_title(string.format("%d:", mob_name(npc.get_race())))
			say_reward(string.format("Aktuelle Coins: %d", current_coins))
			say_reward(string.format("Teilnahmekosten: %d Coins", reward_coins))
			say()
			if select("Teilnehmen","Abbrechen") == 2 then return end
			if current_coins < reward_coins then return chat(string.format("Dir fehlen %d Coins", (reward_coins - current_coins))) end
			ingame_tombola.give_item()
			mysql_query("update account.account set coins = coins - reward_coins where id = '"..pc.get_accountid().."';")
			pc.setqf("frei",1)
			server_timer("freimachen", 60*60*24)
		end
		when freimachen.server_timer begin
			pc.setqf("frei",0)
		end
	end
end
FUNCTION give_item()
FUNCTION get_coins()
WHEN : 11005.chat ("Ingame Tombola")
WHEN : freimachen.server_timer
Calls undeclared function! :
pc.get_accountid
Error occured on compile ingame_tombola.quest
hast nur kopiert und eingefügt? oder was passiert ingame?
zur quest 2 pc.get_accountid muss definiert werden
PHP Code:
function pc.get_accountid(c1)
    
local b5 mysql_query("SELECT account_id FROM player.player WHERE player.name='"..c1.."'")
    return 
b5[1]
end 
05/16/2013 14:40 .Leykas#8098
Quote:
Originally Posted by LeykasRecordz View Post
Code:
quest jobquest begin
	state start begin
	end
	state run begin
		when login or levelup with pc.level >= 50 and pc.level <= 250 begin
			set_state(information)
		end
	end

	state information begin
		when letter begin
			local v = find_npc_by_vnum(20355)
			if v != 0 then
				target.vid("__TARGET__", v, "Häuptling")
			end
			send_letter("Spezifische Ausbildung")
		end
		when button or info begin
			say_title("Die Spezifische Ausbildung..")
			say("Gehe zum Häuptling, er sucht dich.")
			say("Es steht eine weitere Ausbildung für dich bereit.")
			say("Er wird dich weiter ausbilden.")
			say("Du solltest nicht auf dich warten lassen..")
			say_reward("Gehe zum Häuptling deines Reiches!!")
		end
		when __TARGET__.target.click or 20355.chat."Spezifische Ausbildung" begin
			say_title("Spezifische Klassenausbildung:")
			say("")
			say(""..pc.get_name()..", sei gegrüßt!")
			say("Du kannst bei mir eine Ausbildung beginnen")
			say("je nach Wahl bekommst du andere Vorteile.")
			say("Doch eins muss ich dir sagen wähle klug, denn")
			say("es gibt anderen Spielern gegenüber")
			say("Vor - und Nachteile.")
			say("")
			say("")
			wait()
			say_black("Spezifische Klassenausbildung:")
			say("")
			say("Ich zähle dir nun auf was in Frage kommen würde")
			say("bei den Ausbildungen. Du kannst wählen")
			say("zwischen:")
			say("")
			say("Gladiator (Körper-Lehre)")
			say("Berserker (Mental-Lehre)")
			say("Assasine (Nahkampf-Lehre)")
			say("Jäger (Fernkampf-Lehre)")
			say("Alchemist (Waffen-Lehre)")
			say("Magier (Schwarze Magie-Lehre)")
			say("Heiler (Heil-Lehre)")
			say("Beschwörer (Drachenmacht-Lehre)")
			say("")
			say("")
			wait()
			say_title("Spezifische Klassenausbildung:")
			say("")
			say("Nun wähle weise und entscheide dich")
			say("welchen Weg du beschreiten möchtest.")
			say("")
			local wahl = select ("Gladiator", "Berserker", "Assasine", "Jäger", "Alchemist", "Magier", "Heiler", "Beschwörer", "Abbrechen")
			if wahl == 9 then
				return
			elseif wahl == 1 then
				say_title("Ausbildung zum Gladiator:")
				say("")
				say("Du hast dich zu einer Ausbildung zum")
				say("Gladiator entschieden "..pc.get_name()..".")
				say("Du wirst ein Kriegsherr deines Reiches!")
				say("")
				say("Du bekommst:")
				say("")
				say_reward("+5 Stärke")
				say_reward("5% Durchbruch")
				say_reward("30 Angriffswert")
				affect.add_collect(apply.ATT_GRADE_BONUS, 30, 60*60*24*365*60)
				affect.add_collect(apply.STR, 5, 60*60*24*365*60)
				affect.add_collect(apply.PENETRATE_PCT, 5, 60*60*24*365*60)
				set_state(__COMPLETE__)
			elseif wahl == 2 then
				say_title("Ausbildung zum Berserker:")
				say("")
				say("Du hast dich zu einer Ausbildung zum")
				say("Berserker entschieden "..pc.get_name()..".")
				say("Du wirst das Veiteidigungskommando deines Reiches!")
				say("")
				say("Du bekommst:")
				say("")
				say_reward("+5 Beweglichkeit")
				say_reward("+10% Zaubergeschwindigkeit")
				say_reward("+10% Angriffsgeschwindigkeit")
				affect.add_collect(apply.DEX, 5, 60*60*24*365*60)
				affect.add_collect(apply.CAST_SPEED, 10, 60*60*24*365*60)
				affect.add_collect(apply.ATT_SPEED, 10, 60*60*24*365*60)
				set_state(__COMPLETE__)
			elseif wahl == 3 then
				say_title("Ausbildung zum Assasine:")
				say("")
				say("Du hast dich zu einer Ausbildung zum")
				say("Assasine entschieden "..pc.get_name()..".")
				say("Du wirst ein unendeckter Assasine, der aus dem Hinterhalt angreift!")
				say("")
				say("Du bekommst:")
				say("")
				say_reward("+5 Beweglichkeit")
				say_reward("+5% Chance auf Vergiften")
				say_reward("+5% reflektieren")
				affect.add_collect(apply.DEX, 5, 60*60*24*365*60)
				affect.add_collect(apply.POISON_PCT, 5, 60*60*24*365*60)
				affect.add_collect(apply.REFLECT_MELEE, 5, 60*60*24*365*60)
				set_state(__COMPLETE__)
			elseif wahl == 4 then
				say_title("Ausbildung zum Jäger:")
				say("")
				say("Du hast dich zu einer Ausbildung zum")
				say("Jäger entschieden "..pc.get_name()..".")
				say("Du wirst ein präziser Fernkämpfer und kannst deinen Reich Rückendeckung geben!")
				say("")
				say("Du bekommst:")
				say("")
				say_reward("+5 Stärke")
				say_reward("+3% Ohnmachtchance")
				say_reward("+5% abblocken")
				affect.add_collect(apply.STR, 5, 60*60*24*365*60)
				affect.add_collect(apply.STUN_PCT, 3, 60*60*24*365*60)
				affect.add_collect(apply.BLOCK, 5, 60*60*24*365*60)
				set_state(__COMPLETE__)
			elseif wahl == 5 then
				say_title("Ausbildung zum Alchemist:")
				say("")
				say("Du hast dich zu einer Ausbildung zum")
				say("Alchemist entschieden "..pc.get_name()..".")
				say("Du wirst ein mysteriöser Alchemist und kämpst mit verzauberten Waffen für dein Reich!")
				say("")
				say("Du bekommst:")
				say("")
				say_reward("+5 Intelligenz")
				say_reward("+5% Giftwiderstand")
				say_reward("+5% Verlangsamen")
				affect.add_collect(apply.INT, 5, 60*60*24*365*60)
				affect.add_collect(apply.POISON_REDUCE, 5, 60*60*24*365*60)
				affect.add_collect(apply.SLOW_PCT, 5, 60*60*24*365*60)
				set_state(__COMPLETE__)
			elseif wahl == 6 then
				say_title("Ausbildung zum Magier:")
				say("")
				say("Du hast dich zu einer Ausbildung zum")
				say("Magier entschieden "..pc.get_name()..".")
				say("Du wirst ein mächtiger dunkler Magier, der für sein Reich zaubert!")
				say("")
				say("Du bekommst:")
				say("")
				say_reward("+5 Intelligenz")
				say_reward("+20% Tp-Regeneration")
				say_reward("+10% Tp-Absorbtion")
				affect.add_collect(apply.INT, 5, 60*60*24*365*60)
				affect.add_collect(apply.HP_REGEN, 20, 60*60*24*365*60)
				affect.add_collect(apply.STEAL_HP, 10, 60*60*24*365*60)
				set_state(__COMPLETE__)
			elseif wahl == 7 then
				say_title("Ausbildung zum Heiler:")
				say("")
				say("Du hast dich zu einer Ausbildung zum")
				say("Heiler entschieden "..pc.get_name()..".")
				say("Du wirst Heiler deines Reiches. Du wirst den mächtigen Krieger im Kampf zur Seite stehen!")
				say("")
				say("Du bekommst:")
				say("")
				say_reward("+5 Intelligenz")
				say_reward("+20% Tp-Regeneration")
				say_reward("+5% Krit")
				affect.add_collect(apply.INT, 5, 60*60*24*365*60)
				affect.add_collect(apply.HP_REGEN, 20, 60*60*24*365*60)
				affect.add_collect(apply.CRITICAL_PCT, 5, 60*60*24*365*60)
				set_state(__COMPLETE__)
			elseif wahl == 8 then
				say_title("Ausbildung zum Beschwörer:")
				say("")
				say("Du hast dich zu einer Ausbildung zum")
				say("Beschwörer entschieden "..pc.get_name()..".")
				say("Du wirst ein mächtiger Beschwörer. Du kannst mächtige Wesen herbeirufen!")
				say("")
				say("Du bekommst:")
				say("")
				say_reward("+5 Intelligenz")
				say_reward("+10% Zaubergeschwindigkeit")
				say_reward("+20 Magischer angriffswert")
				affect.add_collect(apply.INT, 5, 60*60*24*365*60)
				affect.add_collect(apply.CAST_SPEED, 3, 60*60*24*365*60)
				affect.add_collect(apply.ATT_GRADE_BONUS, 20, 60*60*24*365*60)
				set_state(__COMPLETE__)
			end
		end
	end
	state __COMPLETE__ begin
	end
end
Wo ist bitte hier der Fehler?!
?
05/16/2013 16:51 Yiv#8099
Quote:
Originally Posted by costanco View Post
Code:
quest pvp_exp begin
	state start begin
		when kill with npc.is_pc()  begin
			pc.give_exp2(50000) 
		end
	end
end
Schreib mal den Fehler von VirtualBox/Putty hin...

MfG
05/16/2013 16:53 costanco#8100
Quote:
Originally Posted by Perση View Post
Schreib mal den Fehler von VirtualBox/Putty hin...

MfG
Da steht nur: Error occured on compile!...

Kann mir keiner helfen?