Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server
You last visited: Today at 21:30

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[SERVICE] Die Questkontrolle

Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.

Reply
 
Old 11/17/2016, 03:15   #12436
 
elite*gold: 0
Join Date: Dec 2014
Posts: 14
Received Thanks: 5
Ich hab noch eine Frage

Wen ich mein Userpanel öffne und wieder schließe bleibt die schrift stehen woran kann
das liegen ?

Danke nochmal Sponge für die Quest
InsaneFace is offline  
Old 11/17/2016, 09:46   #12437
 
elite*gold: 0
Join Date: Oct 2013
Posts: 151
Received Thanks: 7
Hey Com,

Ich will gerne dass das VIP-System nach 30 Tagen abläuft, aber kenne mich nicht mit lua aus.
Ich hoffe ihr helft mir

PHP Code:
--------------------------------------------
-- 
written by Kilroy.  
-- 
Benötigt Questlib ErweitMijago
--------------------------------------------
quest vip_by_kilroy begin
    state start begin
        when 20011.take with item
.get_vnum()== 35004 and string.find(pc.get_name(), "VIP]") != nil begin
            say
("Sehr Gut, du konntest dich mit deinem")
            
say("VIP-Ticket ausweisen, ich gewähre")
            
say("dir somit Einblick in den VIP-Shop")
            
wait()
            
setskin(NOWINDOW)
            
npc.open_shop(9003) -- natürlich Anpassen.
            
syschat("VIP-Shop wurde geöffnet.")
        
end
        when 20009.take with item
.get_vnum()== 35004 and string.find(pc.get_name(), "VIP]") != nil begin
            say
("Sehr Gut, du konntest dich mit deinem")
            
say("VIP-Ticket ausweisen.")
            
say("")
            
say("Soll ich dich also zur VIP-Map bringen?")
            if 
select("Ja""Nein")==2 then return end
            pc
.warp402100673900) -- natürlich Anpassen.
        
end
        when login with not npc
.is_pc() and pc.getqf("first_vip")==0 begin
            
if string.find(pc.get_name(), "VIP]") != nil then
                timer
("login_vip"2)
            
end
        end
        when login_vip
.timer begin 
            say_title
("VIP-Status")
            
say("")
            
say("Da diese Meldung erschienen ist, wurde der")
            
say("VIP-Vorgang erfolgreich abgeschlossen.")
            
say("")
            
say("Dir stehen nun einige Features zu, die andere")
            
say("Spieler nicht haben.")
            
wait()
            
say_title("VIP-Status")
            
say("")
            
say("Nun erhälst du erstmal dein VIP-Kit")
            
say("und weitere Informationen.")
            
say("")
            
say("Wie du bestimmt bemerkt hast, schwebt")
            
say("über dir ein VIP-Symbol, dieses kannst du")
            
say("durch die Chateingabe von (vip) rufen.")
            
say("")
            
say("Du erhälst jetzt ein VIP-Ticket mit dem du")
            
say_reward("- die VIP-Map betreten kannst.")
            
say_reward("- den VIP-Shop einsehen kannst.")
            
say("")
            
say("Ziehe dafür das VIP-Ticket auf den jeweiligen")
            
say("NPC. Das war erstmal, Viel Spaß noch!")
            
pc.give_item2(350041)
            
pc.setqf("first_vip",1)
        
end
        when 35002.
use begin
            
if string.find(pc.get_name(), "VIP]") == nil then
                say_title
("Hallo "..pc.get_name().."!")
                
say("Mit diesem Item kannst du den VIP Status aktivieren.")
                
say("")
                
say_title("Infos:")
                
say("Nach erfolgreicher Nutzung wirst du gekickt!")
                
say("Du hast dann einen 20 Minuten Bann, nach der ")
                
say("den 20 Minuten ist der Vorgang abgeschlossen ")
                
say("und dein Account ist wieder frei!")
                
say("")
                
say("")
                
say("Möchtest du?")
                
say(pc.get_name().." --------> (VIP)"..pc.get_name())
                if 
select("Ja""Nein")==2 then return end
                vip_by_kilroy
.check_premise(35002)
                if 
string.len(pc.get_name())<= and not vip_by_kilroy.player_exists("[VIP]"..pc.get_name()) then
                    say_title
("Erfolgreich!")
                    
say("")
                    
say_reward("Bereite dich auf einen Kick vor.")
                    
say_reward("")
                    
say_reward("Klicke auf 'Weiter' um fortzufahren.")
                    
wait()
                    
notice_all(pc.get_name().." ist nun ein VIP-Mitglied auf ....")
                    
mysql_query("UPDATE player.player SET name='[VIP]"..pc.get_name().."' WHERE name='"..pc.get_name().."'")
                    
mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='[VIP]"..pc.get_name().."');")
                    
pc.remove_item(350021)
                    
cmdchat("exit")
                else
                    
say_title(pc.get_name().."!")
                    
say("")
                    
say("Die Vorraussetzungen zwingen dich einen")
                    
say("neuen Namen zuwählen. Mögliche Gründe")
                    
say("sind ein zu langer Name oder dein")
                    
say("Name existiert mit VIP bereits.")
                    
say("")
                    
say_reward("Möchtest du ihn ändern um VIP zuwerden?")
                    if 
select("Ja""Nein")==2 then return end
                    say_title
("Name wechseln")
                    
say("Gib bitte deinen Wunschnamen ein:")
                    
say_reward("Beachte!")
                    
say_reward("Nicht mehr als 7 oder weniger als 2 Buchstaben.")
                    
say_reward("Sonderzeichen sind nicht erlaubt.")
                    
local inp input()
                    if 
