[SERVICE] Die Questkontrolle

02/19/2015 21:32 WyppyOne#11101
Quote:
Originally Posted by [Sensenmann] View Post
PHP Code:
quest bind begin
    state start begin
        when 40003.
use with game.get_event_flag(nume) == 0 begin
            say_title
("Bind System:")
            
say("Do you want to have a friend ?")
            
local a select("Yes","No!")
                if 
== 1 then
                    say_title
("Bind System:")
                    
say_reward("Tell me your friend's name")
                    
local nume pc.get_name()
                    
local name input()
                        if 
pc.get_level() < 35 then
                            say_title
("Bind system:")
                            
say("You can't use this item")
                        else
                            
game.set_event_flag(nume1)
                            
game.set_event_flag(name1)
                            
pc.remove_item(400031)
                        
end
                end
        end
        when 40003.
use with game.get_event_flag(nume) == 1 begin
            say_title
("Bind System")
            
say("Do you want to teleport at your friend ?")
            
local b select("Yes","No!")
                if 
== 1 then
                    pc
.teleport(name)
                
end
        end
    end
end 
Ty but the quest doesn't work,it never goes out of first when,when i click it always ask me if i want a friend xD And you can edit it that you can add your friend and teleport at him if he is online ?
------
Asks that if you want to make them it would be great :) :
--If you and your friend are in same map ( get index map ) receive a bonus
--When your friend or you log out the bonus dissapear
02/21/2015 14:26 Bullrihgter#11102
Die Quest funktzuniert nicht aus welchen grund auch es soll ein auftrag geben 2 metin steine zu killen also ab level 5 metin der gier 10 x und metin der schlacht 10x als belohnung soll man 1x militär pferdebuch bekommen pferd level 30 und 2kk yang Irgendwie klappt die Quest nicht :(


PHP Code:
quest Metin_steine_kill_quest begin  
    state start begin  
        when login 
or levelup with pc.get_level() == 5 begin  
            set_state
(metin_quest)  
        
end  
    end  
      
    state metin_quest begin  
        when letter begin  
            send_letter
("MetinAuftrag")  
        
end  
state metinkill begin  
        when letter begin  
            send_letter
("Zerstoere die Metinsteine")  
        
when info or button begin  
        say_title
("Metinauftrag")  
        
say("Sei gegrüßt Fremder!")  
        
say("Ich bräuchte dringend deine Hilfe.")  
        
say("Kannst du für mich die Metin Steine zerstören?.")  
        
say("Eure Aufgabe:")  
        
say("")  
        
say("Töte einen Metin der Schlacht, Metin der Gier")  
        
say("Die Metine findest du auf der Map1")  
        
pc.setqf(state1)  
         
q.set_counter("Metin der Schlacht"10
        
pc.setqf(state2
         
q.set_counter("Metin der Gier"10)          
    
end  
state state1 begin  
        when letter begin  
            send_letter
("Zerstoere die Metinsteine")  
        
end  
        when button 
or info begin  
            say_title
("Auftrag: Metin der Gier")  
            
say("Anzahl der Zerstoerten Metins")  
            
say_reward("Metinsteine: "..pc.qetgf(state1).."")  
        
end 
state state2 begin 
        when button 
or info begin  
            say_title
("Auftrag:Metin der Schlacht")  
            
say("Anzahl der Zerstoerten Metins")  
            
say_reward("Metinsteine: "..pc.qetgf(state2).."")  
        
end 
    when 8003.kill begin  
local count 
pc.getqf(state1
if 
count <= 10 then  
pc
.setqf(state1)  
q.set_counter("Metin der Schlacht"count
if 
count == 0 then  
end  
when 8004.kill begin  
local count 
pc.getqf(state2
if 
count <= 10 then  
pc
.setqf(state2)  
q.set_counter("Metin der Gier"count1)  
end  
if count == 0 then 
say_title
("Metinauftrag Abgeschlossen!")  
say("")  
say("")  
say("Gut du hast es geschafft.")  
say("Hier deine Belohnung")  
say_reward("[1] [Millitär Pferdebuch, Pferdelevel 30] [1kk yang]")  
pc.give_item2([50053], [1])  
horse.get_level()>=30 
pc
.give_exp2([0])  
pc.get_money([100000000]) 
clear_letter()  
set_state(__COMPLETE__)  

end  
end  
end 
02/21/2015 14:37 rollback#11103
Quote:
Originally Posted by Bullrihgter View Post
Die Quest funktzuniert nicht aus welchen grund auch es soll ein auftrag geben 2 metin steine zu killen also ab level 5 metin der gier 10 x und metin der schlacht 10x als belohnung soll man 1x militär pferdebuch bekommen pferd level 30 und 2kk yang Irgendwie klappt die Quest nicht :(


PHP Code:
quest Metin_steine_kill_quest begin  
    state start begin  
        when login 
or levelup with pc.get_level() == 5 begin  
            set_state
(metin_quest)  
        
end  
    end  
      
    state metin_quest begin  
        when letter begin  
            send_letter
("MetinAuftrag")  
        
end  
state metinkill begin  
        when letter begin  
            send_letter
("Zerstoere die Metinsteine")  
        
when info or button begin  
        say_title
("Metinauftrag")  
        
say("Sei gegrüßt Fremder!")  
        
say("Ich bräuchte dringend deine Hilfe.")  
        
say("Kannst du für mich die Metin Steine zerstören?.")  
        
say("Eure Aufgabe:")  
        
say("")  
        
say("Töte einen Metin der Schlacht, Metin der Gier")  
        
say("Die Metine findest du auf der Map1")  
        
pc.setqf(state1)  
         
q.set_counter("Metin der Schlacht"10
        
pc.setqf(state2
         
q.set_counter("Metin der Gier"10)          
    
end  
state state1 begin  
        when letter begin  
            send_letter
("Zerstoere die Metinsteine")  
        
end  
        when button 
or info begin  
            say_title
("Auftrag: Metin der Gier")  
            
say("Anzahl der Zerstoerten Metins")  
            
say_reward("Metinsteine: "..pc.qetgf(state1).."")  
        
end 
state state2 begin 
        when button 
or info begin  
            say_title
("Auftrag:Metin der Schlacht")  
            
say("Anzahl der Zerstoerten Metins")  
            
say_reward("Metinsteine: "..pc.qetgf(state2).."")  
        
end 
    when 8003.kill begin  
local count 
pc.getqf(state1
if 
count <= 10 then  
pc
.setqf(state1)  
q.set_counter("Metin der Schlacht"count
if 
count == 0 then  
end  
when 8004.kill begin  
local count 
pc.getqf(state2
if 
count <= 10 then  
pc
.setqf(state2)  
q.set_counter("Metin der Gier"count1)  
end  
if count == 0 then 
say_title
("Metinauftrag Abgeschlossen!")  
say("")  
say("")  
say("Gut du hast es geschafft.")  
say("Hier deine Belohnung")  
say_reward("[1] [Millitär Pferdebuch, Pferdelevel 30] [1kk yang]")  
pc.give_item2([50053], [1])  
horse.get_level()>=30 
pc
.give_exp2([0])  
pc.get_money([100000000]) 
clear_letter()  
set_state(__COMPLETE__)  

end  
end  
end 
PHP Code:
when login or levelup with pc.get_level() == 5 begin   
            set_state
(metin_quest)   
        
end   
    end   
       
    state metin_quest begin   
        when letter begin   
            send_letter
("MetinAuftrag")   
        
end 
Du setzt den Spieler in die state 'metin_quest', sendest in der state ein letter aber machst mit dem letter überhaupt nichts. Kein wunder, dass da nichts passiert :)
02/21/2015 16:50 .Various#11104
Hier eine Funktion die einfach nur einen bg setzen soll.
Code:
function set_background(name)
	say_size(256, 323)
	setbgimage('roll.tga')
	addimage(20,12,name..'.tga')
end
Jedoch funktioniert sie nicht. Liegt wahrscheinlich daran das name ein string ist aber wie schreibe ich das dann?
02/21/2015 17:00 Dyshaxo#11105
#Edt: nvm, gefunden :D
02/22/2015 00:19 WyppyOne#11106
I dont understant why this quest doesn't work ... i know,is a bullshit but ...

PHP Code:
quest daily begin
    state start begin
        when login with get_global_time
() – pc.getqf("last_mission") >= 24*60*60 begin
            send_letter
("Misiunea Zilnica")
            
say_title("Misiune zilnica")
            
say("Esti insarcinat sa omori 10 ursi. ")
            
say("Vei primi o rasplata aleatorie.")
            
say_important("Itemul special din saptamana asta este : ")
            
pc.setqf("state"10)
            
q.set_counter("Ursi ramasi: "10)
        
end
        when button 
or info begin
            say
("¿Crezi ca esti cel mai bun din regat ?")
            
say("¡Demonstreaza!")
            
say("Respecta regulile si fi corect")
            
say_reward("Monstrii ramasi: "..pc.getqf("state").." ")
        
end
                    
        when 110.kill begin
            local count 
pc.getqf("state"– 1
            
if count <= 10 then
                pc
.setqf("state"count)
                
q.set_counter("Monstrii ramasi:"count)
            
end
            
if count == 0 then
                say_title
("BRAVO ai reusit!")
                
say("Ai omorat 10 ursi!")
                
say("Recompesa:")
                
say_reward("500.000.000 Yang")
                
pc.change_money(500000000)
                
pc.setqf("last_mission"get_global_time())
                 
clear_letter()
            
end
        end
    end
end 
02/24/2015 18:05 CFROSFIRE#11107
kann ingame niemanden bannen was ist hier falsch
Code:
quest spielerstatus begin 
    state start begin 
        when letter begin 
            if pc.is_gm() then 
                send_letter("Entbannen/Bannen") 
            end 
        end 
        when button or info begin 
            say_title"Was möchtest du machen?" 
            say"" 
            local s = select("Spieler Bannen","Spieler Entbannen","Abbrechen") 
            if s>2 then return end 
            say_title"gib den namen des Spielers ein" 
            say("der "..({"Entbannt","Gebannt"})[s].." werden soll") 
            say"" 
            local name = input() 
            say_title"Status: " 
            say"" 
            if tonumber(mysql_query("select account_id from player.player where name='"..name.."' ")[1][1])==0 then 
                say(string.format("Kein eintrag in der Datenbank mit dem namen:  %s",name)) 
            else 
                say(string.format("Spieler:  %s",name)) 
                say("Wurde "..({"Entbannt","Gebannt"})[s]) 
                mysql_query("update account.account join player.player set account.status = '"..({"OK","BLOCK"})[s].."' where player.account_id = account.id and player.name='"..name.."'") 
            end 
            send_letter("Entbannen/Bannen") 
        end 
    end 
end
02/24/2015 20:23 [Kaito]#11108
Quote:
Originally Posted by CFROSFIRE View Post
kann ingame niemanden bannen was ist hier falsch
Code:
quest spielerstatus begin 
    state start begin 
        when letter begin 
            if pc.is_gm() then 
                send_letter("Entbannen/Bannen") 
            end 
        end 
        when button or info begin 
            say_title"Was möchtest du machen?" 
            say"" 
            local s = select("Spieler Bannen","Spieler Entbannen","Abbrechen") 
            if s>2 then return end 
            say_title"gib den namen des Spielers ein" 
            say("der "..({"Entbannt","Gebannt"})[s].." werden soll") 
            say"" 
            local name = input() 
            say_title"Status: " 
            say"" 
            if tonumber(mysql_query("select account_id from player.player where name='"..name.."' ")[1][1])==0 then 
                say(string.format("Kein eintrag in der Datenbank mit dem namen:  %s",name)) 
            else 
                say(string.format("Spieler:  %s",name)) 
                say("Wurde "..({"Entbannt","Gebannt"})[s]) 
                mysql_query("update account.account join player.player set account.status = '"..({"OK","BLOCK"})[s].."' where player.account_id = account.id and player.name='"..name.."'") 
            end 
            send_letter("Entbannen/Bannen") 
        end 
    end 
end
guck dir mal die says an. überall fehlen klammern.
02/24/2015 20:48 Dyshaxo#11109
Code:
quest spielerstatus begin 
    state start begin 

        when letter with pc.is_gm() begin 
			send_letter("Entbannen/Bannen") 
        end 

        when button or info begin
			local list_word = {"Bann", "Entbann"}
			local option = {"BLOCK", "OK"}
            say_title("Was möchtest du machen?")
            say() 
            local s = select("Spieler Bannen","Spieler Entbannen","Abbrechen") 
            if s == 3 then return end
            say_title(list_word[s] .." - Gib den Namen des Spielers ein:")
            say()
            local name = input() 
            say_title("Status:")
            say()
            if tostring(mysql_query("SELECT name FROM player.player WHERE name = '"..name.."';")[1][1]) == 0 then 
                say("Kein Datenbankeintrag für Spieler mit Namen: ".. name) 
            else
				local account = tonumber(mysql_query("SELECT account_id FROM player.player WHERE name = '".. name .."';")[1][1])
				mysql_query("UPDATE account.account SET status = '".. option[s] .."' WHERE id = '".. account .."';")
                say("Spieler: ".. name .." - ".. list_word[s] .." erfolgreich.") 
            end 
        end 
    end 
end
verstehe zwar immernoch nicht, warum man das nicht einfach von Hand macht, aber hier =)
02/25/2015 02:23 Vordeaux#11110
Quote:
Originally Posted by [Kaito] View Post
guck dir mal die says an. überall fehlen klammern.
an den klammern liegt es nicht, man kann auch einfache print Funktionen ohne klammern benutzen.
Quote:
Originally Posted by Dyshaxo View Post
Code:
quest spielerstatus begin 
    state start begin 

        when letter with pc.is_gm() begin 
			send_letter("Entbannen/Bannen") 
        end 

        when button or info begin
			local list_word = {"Bann", "Entbann"}
			local option = {"BLOCK", "OK"}
            say_title("Was möchtest du machen?")
            say() 
            local s = select("Spieler Bannen","Spieler Entbannen","Abbrechen") 
            if s == 3 then return end
            say_title(list_word[s] .." - Gib den Namen des Spielers ein:")
            say()
            local name = input() 
            say_title("Status:")
            say()
            if tostring(mysql_query("SELECT name FROM player.player WHERE name = '"..name.."';")[1][1]) == 0 then 
                say("Kein Datenbankeintrag für Spieler mit Namen: ".. name) 
            else
				local account = tonumber(mysql_query("SELECT account_id FROM player.player WHERE name = '".. name .."';")[1][1])
				mysql_query("UPDATE account.account SET status = '".. option[s] .."' WHERE id = '".. account .."';")
                say("Spieler: ".. name .." - ".. list_word[s] .." erfolgreich.") 
            end 
        end 
    end 
end
verstehe zwar immernoch nicht, warum man das nicht einfach von Hand macht, aber hier =)
Du hast es nur anders geschrieben aber funktioniert gleich wie davor.

PS: Ich würde evtl. noch
PHP Code:
         when button or info ith pc.is_gm() begin 
einfügen, da man die questrolle dann ganz einfach via Clientmodding aufrufen kann
02/25/2015 16:13 RealRiooX#11111
Hallo ich habe ein problem mit dieser alternativ quest:
PHP Code:
quest altd begin
    state start begin
        when kill with not npc
.is_pc() begin  
        local tb 
={
      --|
ID| %|
        {
50011,1} -- Mondi 1


}
-- 
Ab hier nichts ändern
        table
.foreach(tb,
            function(
ip)
                
zf number(1100)
                    if 
zf <= p[2then
                        game
.drop_item_with_ownership(p[1], 1)
                    
end
                end
            
)
        
end
    end
end 
mit level 99 droppt man bei wildhunden noch mondis... kann man das ändern?
UNd wenn ich schon direkt dabei bin kann ich die Dropprate auch irgendwie auf 0.5%stellen? Wenn ich dort 0,5 eingebe droppt nix mehr
02/25/2015 16:44 rollback#11112
Quote:
Originally Posted by RealRiooX View Post
Hallo ich habe ein problem mit dieser alternativ quest:
PHP Code:
quest altd begin
    state start begin
        when kill with not npc
.is_pc() begin  
        local tb 
={
      --|
ID| %|
        {
50011,1} -- Mondi 1


}
-- 
Ab hier nichts ändern
        table
.foreach(tb,
            function(
ip)
                
zf number(1100)
                    if 
zf <= p[2then
                        game
.drop_item_with_ownership(p[1], 1)
                    
end
                end
            
)
        
end
    end
end 
mit level 99 droppt man bei wildhunden noch mondis... kann man das ändern?
UNd wenn ich schon direkt dabei bin kann ich die Dropprate auch irgendwie auf 0.5%stellen? Wenn ich dort 0,5 eingebe droppt nix mehr
0,5 = 0.5
02/25/2015 18:02 synthou1234#11113
#schon gelöst
02/25/2015 23:15 Vordeaux#11114
Quote:
Originally Posted by [Sensenmann] View Post
0,5 = 0.5
Das Problem hierbei ist nur das die Funktion "number" nur natürliche zahlen verwendet, daher sind reele zahlen bei der Funktion auszuschließen.


Hier eine kleine Lösung die ich fix geschrieben habe

PHP Code:
randomize = (function(...)return tonumber(tostring(math.random()+math.random(unpack(arg))):sub(0,5))end)
print(
randomize(0,100)) 
>> 56.38

hierbei ist nur zu beachten das der zufallswert bis 0.01 reicht, dh. in deinem fall kannst du einen prozentwert bis zu 0.01% eintragen
02/28/2015 13:24 BlackWood2#11115
Quest:

Putty: