ehering function

11/27/2011 14:27 'oShet#1
Weiß jemand wie die quest funktion vom ehering heißt? z.b pc.warp_married ...
Will nämlich bestimmte maps verbieten.
11/27/2011 16:21 huhu2010#2
pc.is_married()
11/27/2011 17:01 Mijago#3
Das frägt nur ab, ob er verheiratet ist ;)
Ich habe die Lösung schon vorhin gemacht, kann sie erst in 30 Min testen, dann edite ich den Post :)
11/27/2011 17:06 'oShet#4
Quote:
Originally Posted by Mijago View Post
Das frägt nur ab, ob er verheiratet ist ;)
Ich habe die Lösung schon vorhin gemacht, kann sie erst in 30 Min testen, dann edite ich den Post :)
ok...
11/27/2011 17:26 Mijago#5
Ok, mein Virualbox Will grade nicht so wie es soll :D
PHP Code:
quest ehering2 begin
-- Eheringersatz by Mijago
-- Ehering den Type 18 Subtype 0 Antiflag 0 eintragen! [DB]
    
state start begin
        when 70302.
use begin
            
if not pc.is_married() then
                chat
("Du bist nicht verheiratet.")
                return
            
end
            local u_vid 
marriage.find_married_vid()
            if 
u_vid == 0 then
                chat
("Dein Partner ist nicht online.")
                return
            
end
            local target 
u_vid
            local t 
pc.select(target)
            
local p = {}
            
p.name pc.get_name()
            
p.level pc.get_level()
            
p.map pc.get_map_index()
            
p.pc.get_local_x()
            
p.pc.get_local_y()
            
local disallow = {3,23,43}
            if 
ehering2.table_is_in(disallow,p.mapthen
                chat
("Auf diese Karte kann ich dich nicht Teleportieren.")
                return
            
end
            chat
('Du wirst zu '..p.name..' (Lv. '..p.level..') teleportiert.')
            
pc.select(t)
            
pc.warp_local(p.mapp.xp.y)
        
end
        
function table_is_in(selftest)
            for 
1table.getn(self) do
                if 
self[i]==test then
                    
return true
                end
            end 
            
return false
        end
    end
end 
Wie gesagt, NONTESTED..
Vll klappts, vll ned ;)
Sag einfach bescheid

PHP Code:
local disallow = {3,23,43
Das verbietet das Warpen auf die Map2 der Reiche (Die ja Map ID 3,23 und 43 haben). Einfach mit Komma getrennt die Map id's eingeben
11/27/2011 17:50 'oShet#6
die quest funktioniert nicht.
11/27/2011 17:52 Mijago#7
ja, war mir klar, aber bitte schreib mir genau, welche Fehler aufkommen etc.
11/27/2011 17:59 'oShet#8
sorry hab vergessen XD
Also der text "du wirst nach .... ... geportet" erscheint beim verheirateten
Z.b ich benutz mit sura m ehering aber bei dem sura w kommt der text.

Und ich werde auf die anfangs map geportet.
z.b wenn ich /go a mache, dann lande ich bei den cords 597,682. Und wenn ich den ring benutze, dann lande ich auch bei 597,682
11/27/2011 18:12 Mijago#9
Das erste lässt sich leicht beheben, indem man das pc.select(t) vor if ehering2.table_is_in(disallow,p.map) then setzt ..

Aber das Zweite kann ich grade ohne meinen Testserver nicht entbuggen - ich versuchs weiter, bd :)
11/27/2011 18:34 'oShet#10
hab bissien rumgeforscht xD. jetzt wird nur im chat angezeigt (warp "map ID" "cord x" cord y" (wegen test server))
Aber geportet werd ich net.
11/27/2011 18:57 Mijago#11
PHP Code:
quest ehering2 begin
-- Eheringersatz by Mijago
-- Ehering den Type 18 Subtype 0 Antiflag 0 eintragen! [DB]
    
state start begin
        when 70302.
use begin
            
if not pc.is_married() then
                chat
("Du bist nicht verheiratet.")
                return
            
end
             local u_vid 
marriage.find_married_vid()
            if 
u_vid == 0 then
                chat
("Dein Partner ist nicht online.")
                return
            
end
            local target 
u_vid
            local t 
pc.select(target)
            
local p = {}
            
p.name pc.get_name()
            
p.level pc.get_level()
            
p.map pc.get_map_index()
            
p.pc.get_x()
            
p.pc.get_y()
            
chat(p.y)       
            
local disallow = {3,23,43}
            
pc.select(t)    
            if 
ehering2.table_is_in(disallow,p.mapthen
                chat
("Auf diese Karte kann ich dich nicht Teleportieren.")
                return      
            
end             
            chat
('Du wirst zu '..p.name..' (Lv. '..p.level..') teleportiert.')
            
pc.warp(p.x*100p.y*100)
        
end                 
        
function table_is_in(selftest)
            for 
1table.getn(self) do
                if 
self[i]==test then
                    
return true     
                end
            end
            
return false    
        end
    end
end 
11/27/2011 19:28 'oShet#12
pc.warp(p.x*100, p.y*100)
muss zu pc.warp_local(p.map, p.x*100, p.y*100)

p.x = pc.get_x()
p.y = pc.get_y()

muss zu
p.x = pc.get_local_x()
p.y = pc.get_local_y()

meine quest funktioniert :D

Danke
11/27/2011 19:33 Mijago#13
muss nicht ;)
Bei mir klappt es so perfekt

Und deine Quest ist meine quest die du verändert hast, immernoch xD
11/27/2011 20:21 PhanToM.LorD#14
Ich würde das an deiner Stelle nicht mit with pc.is_married() machen, denn sonst kann man wenn man verheiratet ist garnichtmehr auf die map. Ich würde einfach eine abfrage machen, ob man einen ehering bei sich hat und wenn man einen bei sich hat wird man irgendwo anders hinteleportiert. Alles was du dann noch machen musst ist beim teleporternpc den text hinzufügen, dass man keinen ehering bei sich tragen darf. So hab ichs bei mir auch gemacht.
11/27/2011 20:39 'oShet#15
Quote:
Originally Posted by Mijago View Post
muss nicht ;)
Bei mir klappt es so perfekt

Und deine Quest ist meine quest die du verändert hast, immernoch xD
nöö habe nur

local target = u_vid
local t = pc.select(target)
local p = {}
p.name = pc.get_name()
p.level = pc.get_level()
p.map = pc.get_map_index()
p.x = pc.get_x()
p.y = pc.get_y()

genommen :D