vip_by_kilroy.vip_premise(inp721then
                        say_title
("Name wechseln")
                        
say("")
                        
say("Dein neuer Name besitzt entweder mehr als 7,")
                        
say("weniger als 2 Buchstaben oder enthält ein")
                        
say("unzulässiges Zeichen.")
                        return
                    elseif 
vip_by_kilroy.player_exists("[VIP]"..inpthen
                        say_title
("Name wechseln")
                        
say("")
                        
say("Dieser Name existiert bereits,")
                        
say("versuch es mit einem neuen erneut!")
                        return 
                    
end
                    say_title
("Super!")
                    
say("Dein Name erfüllt alle Voraussetzungen.")
                    
say("")
                    
say_title("Letzter Check")
                    
say("Möchtest du wirklich mit dem Namen")
                    
say("(VIP)"..inp.." dein Vip-Status aktivieren?")
                    if 
select("Ja""Nein")==2 then return end
                    vip_by_kilroy
.check_premise(35002)
                    
say_title("Erfolgreich!")
                    
say("")
                    
say_reward("Bereite dich auf einen Kick vor.")
                    
say_reward("")
                    
say_reward("Klicke auf 'Weiter' um fortzufahren.")
                    
wait()
                    
notice_all(pc.get_name(), " heißt jetzt "..inp.." und ist nun ein VIP-Mitglied auf ....")
                    
mysql_query("UPDATE player.player SET name='[VIP]"..inp.."' WHERE name='"..pc.get_name().."'")
                    
mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='[VIP]"..inp.."');")
                    
pc.remove_item(350021)
                    
cmdchat("exit")
                
end
            
else
                
say_title("Hallo "..pc.get_name().."!")
                
say("")
                
say("Du hast dein VIP-Status schon aktiviert,")
                
say("sollte dies nicht der Fall sein, kontaktiere")
                
say("bitte einen Teamler.")
                
say("")
                
say("Viel Spaß weiterhin!")
            
end
        end
        when 35003.
use begin
            
if string.find(pc.get_name(), "VIP]") != nil then
                say_title
("Hallo "..pc.get_name().."!")
                
say("Mit diesem Item kannst du den VIP Status")
                
say("zurücksetzen..")
                
say("")
                
say_title("Infos:")
                
say("Nach erfolgreicher Nutzung wirst du gekickt!")
                
say("Du hast dann einen 20 Minuten Bann, nach der ")
                
say("den 20 Minuten ist der Vorgang abgeschlossen ")
                
say("und dein Account ist wieder frei!")
                
say("")
                
say("")
                
say("VIP Status zurücksetzen?")
                
say("(VIP)"..pc.get_name().."---->"..pc.get_name())
                if 
select("Ja""Nein")==2 then return end
                vip_by_kilroy
.check_premise(35003)
                
spl split(pc.get_name(), "VIP]") -- Split Name bei VIP]
                if 
not vip_by_kilroy.player_exists(spl[2]) then
                    say_title
("Erfolgreich!")
                    
say("")
                    
say_reward("Bereite dich auf einen Kick vor.")
                    
say_reward("")
                    
say_reward("Klicke auf 'Weiter' um fortzufahren.")
                    
wait()
                    
mysql_query("UPDATE player.player SET name='"..spl[2].."' WHERE name='"..pc.get_name().."'")
                    
mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='"..spl[2].."');")
                    
item.remove()
                    
cmdchat("exit")
                else
                    
say_title("Dein Name!")
                    
say("Es scheint so als würde dein Name.")
                    
say("ohne das (VIP) bereits existieren,")
                    
say("das ist aber nicht schlimm, denn du kannst")
                    
say("ihn hier und jetzt ändern.")
                    
say("")
                    
say_reward("Möchtest du ihn ändern um VIP loszuwerden?")
                    if 
select("Ja""Nein")==2 then return end
                    say_title
("Name wechseln")
                    
say("Gib bitte deinen Wunschnamen ein:")
                    
say_reward("Beachte!")
                    
say_reward("Nicht mehr als 7 oder weniger als 2 Buchstaben.")
                    
say_reward("Sonderzeichen sind nicht erlaubt.")
                    
local inp input()
                    if 
