Register for your free account! | Forgot your password?

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

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

Advertisement



[Quest]Komische Zeilenumbrüche bei mehreren say("TEXT")'s

Discussion on [Quest]Komische Zeilenumbrüche bei mehreren say("TEXT")'s within the Metin2 Private Server forum part of the Metin2 category.

Closed Thread
 
Old   #1

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
[Quest]Komische Zeilenumbrüche bei mehreren say("TEXT")'s

-- Die Quest hat keinen Fehler (von der FUNKTION her) und macht alles wie sie es soll deswegen poste ich es auch hier und nicht in der Questkontrolle --

Ich habe das Problem, dass der Text beim anklicken ganz komisch angezeigt wird. Wenn man Lv 1 - Lv 29 ist wird dieser Text angezeigt:

(So soll er auch angezeigt werden also hier ist noch kein Fehler!)

Wenn man Lv 30 - Lv 74 ist wird dieser Text angezeigt:

(Vom Text her auch kein Fehler nur hier sieht man schon, dass etwas mit dem Umbruch nicht stimmt, wenn man es mit der Quest vergleicht)

Wenn man Lv 75+ ist wird dieser Text angezeigt:

(Hier sieht man SEHR DEUTLICH, dass die Umbrüche nicht wie in der Quest sind!)

Hier der Teil der Quest:
PHP Code:
when 20348.click begin
            
if pc.get_level() < 30 then
                say_title
("Wächter des Dämonenturmes")
                
say("")
                
say("Du hast noch nicht genügend Kampferfahrung")
                
say("gesammelt!")
                
say("")
                
say_reward("Komme wieder wenn du Level 30 erreicht hast.")
                return
            
end
            
if pc.get_level() > 29 and pc.get_level() < 75 then
                say_title
("Wächter des Dämonenturmes")
                
say("")
                
say("Der Dämonenturm ist die Heimat von schrecklichen")
                
say("Kreaturen, die nichts lieber tun, als dich zu töten.")
                
say("Die Boni 'Stark gegen Untote' und 'Pfeilwiderstand'")
                
say("könnten dir sehr hilfreich sein!")
                
say("")
                
say_reward("Möchtest du den Dämonenturm wirklich betreten?")
                
