elitepvpers

elitepvpers (https://www.elitepvpers.com/forum/)
-   Metin2 Private Server (https://www.elitepvpers.com/forum/metin2-private-server/)
-   -   Items verbieten (https://www.elitepvpers.com/forum/metin2-private-server/2677172-items-verbieten.html)

123snake123 06/23/2013 10:33

Items verbieten
 
Moin,

ich würde gerne bestimmte, Items z.B. Segen des Leben´s auf bestimmten Map´s wie im GildenKrieg zu verbieten.

Ich weiß das man das über den Client machen kann, aber ich weiß nicht wie.

Kann mir da einer ne Anleitung zu schreiben??

nostradame37 06/23/2013 10:44

das regelst du per quest nicht clientside

123snake123 06/23/2013 10:46

habe das schon mehrmals nachgefragt mir wurde immer gesagt geht nicht per quest nur über phyton.

Kannst du mir dann sagen wie die quest auszusehen hat?

nostradame37 06/23/2013 10:52

ja clientside geht das auch aber ist halt ein stueck schwer
mit ner quest laest sich das regeln und dan auch beliebig ausbauen.
werde ma schauen ob ich solch eine noch habe und nachposten

x'Radon 06/23/2013 12:37

Schreib eine Quest in der du den map index vom gildenkrieg ienträgst dun dann eine abfrage mit if pc.count_item(ITEMID) > 1 then und dann einen warpbefehel zu map 1 z.b. also wenn man das item dabei hat^^

123snake123 06/23/2013 12:52

Danke sehr gute idee, nur das problem ist, das es die Item´s im Is zu kaufen gibt und man das lager auf der Map auf machen kann durch den Inventar.
Da müsste man noch das Lager öffnen auf der Map verbieten

Acon™ 06/23/2013 13:33

bin mir nich sicher aber muss man Glaub ich nich ^^ falls doch das dürfte auch einfach per
Quest gehen ;)


Mfg Acon

.Stefan 06/23/2013 13:51

Du schreibst ne Quest, die überprüft ob der Spieler auf der Map ist und wenn das Item da benutzt wird, wird dies halt verhindert. Muss man halt noch entsprechend questen.

123snake123 06/23/2013 15:14

Quote:

Du schreibst ne Quest, die überprüft ob der Spieler auf der Map ist und wenn das Item da benutzt wird, wird dies halt verhindert. Muss man halt noch entsprechend questen.
Das ist doch mein Problem das ich nicht weiß wie ich das schreibe

.Stefan 06/23/2013 15:15

[Service]Questerstellung :)

Ivica.Lovro 06/23/2013 15:17

Es geht auch Clientside mit Python.

mfg PleXoNiu

.Stefan 06/23/2013 15:18

Ja dann müsste man ja auch garantieren, dass der Client sicher ist. Weil man ja sonst sich auch mit einem anderen Client verbinden könnte. Die Quest würde ich da immer noch bevorzugen.

Ivica.Lovro 06/23/2013 15:21

Quote:

Originally Posted by .Stefan (Post 23436965)
Ja dann müsste man ja auch garantieren, dass der Client sicher ist. Weil man ja sonst sich auch mit einem anderen Client verbinden könnte. Die Quest würde ich da immer noch bevorzugen.

Da hast du natürlich wiederrum Recht.
Ich wollte jediglich noch einmal die Möglichkeit aufgreifen.
Mithilfe von Python werden beim PvP-Turnier von Musicinstructor z.B.
Potts verboten.

mfg PleXoNiu

123snake123 06/23/2013 15:21

Stimmt über den Client ist zu unsicher^^

Bei der Questerstellung habe ich schon mal was reingestellt und werde übersehn^^, von daher denke ich das das hier eher gesehn wird

MrPlayboy 06/23/2013 16:09

Spoiler:
PHP Code:

quest itemweg begin
    state start begin
        when login with pc
.map_index()==MAPINDEX begin
            set_state
(zeit)
        
end
    end
    state zeit begin
        timer
("zeitt"1)

        
when zeitt.timer begin
            
if pc.count_item(ITEMVNUM) >=1 then
                say
("Du hast ITEMVNUM dabei, du kannst auf dieser Map nicht bleiben")
                
pc.warp_to_village()
            
end
            
else
                
set_state(zeitt)
            
end
        end
    end
end 

Der überprüft jede Sekunde ob der Spieler ein Item bei sich hat, wenn ja wird er zur Stadt teleportiert und wenn nicht beginnt der Timer von vorne

Noa_ 06/23/2013 16:21

ich würde da Python bevorzugen. Das mit dem Clienten sichern ist nicht so wichtig denn die meisten die metin2 spiele haben eh keine Ahnung von Python oder vom entpacken.
In Python kann man es so macht das wenn man mit der Maus über das Item geht die Rechtsklick Funktion deaktiviert wird, nur solange man mit der Maus über das Item ist wenn nicht dann sollte es gehen, ich selber habe keine Ahnung wie man sowas schreibt aber bin mir ziemlich sicher das es geht.

@MrPlayboy deine quest ist bissel fail

MrPlayboy 06/23/2013 16:34

Bei mir geht die 1A o_O

Noa_ 06/23/2013 16:42

PHP Code:

quest itemweg begin--regel
    state start begin
--state start
        when login with pc
.map_index()==MAPINDEX begin
            set_state
(zeit)--setstate zeit
        end
--end von when login
    end
--end von state
    state zeit begin
--state zeit
        timer
("zeitt"1)--timer im statenormaleweise kommt der im when block

        when zeitt
.timer begin--when zeitt
            
if pc.count_item(ITEMVNUM) >=1 then--if count
                say
("Du hast ITEMVNUM dabei, du kannst auf dieser Map nicht bleiben")
                
pc.warp_to_village()
            
end--ende vom if
            else--else 
von wasdas if wurde schon vorher beendet
                set_state
(zeitt)--es gibt kein state mit dem name "zeitt"
            
end--ende von was? if wurde schon beendet
        end
--end von when zeitt
    end
--end von zeit
end
--regel 


Benhero 06/23/2013 16:43

Quests kannst du Knicken wenn du durch die Quest einen Klick verhindern möchtest..
Und zwar aus mehreren Gürnden.
Quote:

1. Type müsste auf 18 gestellt werden
2. Macht der Neue Type Probleme mit den Alten Funktionen der Items z.B. Tränke, Segen des Drachen, Segen des Leben, ....
3. Kannst du in einer Quest nicht die Funktion von oben genannten Simulieren. Da diese eben Type und Value abhängig sind.
Die einfachste methode ist es einfach die Verbotenen Items alle in ein Array in der questlip zu backen (auch das Lager item) und beim Betreten vorher prüfen lassen ob Item vorhanden sind im inventar die in der liste sind. Wenn ja -> Zugang verbieten...

Mfg. Benhero

MrPlayboy 06/23/2013 16:49

Nein mit Quests ist es nicht ünmöglich, bei einer Abfrage ist es schei* egal welcher Type das Item ist

@ ENUM:
Wenn ihr das end vor dem else weg mache kommtn error...

Noa_ 06/23/2013 16:53

Quote:

Originally Posted by MrPlayboy (Post 23439078)
Nein mit Quests ist es nicht ünmöglich, bei einer Abfrage ist es schei* egal welcher Type das Item ist

@ ENUM:
Wenn ihr das end vor dem else weg mache kommtn error...

Benhero:"Quests kannst du Knicken wenn du durch die Quest einen Klick verhindern möchtest.."

123snake123 06/23/2013 16:54

Also bei mir funzt die quest auch nicht

Benhero 06/23/2013 16:57

Glaubst du das sicher MrPlayboy?... ich glaube nicht das du soviel erfahrung hast wie ich (facepalm).. Es ist nicht unwichtig. Probiers doch aus. Fang das anziehen einer RÜstung z.B. ab und verhindere es.. oder verhinde den Segen des Drachen o.o
Ich glaube ich queste länger wie du.. Möchtergern...

123snake123 06/23/2013 16:58

Streitet euch nicht damit wird mir nicht geholfen^^

Noa_ 06/23/2013 17:03

Quote:

Originally Posted by 123snake123 (Post 23439301)
Streitet euch nicht damit wird mir nicht geholfen^^

wir haben dir bereits Tipps gegeben (ich eher weniger aber ein Ratschlag),
wie Ben schon sagte ist eine Abrage einfacher als den Typ des Items zu ändern, jedoch nicht die beste Möglichkeit.

Du kannst jetzt die Quest selber machen oder jmd fragen ob er sie dir macht oder befolgst mein Ratschlag und besorgst dir ein Python Typ, der dir den Script schreibt.

123snake123 06/23/2013 17:09

soweit wie ich jetzt bin bin ich schon seit Wochen, ich suche doch hier jemand der mit die phyton oder quest schreibt

Noa_ 06/23/2013 17:15

es gibt hier schon die questerstellung, versuche es mal dort
[Only registered and activated users can see links. Click Here To Register...]

x'Radon 06/23/2013 21:06

Vllt so :

Spoiler:
PHP Code:

quest itemweg begin
    state start begin
        when login with pc
.map_index()==MAPINDEX begin
            set_state
(zeit)
        
end
    end
    state zeit begin
        timer
("zeitt"1)

        
when zeitt.timer begin
            
if pc.count_item(ITEMVNUM) >=1 then
                say
("Du hast ITEMVNUM dabei, du kannst auf dieser Map nicht bleiben")
                
pc.remove_item(ITEMVNUM)
            
end
        end
    end
end 


123snake123 06/25/2013 18:51

Warte dort jetzt seid 2 tagen aber keiner hilft mir^^
Wie jedes mal eigentlich, deswegen schreibe ich da ungern was rein.

123snake123 06/26/2013 19:32

Immer noch keine Antwort

Benhero 06/26/2013 19:45

hier auf die schnelle geschrieben.. keine garantie.. wenn fehler auftreten bitte sagen..

PHP Code:

quest forbid begin
    state start begin
        when login begin
            local bidItems 
= {
                [
1] = {
                    
10,
                    
11,
                    
12,
                    
13,
                },
                [
INDEX] = {
                    
VNUM verboten 1,
                    
VNUM verboten 2,
                },
            }
            for 
1table.getn(bidItems[pc.get_map_index()] do
                if 
pc.count_item(bidItems[pc.get_map_index()][i] > 0 then
                    syschat
("Du hast ein verbotenes Item dabei.")
                    
syschat("Verbotenes Item: " ..item_name(bidItems[pc.get_map_index()]))
                    
warp_to_village()
                
end
            end
        end
    end
end 

Greatz Benhero

123snake123 06/26/2013 20:12

Auf die Gefahr hin das du nun genervt bist oder mich auslachst^^

Ich blicke da nicht ganz durch wo der index hin muss und wo die item vnum

Benhero 06/26/2013 20:17

PHP Code:

 [INDEX] = {
                    
VNUM verboten 1,
                    
VNUM verboten 2,
                }, 

z.B.
PHP Code:

 [1] = {
                    
10,
                    
11,
                    
12,
                    
13,
                }, 

Verbotener Map Index: 1 (rotes reich map1)
Verbotene Items: Schwert+0,+1,+2,+3

so gehört es da rein :) oben in das array "bidItems"
Fragen sind da um gestellt zu ewrden.

Greatz Benhero

123snake123 06/26/2013 20:21

PHP Code:

quest forbid begin
    state start begin
        when login begin
            local bidItems 
= { 203
                
[1] = {
                    
10,
                    
11,
                    
12,
                    
13,
                },
                [
INDEX] = {
                    
27006,
                    
                },
            }
            for 
1table.getn(bidItems[pc.get_map_index()] do
                if 
pc.count_item(bidItems[pc.get_map_index()][i] > 0 then
                    syschat
("Du hast ein verbotenes Item dabei.")
                    
syschat("Verbotenes Item: " ..item_name(bidItems[pc.get_map_index()]))
                    
warp_to_village()
                
end
            end
        end
    end
end 

so richtig?

Benhero 06/26/2013 20:34

Quote:

[INDEX]
Muss noch in den Index der Map geändert werden..

Greatz Benhero

123snake123 06/26/2013 20:46

PHP Code:

quest forbid begin
    state start begin
        when login begin
            local bidItems 
= { 203
                
[1] = {
                    
10,
                    
11,
                    
12,
                    
13,
 
                },
                [
203] = {
                    
27006,
                    
                },
            }
            for 
1table.getn(bidItems[pc.get_map_index()] do
                if 
pc.count_item(bidItems[pc.get_map_index()][i] > 0 then
                    syschat
("Du hast ein verbotenes Item dabei.")
                    
syschat("Verbotenes Item: " ..item_name(bidItems[pc.get_map_index()]))
                    
warp_to_village()
                
end
            end
        end
    end
end 

wofür ist die 10,11,12,13?

VPC zeigt folgenden Fehler:

syntax error: [string "start"]:8: ´)' expected near `begin'
forbid.quest:21:Abort trap (core dumped)

Mein Indes ist 203 und das Item was ich verbieten will ist 27006

Benhero 06/26/2013 20:50

PHP Code:

quest forbid begin
    state start begin
        when login begin
            local bidItems 
= { 203
                
[1] = {
                    
10,
                    
11,
                    
12,
                    
13,
 
                },
                [
203] = {
                    
27006,
                    
                },
            }
            for 
1table.getn(bidItems[pc.get_map_index()]) do
                if 
pc.count_item(bidItems[pc.get_map_index()][i]) > 0 then
                    syschat
("Du hast ein verbotenes Item dabei.")
                    
syschat("Verbotenes Item: " ..item_name(bidItems[pc.get_map_index()]))
                    
warp_to_village()
                
end
            end
        end
    end
end 


123snake123 06/26/2013 21:02

[Only registered and activated users can see links. Click Here To Register...]

hm jetzt kommt das^^

Benhero 06/26/2013 21:03

Poste die Quest nochmal... du müsstest irgendwo nochmal was verändert haben

Greatz Benhero

123snake123 06/26/2013 21:09

PHP Code:

quest forbid begin
    state start begin
        when login begin
            local bidItems 
= { 203
                
[1] = {
                    
10,
                    
11,
                    
12,
                    
13,
 
                },
                [
203] = {
                    
27006,
                    
                },
            }
            for 
1table.getn(bidItems[pc.get_map_index()]) do
                if 
pc.count_item(bidItems[pc.get_map_index()][i]) > 0 then
                    syschat
("Du hast ein verbotenes Item dabei.")
                    
syschat("Verbotenes Item: " ..item_name(bidItems[pc.get_map_index()]))
                    
warp_to_village()
                
end
            end
        end
    end
end 



All times are GMT +2. The time now is 05:53.

Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.