vip_by_kilroy.vip_premise(inp721then
                        say_title
("Name wechseln")
                        
say("")
                        
say("Dein neuer Name besitzt entweder mehr als 7,")
                        
say("weniger als 2 Buchstaben oder enthält ein")
                        
say("unzulässiges Zeichen.")
                        return
                    elseif 
not vip_by_kilroy.player_exists(inpthen
                        say_title
("Name wechseln")
                        
say("")
                        
say("Ich habe festgestellt das dein neuer Name bereits")
                        
say("existiert, versuch es mit einem neuen erneut!")
                        return 
                    
end
                    say_title
("Super!")
                    
say("Dein Name erfüllt alle Voraussetzungen.")
                    
say("")
                    
say_title("Letzter Check")
                    
say("Möchtest du wirklich mit dem Namen")
                    
say(inp.." dein Vip-Status zurücksetzen?")
                    if 
select("Ja""Nein")==2 then return end
                    vip_by_kilroy
.check_premise(35003)
                    
say_title("Erfolgreich!")
                    
say("")
                    
say_reward("Bereite dich auf einen Kick vor.")
                    
say_reward("")
                    
say_reward("Klicke auf 'Weiter' um fortzufahren.")
                    
wait()
                    
spl split(pc.get_name(), "VIP]")
                    
mysql_query("UPDATE player.player SET name='"..inp.."' WHERE name='"..pc.get_name().."'")
                    
mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='"..inp.."');")
                    
item.remove()
                    
cmdchat("exit")
                
end
            
else
                
say_title("Hallo "..pc.get_name().."!")
                
say("Du hast deinen VIP-Status")
                
say("noch garnicht aktiviert.")
            
end
        end
        
function player_exists(name)
            if 
tonumber(mysql_query("select count(*) from player.player where name = '"..name.."';")[1][1]) >= 1 then
                
return true
            end
        end
        
function vip_premise(namemaximinisonder)
            if 
sonder != 0 then
                
if string.len(name) > maxi or name == "" or string.len(name) < mini then
                    
return true
                end
            
else
                if 
string.len(name) > maxi or name == "" or string.len(name) < mini or string.find(name"(%W)") ~= nil then
                    
return true
                end
            end
        end
        
function check_premise(item)
            if 
pc.is_married() then
                say
("Während du verheiratet bist kannst du")
                
say("kein VIP werden.")
                return
            elseif 
pc.is_polymorphed() then
                say
("Während du verwandelt bist kannst du")
                
say("kein VIP werden.")
                return
            elseif 
not pc.can_warp() then
                say
("Du hast vorkurzem gehandelt, so kannst du")
                
say("kein VIP werden.")    
                return
            elseif 
pc.has_guild() then
                say
("Während du in einer Gilde bist kannst du")
                
say("kein VIP werden.")
                return
            elseif 
party.is_party() then
                say
("Während du in einer Gruppe bist kannst du")
                
say("kein VIP werden.")
                return                        
            elseif 
pc.count_item(item) < 1 then
                say
("Bugusern wird kein VIP entzogen!")
                return
            
end
        end
    end
end
-----------------------------------------
-- 
written by Kilroy.
-- 
Benötigt Questlib ErweitMijago
------------------------------------------ 
.DarkDreams is offline  
Old 11/18/2016, 02:22   #12438
 
Lauling's Avatar
 
elite*gold: 315
Join Date: Jun 2012
Posts: 5,158
Received Thanks: 4,814
Quote:
Originally Posted by Rofelmau View Post
deine ends passten garnicht, kp ob sie so richtig sind, sollte aber compilen
danke fürs durchchecken, geht jedoch immer noch nicht.
PHP Code:
WHEN  20352.chat ("W▒stenschlacht")
Event/desert_battle.quest:54:expecting 'state'
Error occured on compile Event/desert_battle.quest 
Lauling is offline  
Old 11/18/2016, 20:33   #12439
 
Rofelmau's Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 294
Received Thanks: 157
Quote:
Originally Posted by Lauling View Post
danke fürs durchchecken, geht jedoch immer noch nicht.
PHP Code:
WHEN  20352.chat ("W▒stenschlacht")
Event/desert_battle.quest:54:expecting 'state'
Error occured on compile Event/desert_battle.quest 
Rofelmau is offline  
Old 11/18/2016, 23:52   #12440
 
Lauling's Avatar
 
elite*gold: 315
Join Date: Jun 2012
Posts: 5,158
Received Thanks: 4,814
Quote:
Originally Posted by Rofelmau View Post
und jetzt kommt:
PHP Code:
Event/desert_battle.quest:71:when doesn't have begin-end clause. (()
Error occured on compile Event/desert_battle.quest 
Lauling is offline  
Old 11/19/2016, 01:44   #12441
 
.Delta's Avatar
 
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
Quote:
Originally Posted by Lauling View Post
und jetzt kommt:
PHP Code:
Event/desert_battle.quest:71:when doesn't have begin-end clause. (()
Error occured on compile Event/desert_battle.quest 

z. 71:
PHP Code:
when game.get_event_flag("deserton") == 2 begin 
Ist kein gültiges Event
brauchst einen Auslöser wie login, kill, chat, click etc...

Aber um ehrlich zu sein: mach den code direkt in den when block davor.



Am Rande:

In Z. 98 solltest du hinter pc.get_level noch () machen.
Z 47: Das else bezieht sich meiner meinung nach auf das falsche if statement.

Mein Vorschlag:

.Delta is offline  
Thanks
1 User
Old 11/19/2016, 02:21   #12442
 
elite*gold: 0
Join Date: Feb 2010
Posts: 124
Received Thanks: 40
Peace,
ich sitze seit ca. 4h an meiner ersten eigenen Quest.
Habe diese jetzt auch soweit fertig, jedoch habe ich beim compilieren nun folgenden Fehler relativ am Anfang :



Hier die Codestelle, wo der Fehler angeblich auftritt :



Habe schon sehr viel rumprobiert, aber bekomme immer den selben Fehler.
Würde mich sehr freuen, wenn mir jemand sagen könnte, woran es liegt.

LG
marcomatic0 is offline  
Old 11/19/2016, 02:41   #12443
 
.Delta's Avatar
 
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
Quote:
Originally Posted by marcomatic0 View Post
Peace,
ich sitze seit ca. 4h an meiner ersten eigenen Quest.
Habe diese jetzt auch soweit fertig, jedoch habe ich beim compilieren nun folgenden Fehler relativ am Anfang :



Hier die Codestelle, wo der Fehler angeblich auftritt :



Habe schon sehr viel rumprobiert, aber bekomme immer den selben Fehler.
Würde mich sehr freuen, wenn mir jemand sagen könnte, woran es liegt.

LG
dürfte eher der nächste when block sein, der Probleme macht.
Desweiteren ist es einfacher dir zu helfen, wenn du den code hier in den Thread postest und nicht einfach nur screenshots machst
.Delta is offline  
Thanks
1 User
Old 11/19/2016, 17:04   #12444
 
elite*gold: 0
Join Date: Jan 2014
Posts: 31
Received Thanks: 4
delete#
Dharokko18 is offline  
Old 11/20/2016, 12:49   #12445
 
elite*gold: 0
Join Date: Aug 2007
Posts: 29
Received Thanks: 4
was ist falsch in der dropp.quest

quest alternative_drop begin
state start begin
when kill with not npc.is_pc() begin
--Monster
if npc.get_race()==2591 then
--Tartaros
local armor = {11294, 11494, 11694, 11894}
if number(1, 10)==1 then game.drop_item_with_ownership(armor[number(1,4)], 1) return end --66er Rüstung+4: Chance 10%
elseif npc.get_race()==2597 then
--Charon
if number(1, 10)==1 then game.drop_item_with_ownership(11494, 1) return end --Schwarzwindanzug+4: Chance 10%
elseif npc.get_race()==2598 then
--[[Azrael
game.drop_item_with_ownership(50186, 1) --Truhe des Azrael
local items = {14220, 16220, 17220, 13140, 11694}
for i=1, 6 do
if number(1, 5)==1 then game.drop_item_with_ownership(items[i], 1) end --Seelenkristallschmuck & Titanschild & Magieplattenpanzer: Chance 1/5
end]]
if number(1, 2)==1 then game.drop_item_with_ownership(27990+number(2,4), 1) end
return
elseif npc.get_race()==2490 then
--Beran-Setaou
game.drop_item_with_ownership(30190, number(2,4)) --Blutstein
local waffen = {190, 180, 1130, 2170, 3160, 5120}
for i=1, table.getn(waffen) do
if number(1, 50)==1 then game.drop_item_with_ownership(waffen[i], 1) end --75er Waffe+0: Chance 10%
end
local helme = {12260, 12390, 12530, 12670, }
for i=1, table.getn(helme) do
if number(1, 5)==1 then game.drop_item_with_ownership(helme[i]+number(1,5), 1) end --Helme +0-4: Chance 1/5
end
local schuhe = {15410, 15430, 15370, 15220}
for i=1, 4 do
if number(1, 5)==1 then game.drop_item_with_ownership(schuhe[i]+number(1,5), 1) end --Schuhe +0-4: Chance 1/5
end
game.drop_item_with_ownership(27990+number(2,4), 1) --Perlen
local drache = {71123, 71129}
for i=1, 2 do
if number(1, 2)==1 then game.drop_item_with_ownership(drache[i], 1) end --Drachenzeug: Chance 15/20
end
return
elseif npc.get_race()==2492 then
-- General Yonghan
game.drop_item_with_ownership(30190, 1) --Blutstein
game.drop_item_with_ownership(30179, number(1, 4)) --Gewundener Schlüssel
local sonstiges = {13066, 13086, 13126, 13106, 16186, 17186, 17206, 16206, 14206, 15166, 15206, 14144, 71135}
for i=1, table.getn(sonstiges) do
if number(1, 5)==1 then game.drop_item_with_ownership(sonstiges[i], 1) end --Schmuck, Schuhe: Chance 1/5
end
return
elseif npc.get_race()==2092 then
--Spinnenbaroness
local waffen = {145, 155, 3135, 5105, 1105, 2145, 7145, 245}
for i=1, table.getn(waffen) do
if number(1, 20)==1 then game.drop_item_with_ownership(waffen[i], 1) end --65er Waffe+5: Chance 1/20
end
game.drop_item_with_ownership(27990+number(2,4), 1) --Perlen
if number(1, 5)==1 then game.drop_item_with_ownership(55702, 1) end --kleinespinne
if number(1, 5)==1 then game.drop_item_with_ownership(13140, 1) end --Titanschild
local armor = {11296, 11496, 11696, 11896}
for i=1, 4 do
if number(1, 10)==1 then game.drop_item_with_ownership(armor[i], 1) end --66er Rüstung+0: Chance 1/10
end
local schild = {13064, 13084, 13124, 13104}
for i=1, 4 do
if number(1, 5)==1 then game.drop_item_with_ownership(schild[i], 1) end --61er Schild+4: Chance 1/5
end
local schmuck = {14166, 16166, 17166, 14186, 16186, 17186, 14206, 16206, 17206}
for i=1, table.getn(schmuck) do
if number(1, 5)==1 then game.drop_item_with_ownership(schmuck[i], 1) end --Schmuck: Chance 1/5
end
return
elseif npc.get_race()==706 then
-- Dunkler Peiniger -> Fluchsammlung
if number(1,50)==1 then game.drop_item_with_ownership(30047, 2) return end
-- elseif npc.get_race()==1104 or npc.get_race()==1134 then
-- Eislöwe & Unterwelt-Eislöwe -> Yetifell
-- if number(1,50)==1 then game.drop_item_with_ownership(30014, 2) return end
elseif npc.get_race()==636 or npc.get_race()==637 then
if number(1,25)==1 then game.drop_item_with_ownership(30006, 2) return end --Orkzahn
elseif npc.get_race()==706 or npc.get_race()==756 then
if number(1,25)==1 then game.drop_item_with_ownership(30047, 2) return end --Fluchsammlung
elseif npc.get_race()>=1001 and npc.get_race()<=1003 then
-- Dämonen -> Dämonenandenken
-- if number(1,25)==1 then game.drop_item_with_ownership(30015, 2) return end
-- if npc.get_race()==1003 then
-- Dämonenedelstein
-- if number(1,50)==1 then game.drop_item_with_ownership(30016, 2) return end
-- end
-- if npc.get_race()==1002 then
-- Dämonenedelstein+
-- if number(1,50)==1 then game.drop_item_with_ownership(30087, 2) return end
-- end
-- elseif npc.get_race()==2203 then
-- Kampftiger -> Flammenmähne
-- if number(1,50)==1 then game.drop_item_with_ownership(30019, 2) return end
-- elseif npc.get_race()==904 then
-- Plagenschwertkämpfer -> Stück Gewebe
-- if number(1,50)==1 then game.drop_item_with_ownership(30039, 2) return end
-- elseif npc.get_race()==1301 or npc.get_race()==1303 then
-- -- Baumfrosch-Soldat, Buhmann -> Blatt
-- if number(1,50)==1 then game.drop_item_with_ownership(30040, 2) return end
-- if npc.get_race()==1301 then
-- -- Forschzunge
-- if number(1,50)==1 then game.drop_item_with_ownership(30060, 2) return end
-- end
-- elseif npc.get_race()==2201 then
-- -- Kampftigersklave -> Reißzahn eines Tigers
-- if number(1,50)==1 then game.drop_item_with_ownership(30042, 2) return end
elseif npc.get_race()==1101 or npc.get_race()==1131 or npc.get_race()==1171 then
-- -- Böses verzaubertes Eis, Verzaubertes Eis, Unterwelt-Eissplitter -> Eisstück
-- if number(1,50)==1 then game.drop_item_with_ownership(30048, 2) return end
if npc.get_race()==1131 then
-- Wasserkristall
if number(1,150)==1 then game.drop_item_with_ownership(30198, 1) return end
end
-- elseif npc.get_race()==1102 or npc.get_race()==1132 then
-- -- Eiskillerwal, Unterwelt-Eiskillerwal -> Eiskillerwal-Horn
-- if number(1,50)==1 then game.drop_item_with_ownership(30049, 2) return end
elseif npc.get_race()==1107 or npc.get_race()==1137 then
-- Eisgolem, Unterwelt-Eisgolem -> Eiskugel
if number(1,25)==1 then game.drop_item_with_ownership(30050, 2) return end
if npc.get_race()==1137 then
-- Wasserkristall
if number(1,150)==1 then game.drop_item_with_ownership(30198, 1) return end
end
-- elseif npc.get_race()==1302 or npc.get_race()==1332 then
-- -- Baumfrosch-Anführer, Gr. Baumfrosch-Anführer -> Froschschenkel
-- if number(1,50)==1 then game.drop_item_with_ownership(30061, 2) return end
-- elseif npc.get_race()==2107 then
-- -- Schlangenbogenschütze -> Schlangenschwanz+
-- if number(1,50)==1 then game.drop_item_with_ownership(30082, 2) return end
-- elseif npc.get_race()==903 or npc.get_race()==933 then
-- -- Plagenmann, W. Plagenmann -> Unbekannte Medizin+
-- if number(1,50)==1 then game.drop_item_with_ownership(30083, 2) return end
-- elseif npc.get_race()==905 then
-- -- Plagenspeerkämpfer -> Stück Gewebe+
-- if number(1,50)==1 then game.drop_item_with_ownership(30085, 2) return end
elseif npc.get_race()==1004 or npc.get_race()==1035 then
-- Dämonenschamane, Geist des Grolls -> Dämonenandenken+
-- if number(1,50)==1 then game.drop_item_with_ownership(30086, 2) return end
if npc.get_race()==1004 then
--Dämonenandenken
if number(1,50)==1 then game.drop_item_with_ownership(30015, 2) return end
end
-- elseif npc.get_race()==1103 then
-- -- Eisinsekt -> Eisstück+
-- if number(1,50)==1 then game.drop_item_with_ownership(30088, 2) return end
-- elseif npc.get_race()==1105 or npc.get_race()==1135 then
-- -- Frostiger Eismann, Unterwelt-Eismann -> Yetifell+
-- if number(1,50)==1 then game.drop_item_with_ownership(30089, 2) return end
-- elseif npc.get_race()==1106 or npc.get_race()==1136 then
-- -- Unterwelt-Yeti, Yeti -> Eiskugel+
-- if number(1,50)==1 then game.drop_item_with_ownership(30090, 2) return end
-- elseif npc.get_race()==2205 then
-- -- Flammenkrieger -> Kriegersymbol
-- if number(1,50)==1 then game.drop_item_with_ownership(30091, 2) return end
-- elseif npc.get_race()==2302 or npc.get_race()==2303 then
-- Dryade und Baumstumpf -> Milchsaft
-- if number(1,150)==1 then game.drop_item_with_ownership(30192, 1) return end
-- elseif npc.get_race()==1601 or npc.get_race()==1602 then
-- Oger Schlächter, Oger Krieger -> Ork-Keule
-- if number(1,25)==1 then game.drop_item_with_ownership(30194, 1) return end
-- elseif npc.get_race()==2414 or npc.get_race()==2404 or npc.get_race()==2411 then
-- Setaou-Kommandant, Setaou-Anführer, Setaou-Soldat -> Dämonenasche
-- if number(1,150)==1 then game.drop_item_with_ownership(30196, 1) return end
-- if npc.get_race()==2414 or npc.get_race()==2411 then
-- Blauer Kristall
-- if number(1,150)==1 then game.drop_item_with_ownership(30199, 1) return end
-- end
elseif npc.get_race()==1501 or npc.get_race()==1502 or npc.get_race()==1503 then
-- Steinbeisser, Steingolem, Riesiger Felsengolem -> Quarzsand
if number(1,25)==1 then game.drop_item_with_ownership(30195, 1) return end
elseif npc.get_race()==2312 or npc.get_race()==2313 then
-- Roter Geisterbaumstumpf, Rote Dryade -> Magische Samen
if number(1,150)==1 then game.drop_item_with_ownership(30197, 1) return end
elseif npc.get_race()==1133 then
-- Eisinsekt -> Wasserkristall
if number(1,150)==1 then game.drop_item_with_ownership(30198, 1) return end
elseif npc.get_race()==2413 then
-- Setaou-Magistra -> Blauer Kristall
if number(1,150)==1 then game.drop_item_with_ownership(30199, 1) return end
elseif npc.get_race()>=1061 and npc.get_race()<=1064 then
-- Gemeine Geister -> Fingerknochen
if number(1,150)==1 then game.drop_item_with_ownership(30193, 1) return end
end



--Global ohne Level
local items = {50600, 50314, 50315, 50316, 50301, 50302, 50303, 50304, 50305, 50306, 50061, 50060, 70104}
if number(1, 1000)==1 then game.drop_item_with_ownership(items[number(1, table.getn(items))], 1) return end
--Truhe der Macht
if number(1, 300)==1 then game.drop_item_with_ownership(38050, 1) return end
--Zen Bohne
if number(1, 350)==1 then game.drop_item_with_ownership(70102, 1) return end
--Truhe der Könige
if number(1, 350)==1 then game.drop_item_with_ownership(38052, 1) return end
--Muscheln
if number(1, 700)==1 then game.drop_item_with_ownership(27987, 1) return end


-- --Global Kräuter
-- local kraut = {50721, 50722, 50723, 50724, 50725, 50726, 50727, 50728}
-- if number(1, 1000)==1 then game.drop_item_with_ownership(kraut[number(1, table.getn(kraut))], 1) return end

--Global mit Level
-- if pc.get_level()>=25 and pc.get_level()<35 then
-- if number(1, 1000)==1 then game.drop_item_with_ownership(50054, 1) return end --Heu: Chance 1%
-- end
-- if pc.get_level()>=35 and pc.get_level()<50 then
-- if number(1, 1000)==1 then game.drop_item_with_ownership(50055, 1) return end --Karotte: Chance 1%
-- end
-- if pc.get_level()>=50 and (pc.get_map_index()<660000 or pc.get_map_index()>=670000) and pc.get_map_index()~=66 then
-- --Nicht im DT
-- if number(1, 1000)==1 then game.drop_item_with_ownership(50056, 1) return end --Roter Ginseng: Chance 1%
-- end
if pc.get_level()>=50 then
if number(1, 200)==1 then game.drop_item_with_ownership(25040, 1) return end --Segensschriftrolle: Chance 0.1%
end
if pc.get_level()>=75 then
local armor = {11280, 11480, 11680, 11880}
local waffen = {143, 153, 163, 243, 1103, 1113, 2133, 2143, 3133, 3143, 5093, 5103, 7133, 7143}
if number(1, 5000)==1 then game.drop_item_with_ownership(armor[number(1,4)], 1) return end --61er Rüstung+0: Chance 0.1%
if number(1, 5000)==1 then game.drop_item_with_ownership(schmuck[number(1,14)]+number(1,3), 1) return end --65er Waffen+4-6: Chance 0.1%
end

-- --Schlangenfeld und Land der Riesen
-- if pc.get_map_index()==69 or pc.get_map_index()==70 then
-- if number(1, 1000)==1 then game.drop_item_with_ownership(53010+number(1,2), 1) return end
-- end

--Ab DC Ebene 3
if (pc.get_map_index()>=2160000 and pc.get_map_index()<2170000) and d.getf("level")>=2 then
if number(1, 1000)==1 then game.drop_item_with_ownership(13140, 1) return end --Titanschild+0: Chance 0.1%
end

--DC Ebene 1
if pc.get_map_index() == 216 and pc.get_local_x() > 30 and pc.get_local_y() > 45 and pc.get_local_x() < 450 and pc.get_local_y() < 450 then
if number(1, 100)==1 then game.drop_item_with_ownership(30319, 1) return end --Schrumpfkopf: Chance 0.1%
end

--Roter Wald ab 86
if pc.get_level()>=86 and pc.get_map_index()==68 then
local armor = {11290, 11490, 11690, 11890}
local schmuck = {14203, 16203, 17203}
if number(1, 1000)==1 then game.drop_item_with_ownership(armor[number(1,4)], 1) return end --66er Rüstung+0: Chance 0.1%
if number(1, 1000)==1 then game.drop_item_with_ownership(schmuck[number(1,3)]+number(1,3), 1) return end --54er Schmuck+4-6: Chance 0.1%
if number(1, 1000)==1 then game.drop_item_with_ownership(27987, 1) return end --Muschel: Chance 0.1%
end

--Grotte der Verbannung 2 ab 75
if pc.get_level()>=75 and (pc.get_map_index()>=2070000 and pc.get_map_index()<2080000) or pc.get_map_index()==73 then
if number(1, 1000)==1 then game.drop_item_with_ownership(27987, 1) return end --Muschel: Chance 0.1%
if number(1, 1000)==1 then game.drop_item_with_ownership(50124, 1) return end --Morsche Holzkiste: Chance 0.1%
end


end

--Truhen
when 50186.use begin
--Truhe des Azrael
item.remove()
local waffen = {190, 180, 1130, 2170, 3160, 5120}
if number(1, 20)==1 then game.drop_item_with_ownership(waffen[number(1, 6)], 1) end --75er Waffe+0: Chance 10%
local armor = {11290, 11490, 11690, 11890}
for i=1, table.getn(armor) do
if number(1, 5)==1 then game.drop_item_with_ownership(armor[i]+number(1,2), 1) end --66er Rüstungen+1-2: Chance 1/2
end
local weapon = {3152, 172, 252, 1122, 2182, 7152}
for i=1, table.getn(weapon) do
if number(1, 7)==1 then game.drop_item_with_ownership(weapon[i], 1) end --70er Waffen+4: Chance 1/2
end
local schmuck = {14203, 16203, 17203}
for i=1, table.getn(schmuck) do
if number(1, 2)==1 then game.drop_item_with_ownership(schmuck[i]+number(1,3), 1) end --Schmuck+4-6: Chance 1/2
end
local schmuck2 = {14220, 16220, 17220}
for i=1, table.getn(schmuck2) do
if number(1, 5)==1 then game.drop_item_with_ownership(schmuck2[i], 1) end --Schmuck+0: Chance 1/5
end
local helme = {12260, 12280, 12670, 12680, 12530, 12540, 12390, 12400, 13140}
for i=1, table.getn(helme) do
if number(1, 4)==1 then game.drop_item_with_ownership(helme[i], 1) end --Helme+0 und +4: Chance 1/4
end
end
end
end

als fehler bekomme ich RunState: LUA_ERROR: [string "alternative_drop"]:1: attempt to compare number with boolean
WriteRunningStateToSyserr: LUA_ERROR: quest alternative_drop.start click
zwar läuft die quest so derzeit , jedoch kommt halt dieser fehler und man kann truhe der macht , bzw der könige nicht öffnen , truhen sind in putty als type 18
peewo is offline  
Old 11/25/2016, 18:29   #12446
 
Chritation's Avatar
 
elite*gold: 11
Join Date: Apr 2011
Posts: 749
Received Thanks: 59
Hallo, bräuchte jemanden, der kontrolliert, wo ich zu viele / wenige "end"´s
gemacht habe, da ich assertion failure bekomme. Hier die Quest:

PHP Code:
quest level1 begin
        state start begin
                when login 
or levelup with pc.get_level() == 1 begin
                        set_state
gotoinfomation )
                