local betreten select("Dämonenturm betreten""Abbrechen"
                if 
betreten == 1 then 
                    pc
.warp(216500727000)                 
                
end
                
if betreten == 2 then
                    
return
                
end
            end
            
if pc.get_level() > 74 then
                say_title
("Wächter des Dämonenturmes")
                
say("")
                
say("Der Dämonenturm ist die Heimat von schrecklichen")
                
say("Kreaturen, die nichts lieber tun, als dich zu töten.")
                
say("Die Boni 'Stark gegen Untote' und 'Pfeilwiderstand'")
                
say("könnten dir sehr hilfreich sein!")
                
say("")
                
say_reward("Da du Level 75 erreicht hast, kannst du zwischen dem")
                
say_reward("normalen Eintritt und dem Eintritt mit deiner Gruppe")
                
say_reward("wählen.")
                
local betreten_75 select("Dämonenturm normal betreten""Dämonenturm als Gruppe betreten""Abbrechen"
                if 
betreten_75 == 1 then 
                    pc
.warp(216500727000)                 
                
end
                
if betreten_75 == 2 then
                    
if party.is_leader() then
                        say_title
("Wächter des Dämonenturmes")
                        
say("")
                        
say("Bitte achte darauf, dass sich alle Gruppenmitglieder")
                        
say("im Tempel befinden!")
                        
say("")
                        
say_reward("Möchtest du den Dämonenturm wirklich mit deiner")
                        
say_reward("Gruppe betreten?")
                        
local gruppe_betreten select("Dämonenturm als Gruppe betreten""Abbrechen")
                        if 
gruppe_betreten == 1 then
                            d
.join(66special.devil_tower[1][1], special.devil_tower[1][2])
                            
d.spawn_mob(8015120615)
                        
end
                        
if gruppe_betreten == 2 then
                            
return
                        
end
                    end
                    
if party.is_party() and not party.is_leader() then
                        say_title
("Wächter des Dämonenturmes")
                        
say("")
                        
say("Du kannst diese Option nur ausführen, wenn du der")
                        
say("Leiter einer Gruppe bist.")
                        
say("")
                        
say_reward("Du bist nicht der Leiter der Gruppe.")
                        return
                    
end
                    
if not party.is_party() then
                        say_title
("Wächter des Dämonenturmes")
                        
say("")
                        
say("Du kannst diese Option nur ausführen, wenn du dich")
                        
say("in einer Gruppe befindest.")
                        
say("")
                        
say_reward("Du befindest dich in keiner Gruppe.")
                        return
                    
end
                end
                
if betreten_75 == 3 then
                    
return
                
end
            end
        end 
(ist alles etwas weiter rechts weil ich das jetzt aus der Quest rausgezogen habe)

Was mir aufgefallen ist, ist, dass die Umbrüche genau da zu viel sind, wo sie im Text davor vorhanden sind.
Also z.B. ist ja im Text von Lv 1 - Lv 29 der Text so aufgebaut:
Zeile1: NPC
Zeile2: -leer-
Zeile3: TEXT
Zeile4: TEXT
Zeile5: -leer
Zeile6: TEXT

In dem Text von Lv 30 - Lv 74 ist dann in der 5. Zeile die Leerzeile zu viel (--> in Zeile 5 ist beim 1. Text ja eine Leerzeile beim 2. Text sollte die aber nicht da sein ist aber da)

Und in dem Text ab Lv 75 ist wieder in der 5. Zeile die Leerzeile zu viel und unten noch mehrere zu viel die ich mir überhaupt nicht erklären kann.

Bitte um Hilfe!
rollback is offline  
Old 04/24/2014, 20:13   #2
 
lfcmaus's Avatar
 
elite*gold: 205
Join Date: Jun 2010
Posts: 5,334
Received Thanks: 2,510
Du hast nur eine Beschränkte Zeichenanzahl je Zweile die im Questfenster angezeigt werden kann ist diese erreicht macht er automatisch diese umbrüche also vorher richtig abzählen bzw nen Auge für entwickeln ob der Text in eine Zeile passt oder nicht.
Also einfach neu anpassen wenn es dich stört

Du kannst auch alle sin eine Zeile setzen das dem Spiel egal er macht einen Umbruch automtisch aller X-Zeichen.
lfcmaus is offline  
Old 04/24/2014, 20:19   #3

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Quote:
Originally Posted by lfcmaus View Post
Du hast nur eine Beschränkte Zeichenanzahl je Zweile die im Questfenster angezeigt werden kann ist diese erreicht macht er automatisch diese umbrüche also vorher richtig abzählen bzw nen Auge für entwickeln ob der Text in eine Zeile passt oder nicht.
Also einfach neu anpassen wenn es dich stört

Du kannst auch alle sin eine Zeile setzen das dem Spiel egal er macht einen Umbruch automtisch aller X-Zeichen.
Ich habe schon darauf geachtet, dass in keiner Zeile mehr als 52 Zeichen sind (da entsteht der Umbruch, habe ich vorher getestet).
Wie du aber auf den Screens siehst sind die Zeilen die ich meine einfach leer ... Hat also nichts damit zu tun x.x
rollback is offline  
Old 04/24/2014, 20:24   #4
 
lfcmaus's Avatar
 
elite*gold: 205
Join Date: Jun 2010
Posts: 5,334
Received Thanks: 2,510
Nochmals Leerzeilen entstehen durch Umbrüche an falschen Stellen bei falscher Kodierung.
Und noch als zusätzlicher Tipp.:

PHP Code:
                if betreten == 1 then 
                    pc
.warp(216500727000)                 
                
end
                
if betreten == 2 then
                    
return
                
end 
sowas geht garnicht ist ja kaum mit anzusehen..... bitte benutze ordentliche Codes als Quests
lfcmaus is offline  
Old 04/24/2014, 20:34   #5
 
elite*gold: 2
Join Date: Jun 2013
Posts: 1,063
Received Thanks: 1,725
Noch als Tipp:

say('Das[ENTER]ist[ENTER]ein[ENTER][ENTER]langer text')

dabei kommt raus:
Das
ist
ein

langer text
ProfessorEnte is offline  
Thanks
2 Users
Old 04/24/2014, 20:38   #6

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Quote:
Originally Posted by lfcmaus View Post
Nochmals Leerzeilen entstehen durch Umbrüche an falschen Stellen bei falscher Kodierung.
Und noch als zusätzlicher Tipp.:

PHP Code:
                if betreten == 1 then 
                    pc
.warp(216500727000)                 
                
end
                
if betreten == 2 then
                    
return
                
end 
sowas geht garnicht ist ja kaum mit anzusehen..... bitte benutze ordentliche Codes als Quests
Hilft mir jetzt kaum weiter. Ich fange grad mit dem Questen an und habe nie vor einen Server online zu stellen ... Ich mache das lediglich zum Spaß.

Kannst du mir sagen was deiner Meinung nach ordentliche Codes wären?
Und mit der Kodierung hilfts mir jetzt auch kaum weiter. Die Quest ist auf die Kodierung ANSI gestellt falls du das meinst.
rollback is offline  
Old 04/24/2014, 21:24   #7

 
AntikerGolem's Avatar
 
elite*gold: 0
Join Date: Aug 2011
Posts: 2,125
Received Thanks: 844
reported, kommt hier rein

AntikerGolem is offline  
Old 04/24/2014, 21:25   #8

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Quote:
Originally Posted by 'Awu View Post
reported, kommt hier rein

Lesen scheint nicht deine stärke zu sein x.x
-- Die Quest hat keinen Fehler (von der FUNKTION her) und macht alles wie sie es soll deswegen poste ich es auch hier und nicht in der Questkontrolle --
rollback is offline  
Old 04/25/2014, 21:35   #9

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
bump
rollback is offline  
Old 04/26/2014, 02:05   #10
 
lfcmaus's Avatar
 
elite*gold: 205
Join Date: Jun 2010
Posts: 5,334
Received Thanks: 2,510
mit codes sind else und elseif gemeint

zb
PHP Code:
local main select ("ja","nein")
if 
main == 1 then
 say
("blablabla")
elseif 
main == 2 then
 
return
end 
mit der kodierung ist was anderes gemeint ansi und utf-8 sind nur für umlaute sonderzeichen etc gedacht

aber klugscheißen kannst gern in deiner quest .... sektion hat sich null verändert eher verschlechtert have fun!
lfcmaus is offline  
Old 04/26/2014, 02:31   #11

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Quote:
Originally Posted by lfcmaus View Post
mit codes sind else und elseif gemeint

zb
PHP Code:
local main select ("ja","nein")
if 
main == 1 then
 say
("blablabla")
elseif 
main == 2 then
 
return
end 
mit der kodierung ist was anderes gemeint ansi und utf-8 sind nur für umlaute sonderzeichen etc gedacht

aber klugscheißen kannst gern in deiner quest .... sektion hat sich null verändert eher verschlechtert have fun!
Ich wüsste jetzt nicht wo ich geklugscheissert habe
Und wieso sollte man elseif machen wenn ein einfaches if das gleiche bewirkt? Ich sehe das so oft aber habe noch nie eine Begründung gesehen
rollback is offline  
Old 04/26/2014, 13:41   #12
 
elite*gold: 39
Join Date: Jun 2009
Posts: 500
Received Thanks: 212
WTF.
Mehr kann ich dazu, was hier gepostet wurde, nicht sagen.
Niemand hat darauf geantwortet, woher die leeren Zeilen kommen (okay, einige haben Lösungsansätze geliefert und das ist ja auch schön) und manche meinen auch noch sich bei ihm beschweren zu müssen da er "geklugscheißert" hat (wo bitte?).
Naja, Metin2 P-Server EPvP - mehr muss man dazu wohl nicht sagen.

Der Grund, warum diese leeren Zeilen entstehen ist vermutlich dieser: Wenn du in einer Zeile exakt die max. Anzahl an Breite verbraucht hast, macht er einen automatischen Zeilenumbruch. Wenn du dann das say() beendest und ein neues say() machst, wird ein weiterer Zeilenumbruch erstellt (der normale manuelle Umbruch). D.h. wenn die Zeile davor die max. Anzahl an Zeichen hatte wird in der nächsten Zeile eine Zeile freigelassen - dank dem automatischen Zeilenumbruch.

Verhindern kannst du dies durch 2 Möglichkeiten:
a) Du schreibst das letzte Wort in die nächste Zeile, so dass kein automatischer Zeilenumbruch erfolgt.
b) Du beendest das say() nicht sondern schreibst direkt hinter dem Punkt weiter, da sowieso ein automatischer Zeilenumbruch erfolgt und du keinen manuellen machen musst.