end
        end
        state gotoinfomation begin
                when letter begin
                        send_letter
("Willkommen auf CleverMt2!")
                
end
                when button 
or info begin
                        say_title
("Willkommen auf CleverMt2")
                        ----
"12345678901234567890123456789012345678901234567890"|
                        
say("Das Abenteuer auf CleverMt2 hat grade erst begonnen.Um nun alles hier besser kennen zu lernen,")
                        
say("suche bitte den Stadtwächer auf. ")
                        
say("Er wird dir grundlegende Informationen geben.")
                        
say("Zudem wird er dir verschiedene Tipps geben, sodass")
                        
say("du dich besser zurecht finden kannst!")
                        
say("")
                        
say("Suche ihn nun. Er wartet auf dich.")
                        
say("")
                        
wait()
                        
say_title("Wilkommen auf CleverMt2!")
                        
say("Wenn du leveln möchtest, findest du Tiere außerhalb der Stadt. Diese Tiere sind rot auf der Minimap")
                        
say("markiert, was zeigen soll, dass sie deine Feinde sind.")
                        
say("Für den Anfang solltest du Wildhunde jagen, da sie")
                        
say("das einfachste Ziel sind.")
                        
say("")
                        
say_reward("Suche nun den Stadtwächter auf!")
                        
say("")
                        
set_stategototeacher )
                
end
        end

        state gototeacher begin
                when letter begin
                        local v
=find_npc_by_vnum(20354)
                        if 
0==v then
                        
else
                                
target.vid("__TARGET__"v"Locate the  City Guard.")
                        
end
                end

                when button 
or info begin
                        say_title
("Finde den Stadtwächter.")
                        -----------
"12345678901234567890123456789012345678901234567890"|
                        
say_reward("Spreche mit dem Stadwächter.")
                        
say_reward("Finde den NPC, der mit dem roten Pfeil makiert ist")
                        
say_reward("und klicke auf ihn.")
                        
say_reward("Falls du keine NPC's finden kannst, dann")
                        
say_reward("folge dem rot blinkenden Symbol auf der Minimap.")
                        
say("")
                
end
                when __TARGET__
.target.click begin
                        target
.delete("__TARGET__")
                        
say_title("Stadtwächter:")
                        ----
"12345678901234567890123456789012345678901234567890"|
                        
say("Du musst der Neue sein! Wie ich sehe, bist du noch")
                        
say("nicht stark genug, um meine Aufträge zu meistern!")
                        
say("Hattest du schon einmal ein richtiges Training?")
                        
say("Schau dich doch mal an! Weißt du überhaupt, wie man eine Waffe benutzt?")
                        