Imho ist Option a) besser (von wegen Übersichtlichkeit) - aber deine Entscheidung.

Kind Regards
.HC'Destrox is offline  
Thanks
1 User
Old 04/26/2014, 13:59   #13
 
lfcmaus's Avatar
 
elite*gold: 205
Join Date: Jun 2010
Posts: 5,334
Received Thanks: 2,510
über setzt dir doch einfach mal was du schreibst!?

variable betreten = auswahl ("ja","nein")
ist variable betreten = 1 dann
gib folgendes aus/zurück
ende
ist variable betreten = 2 dann
gib folgendes aus/zurück
ende

somit macht er in dem fall 2 prüfaufgaben er testet aus ob betreten nun 1 ist und ob betreten 2 ist

schreibst du aber ein elseif wäre der code nur eine prüfung, weil übersetzt

variable betrten = auswahl ("ja","nein")
ist variable betreten = 1 dann
gib folgendes aus/zurück
oder ist variable betreten = 2 dann
gib das aus/zurück
ende


sparst somit leistung und performence ein stell dir mal vor du schreibst eine riesen auswahl mit zb
5-6-7 Auswahlmöglichkeiten dann würde er bei jedem button alle abfragen starten und diese auf true oder false
testen mit einen elseif prüft er die ganze variable einmalig ab und gibt die werte zurück

Deswegen schreibt man elseif bzw else

elseif verwendet man zb bei auswahl bzw. bedingungen ab 3 Stk.
hast du einfache simple auf deutsch ja nein bedingen bzw. 1 und 2 bedingungen dann muss er ja nur prüfen true oder false

da würde dann um ebenfalls codierarbeit zusparen ein einfaches else auch aus reichen zb.


if main = select ("Ich möchte betreten","abbrechen")
if main = 1 then
pc.warp(xxx,xxx)
else
return
end


und wenn du die sache mit der kodierung etc nicht hinbekommst weil du noch questanfänger bist und
das noch nicht lange machst
setz dich hin und schreibs sie dir per hand manuell um,ist ne arbeit von ca.20min für dich
jedenfalls wärste dann jetzt schon, statts hier zu warten bis dir jemand die antwort 1:1 hinschreibt.

weiß gar nicht ob es solche leute überhaupt noch gibt.

Quote:
Originally Posted by .HC'Destrox View Post
WTF.
Mehr kann ich dazu, was hier gepostet wurde, nicht sagen.
Niemand hat darauf geantwortet, woher die leeren Zeilen kommen (okay, einige haben Lösungsansätze geliefert und das ist ja auch schön) und manche meinen auch noch sich bei ihm beschweren zu müssen da er "geklugscheißert" hat (wo bitte?).
Naja, Metin2 P-Server EPvP - mehr muss man dazu wohl nicht sagen.