say("")
                        
say("Hör zu!")
                        
say("Du musst immer auf der Hut sein, wenn du in diesem")
                        
say("Krieg überleben willst.")
                        
say("Hier hast du deine erste Waffe! Geh und erledige einpaar Tiere.")
                        
say("Ich werde dir einige Aufträge geben, sobald du höhere Level erreicht hast. Ich bin eine beschäftigte Person, also verschwende meine Zeit nicht! Verschwinde nun!")
                        
wait()
                        
say_title("Stadtwächter:")
                        ----
"12345678901234567890123456789012345678901234567890"|
                        
say("Nun geh und lerne ein paar Grundlagen! Wenn du ein höheres Level erreicht hast, solltest du zu mir zurückkommen und mit mir reden! Warum stehst du immer noch hier? Du wirst keine Erfahrung sammeln, wenn du hier so rumstehst!")
                        
say("")
                        if 
pc.job == 0 then
                        pc
.give_item2(10)
                        elseif 
pc.job == 1 then
                        pc
.give_item2(1000)
                        elseif 
pc.job == 2 then
                        pc
.give_item2(10)
                        elseif 
pc.job == 3 then
                        pc
.give_item2(7000)
                        
clear_letter()
                        
set_quest_state("find_squareguard","find")
                        
set_quest_state("main_quest_lv2","run")
                        
set_state(_COMPLETE_)
    
end
end 
Danke im Voraus!
Chritation is offline  
Old 11/26/2016, 01:11   #12447
 
.Delta's Avatar
 
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
Am Ende haben dir 2 gefehlt , hab dazugeschrieben wo
PHP Code:
quest level1 begin 
    state start begin 
        when login 
or levelup with pc.get_level() == 1 begin 
            set_state
gotoinfomation 
        
end 
    end 
    state gotoinfomation begin 
        when letter begin 
            send_letter
("Willkommen auf CleverMt2!"
        
end 
        when button 
or info begin 
            say_title
("Willkommen auf CleverMt2")
            
say("Das Abenteuer auf CleverMt2 hat grade erst begonnen.Um nun alles hier besser kennen zu lernen,")
            
say("suche bitte den Stadtwächer auf. ")
            
say("Er wird dir grundlegende Informationen geben.")
            
say("Zudem wird er dir verschiedene Tipps geben, sodass")
            
say("du dich besser zurecht finden kannst!"
            
say(""
            
say("Suche ihn nun. Er wartet auf dich."
            
say(""
            
wait() 
            
say_title("Wilkommen auf CleverMt2!"
            
say("Wenn du leveln möchtest, findest du Tiere außerhalb der Stadt. Diese Tiere sind rot auf der Minimap"
            
say("markiert, was zeigen soll, dass sie deine Feinde sind."
            
say("Für den Anfang solltest du Wildhunde jagen, da sie"
            
say("das einfachste Ziel sind."
            
say(""
            
say_reward("Suche nun den Stadtwächter auf!"
            
say(""
            
set_stategototeacher 
        
end 
    end 
    state gototeacher begin 
        when letter begin 
            local v
=find_npc_by_vnum(20354
            if 
0==v then 
            
else 
                
target.vid("__TARGET__"v"Locate the  City Guard."
            
end 
        end 
        when button 
or info begin 
            say_title
("Finde den Stadtwächter.")
            
say_reward("Spreche mit dem Stadwächter."
            
say_reward("Finde den NPC, der mit dem roten Pfeil makiert ist"
            
say_reward("und klicke auf ihn."
            
say_reward("Falls du keine NPC's finden kannst, dann"
            
say_reward("folge dem rot blinkenden Symbol auf der Minimap."
            
say(""
        
end 
        when __TARGET__
.target.click begin 
            target
.delete("__TARGET__"
            
say_title("Stadtwächter:")
            
say("Du musst der Neue sein! Wie ich sehe, bist du noch"
            
say("nicht stark genug, um meine Aufträge zu meistern!"
            
say("Hattest du schon einmal ein richtiges Training?"
            
say("Schau dich doch mal an! Weißt du überhaupt, wie man eine Waffe benutzt?"
            
say(""
            
say("Hör zu!"
            
say("Du musst immer auf der Hut sein, wenn du in diesem"
            
say("Krieg überleben willst."
            
say("Hier hast du deine erste Waffe! Geh und erledige einpaar Tiere."
            
say("Ich werde dir einige Aufträge geben, sobald du höhere Level erreicht hast. Ich bin eine beschäftigte Person, also verschwende meine Zeit nicht! Verschwinde nun!"
            
wait() 
            
say_title("Stadtwächter:")
            
say("Nun geh und lerne ein paar Grundlagen! Wenn du ein höheres Level erreicht hast, solltest du zu mir zurückkommen und mit mir reden! Warum stehst du immer noch hier? Du wirst keine Erfahrung sammeln, wenn du hier so rumstehst!"
            
say(""
            if 
pc.job == 0 then 
                pc
.give_item2(10
            elseif 
pc.job == 1 then 
                pc
.give_item2(1000
            elseif 
pc.job == 2 then 
                pc
.give_item2(10
            elseif 
pc.job == 3 then 
                pc
.give_item2(7000
            
end --hat gefehlt
            clear_letter
() 
            
set_quest_state("find_squareguard","find"
            
set_quest_state("main_quest_lv2","run"
            
set_state(_COMPLETE_
        
end 
    end
end 
--hat gefehlt 
Quote:
Originally Posted by Chritation View Post
Hallo, bräuchte jemanden, der kontrolliert, wo ich zu viele / wenige "end"´s
gemacht habe, da ich assertion failure bekomme. Hier die Quest:

Danke im Voraus!
.Delta is offline  
Thanks
1 User
Old 11/26/2016, 14:56   #12448
 
»DeneX«'s Avatar
 
elite*gold: 0
Join Date: Jul 2015
Posts: 1,400
Received Thanks: 568
Ich hab eine Quest geschrieben, dass man ein Item braucht um auf eine Farmmap zu kommen, leider klappt es nur wenn man dieses Item 1x im Inventar hat ,wenn man es 2x im Inventar hat geht es garnicht mehr.. weißt jemand warum?

Dankesehr

PHP Code:
quest farmmap begin
    state start begin
        when 9028.chat
."Farmmap von Lv. 1 - Lv. 95" with pc.get_map_index() == or pc.get_map_index() == 41 begin
            local anzahl 
1
            local itemvnum 
31061
            
            say_title
("Aschera: ")
            
say("")
            
say_green("Um diese Farmmap betreten zu können")
            
say_green("benötigst du:")
            
say_item_vnum(31061)
            
local s select("Ich habe einen Ast!""Nein, hab leider keinen. ")
            if 
== 1 then
                
if pc.count_item(itemvnum) >= anzahl and pc.level <= 95 and pc.can_warp() then
                    pc
.remove_item(310611)
                    
pc.warp(777784000777848100)
                else
                    
chat("|cFF00ff33[Information]|h|cFFFFFFFF|h  Du besitzt keinen Ast, bist zu hoch für diese Map oder musst 10 Sekunden warten.")
                
end
            end
        end
    end
end 
»DeneX« is offline  
Old 11/26/2016, 15:19   #12449
 
.Delta's Avatar
 
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
funktioniert alles wunderbar bei mir mit 200 stück im Inventar ,

hab nur den warp zum testen entfernt
.Delta is offline  
Old 11/27/2016, 17:06   #12450
 
elite*gold: 0
Join Date: Feb 2010
Posts: 124
Received Thanks: 40
Hi, Habe als chance 0.0005% trozdem droppe ich bei jedem 2 mob etwas.
Jemand eine Ahnung, woran es liegt?



quest common_drops begin
state start begin
when kill with not npc.is_pc() begin
local drops = {
---Item id, min level, max level, drop chance
{50314,1,100,0.0005},
{50315,1,100,0.0005},
{50316,1,100,0.0005},
{50301,1,100,0.0005},
{50302,1,100,0.0005},
{50303,1,100,0.0005},
{70102,20,100,0.2},
{72301,50,100,0.2},
{50054,1,30,0.0005},
{50055,25,50,0.0005},
{50056,50,100,0.0005}
}
for i = 1, table.getn(drops) do
if pc.get_level() >= drops[2] and pc.get_level() <= drops[3] then
if number(1,100) > (100-drops[4]) then
game.drop_item_with_ownership(drops[1], 1)
return
end
end
end
end
end
end
marcomatic0 is offline  
Reply




All times are GMT +1. The time now is 21:33.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.