Der Grund, warum diese leeren Zeilen entstehen ist vermutlich dieser: Wenn du in einer Zeile exakt die max. Anzahl an Breite verbraucht hast, macht er einen automatischen Zeilenumbruch. Wenn du dann das say() beendest und ein neues say() machst, wird ein weiterer Zeilenumbruch erstellt (der normale manuelle Umbruch). D.h. wenn die Zeile davor die max. Anzahl an Zeichen hatte wird in der nächsten Zeile eine Zeile freigelassen - dank dem automatischen Zeilenumbruch.

Verhindern kannst du dies durch 2 Möglichkeiten:
a) Du schreibst das letzte Wort in die nächste Zeile, so dass kein automatischer Zeilenumbruch erfolgt.
b) Du beendest das say() nicht sondern schreibst direkt hinter dem Punkt weiter, da sowieso ein automatischer Zeilenumbruch erfolgt und du keinen manuellen machen musst.

Imho ist Option a) besser (von wegen Übersichtlichkeit) - aber deine Entscheidung.

Kind Regards
Zu dir.:
a steht es schon da wenn er damit nichts anfangen kann aufgrund von wissenslücken die man ausbessern kann dann muss er probieren oder ausweich möglichkeiten nutzen,welche hier auch genannt wurden

b bin ich schon bisschen länger hier unterwegs in der ganzen materie besonders in sachen quest.scripten und coden & wem ich mein wissen zu kommen lassen in welchem Maße das entscheide ich selbst
lfcmaus is offline  
Thanks
2 Users
Old 04/26/2014, 14:11   #14
 
elite*gold: 39
Join Date: Jun 2009
Posts: 500
Received Thanks: 212
lfcmaus... du kannst mir glauben ich bin ebenfalls schon sehr lange in dieser Materie, auch wenn ich - wie jeder andere auch - ständig noch was dazu lerne. Er kann damit natürlich etwas anfangen - er wollte wissen wie er diese "leeren Zeilen" verhinden kann und das kann er damit (vermutlich) lösen. Es steht nur da, dass es automatische Zeilenumbrüche gibt - aber ich bezweifle dass er daraus heraus wissen kann, dass es dann trotzdem noch ein "manuellen" Zeilenumbruch durch ein extra say() gibt.

Zu deiner Einstellung "wem ich mein wissen zu kommen lassen in welchem Maße das entscheide ich selbst":
Dagegen habe ich bisher noch nichts gesagt, aber das kann ich nun ja nachholen; würde ich es können, würde ich mein gesamtes Wissen jedem der es haben will zur Verfügung stellen - da es dann wesentlich nützlicher wäre als wenn nur ich es habe. Meiner Meinung nach sollte jeder zumindest den Willen haben anderen sein eigenes Wissen mitzugeben - auch wenn das manchmal zu aufwendig ist und man es deswegen nicht tut. Aber etwas aus Prinzip und Wille nicht zu verraten, was für einen selber keinen direkt Nachteil hat (wie z.B. großer Aufwand o.ä.) - naja, finde ich lediglich selbstsüchtig.

Naja, fürs erste genug geschrieben. Falls du eine andere Einstellung dazu hast - dann kann ich daran wahrscheinlich auch nichts ändern. Meine Meinung kennst du nun und das ist es was ich wollte.

€dit: BTW: es ging hier überhaupt nicht um sein Stil ob er "if" oder "elseif" schreibt, und außerdem ist ein "else return end" meistens sinnlos bei solchen teilen.

Kind Regards
.HC'Destrox is offline  
Thanks
1 User
Old 04/26/2014, 14:28   #15

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Danke an alle.

Bevor das hier ausartet --> #closerrequest
rollback is offline  
Closed Thread




All times are GMT +2. The time now is 21:59.


Powered by vBulletin®
Copyright ©2000 - 2024, 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 ©2024 elitepvpers All Rights Reserved.