Gothic Online Forums
Zmiana wyglądu - brak działania - Printable Version

+- Gothic Online Forums (https://archive.gothic-online.com)
+-- Forum: Community (https://archive.gothic-online.com/forum-18.html)
+--- Forum: Polish (Polski) (https://archive.gothic-online.com/forum-19.html)
+---- Forum: Pomoc (https://archive.gothic-online.com/forum-23.html)
+---- Thread: Zmiana wyglądu - brak działania (/thread-2260.html)

Pages: 1 2


Zmiana wyglądu - brak działania - Jenkins1131 - 22.11.2017

Hej,

Od dłuższego czasu borykam się z "przepisaniem" skryptu na zmianę wyglądu (link do niego tutaj https://pastebin.com/DXKh6DyF) do publicznego skryptu marcela. Ilekroć czasu nie spędzę na kombinowaniu, to i tak serwer tego skryptu nie wczytuje. Czy mógłby mi ktoś z tym pomóc? Tutaj jest link do tematu marcela: http://gothic-online.com.pl/forum/showthread.php?tid=2098


RE: Zmiana wyglądu - brak działania - Sative - 22.11.2017

Może FUNCTION i LOCAL pisz małymi?


RE: Zmiana wyglądu - brak działania - Jenkins1131 - 22.11.2017

Niestety efekt ten sam, dalej nie działa.


RE: Zmiana wyglądu - brak działania - Patrix - 22.11.2017

Sative Wrote:Może FUNCTION i LOCAL pisz małymi?

To się nie tyczy tylko słów kluczowych function i local, Jenkins, Squirrel to nie PHP, który jest obojętny na wielkość liter. Wszystkie słowa kluczowe powinny być pisane z małych liter.


RE: Zmiana wyglądu - brak działania - Jenkins1131 - 22.11.2017

Skrypt ten działa bezproblemowo na zwykłym, domyślnym skrypcie, jednak przy GM'ie marcela sprawa ma się znacznie inaczej. Skrypt jego w większości różni się od zwykłych, zwłaszcza, że wykorzystuje case i prawdopodobnie ma to też związek z niedziałaniem mojego skryptu przez samą składnię. Starałem się przebudować to pod case, aczkolwiek bez rezultatu. Jak mówię, prawdopodobnie jest to wina tej składni, co może dowodzi sam fakt, że silnik nie wykrywa i nie otwiera drawa gdy kliknę F7.


RE: Zmiana wyglądu - brak działania - Profesores - 22.11.2017

Skoro na domyślnym skrypcie działa tak jak powinno, to może w złej kolejności deklarujesz funkcje? Chociaż nie wiem czy to może mieć w squirrelu jakikolwiek wpływ. Spróbuj też wyjebać "local" sprzed keyHandler'a.

Nie ma żadnych błędów w logach?

Daj printa pod F7, zobacz czy w ogóle łapie klawisz. Musisz ogarnąć w którym momencie coś się pierdzieli.


RE: Zmiana wyglądu - brak działania - Jenkins1131 - 22.11.2017

Klawisza niestety mi też coś nie wczytuje, a usunięcie sprzed keyHandler'a "local" niestety też nie poskutkowało. Poniżej zamieszczam logi i z tego co widzę nie wskazują na żaden błąd z odczytem.
https://pastebin.com/U0zkXtWu


RE: Zmiana wyglądu - brak działania - Profesores - 22.11.2017

A pokaż kod z poprawioną wielkością liter.


RE: Zmiana wyglądu - brak działania - Jenkins1131 - 22.11.2017

Trzymaj,

Code:
local headmodel = ["Hum_Head_FatBald","Hum_Head_Fighter","Hum_Head_Pony","Hum_Head_Bald","Hum_Head_Thief","Hum_Head_Psionic","Hum_Head_Babe"];
local bodymodel = ["Hum_Body_Naked0","Hum_Body_Babe0"];


local texture0 = Texture(467,3656,1500,1500,"LOG_PAPER.TGA");
local draw0 = Draw(723,3800, "<- Zmien Plec ->");
local draw1 = Draw(704,4056, "<- Zmien Cialo ->");
local draw2 = Draw(691,4312, "<- Zmien Glowe ->");
local draw3 = Draw(691,4584, "<- Zmien Twarz ->");
local draw4 = Draw(1062,4896, "Wyjdz");

local glowa = 0;
local cialo = 0;
local plec = 0;
local twarz = 0;
local opcja = 0;

function show_Visual_Change()
{
texture0.visible = true;
draw0.visible = true;
draw0.setColor(255,0,0);
draw1.visible = true;
draw2.visible = true;
draw3.visible = true;
draw4.visible = true;
openGraphic("wyglad");
setCursorVisible(false);
opcja = 1;
playAni(heroId,"S_THRONE_S1");
}

function hide_Visual_Change()
{
texture0.visible = false;
draw0.visible = false;
draw1.visible = false;
draw2.visible = false;
draw3.visible = false;
draw4.visible = false;
local wyglad = getPlayerVisual(heroId);
callServerFunc("setPlayerVisual",heroId, wyglad.bodyModel, wyglad.bodyTxt, wyglad.headModel, wyglad.headTxt);
closeGraphic();
}

function changeOpcjaVis()
{
     if(opcja > 5){opcja = 1;}
     if(opcja < 1){opcja = 5;}
    
     draw0.setColor(255,255,255);
     draw1.setColor(255,255,255);
     draw2.setColor(255,255,255);
     draw3.setColor(255,255,255);
     draw4.setColor(255,255,255);
    
     if(opcja == 1){draw0.setColor(255,1,1);}
     else if(opcja == 2){draw1.setColor(255,1,1);}
     else if(opcja == 3){draw2.setColor(255,1,1);}
     else if(opcja == 4){draw3.setColor(255,1,1);}
     else if(opcja == 5){draw4.setColor(255,1,1);}
}

function changeSpecificMenuValue(val)
{
      if(opcja == 1)
      {
           plec = plec + val;
           
           if(plec > 1){plec = 0}
           else if(plec < 0){plec = 1}
      }else if(opcja == 2)
      {
           cialo = cialo + val;
           
           if(cialo > 15){cialo = 0}
           else if(cialo < 0){cialo = 15}
      }else if(opcja == 3)
      {
           glowa = glowa + val;
           
           if(glowa > 7){glowa = 0}
           else if(glowa < 0){glowa = 7}
      }else if(opcja == 4)
      {
           twarz = twarz + val;
           
           if(glowa > 144){glowa = 0}
           else if(glowa < 0){glowa = 144}
      }
      
      setPlayerVisual(heroId, bodymodel[plec], cialo, headmodel[glowa], twarz);
}


////////////////////////////////////////////////////////////////////////////

local function keyHandler(key)
{
     if(EnabledGraphic() == false)
     {
           if (key == KEY_F7)
           {
           show_Visual_Change();
           }
     }else{
           if(EnabledGraphic() == "wyglad")
           {
                if (key == KEY_F7)
                {
                hide_Visual_Change();
                }    
           }           
     }
    
     if(EnabledGraphic() == "wyglad")
     {
           if(key == KEY_DOWN) { opcja = opcja + 1; changeOpcjaVis();}
           else if(key == KEY_UP) { opcja = opcja - 1; changeOpcjaVis();}
           else if(key == KEY_LEFT) {changeSpecificMenuValue(-1);}
           else if(key == KEY_RIGHT) {changeSpecificMenuValue(1);}
           else if(key == KEY_RETURN)
           {
                if(opcja == 5)
                {
                hide_Visual_Change();
                }
           }
     }
}

addEventHandler("onKey", keyHandler);


function CMD_Wyglad(params)
{
    local args = sscanf("dddd", params);
    if (!args)
    {
        addMessage(255, 255, 255, "/wyglad <plec 0 -1> <cialo> <glowa 0 - 6> <twarz>");
        return;
    }
    
    setPlayerVisual(heroId, bodymodel[args[0]], args[1], headmodel[args[2]], args[3]);
    addMessage(255, 255, 255, "Ustawiono wyglad!");
    local wyglad = getPlayerVisual(heroId);
    callServerFunc("setPlayerVisual",heroId, wyglad.bodyModel, wyglad.bodyTxt, wyglad.headModel, wyglad.headTxt);    
}

addCommand("wyglad", CMD_Wyglad)



RE: Zmiana wyglądu - brak działania - Toworish - 22.11.2017

to strona klienta, jeśli są jakieś problemy to wyświetli ci je w grze pod ~ i po wpisaniu komendy view error

tak samo printy wyświetli co pod ~
chociaż tutaj zawsze możesz użyć: Chat.print(int r, int g, int b,string text);

możesz spróbować swój callBack do onKey zmienić na to: tak samo robi to Marcel, ale to raczej nie ma prawa w żaden sposób pomóc:
Code:
addEventHandler("onKey", function(key){
    if(EnabledGraphic() == false)
    {
          if (KEY == KEY_F7)
          {
          show_Visual_Change();
          }
    }else{
          if(EnabledGraphic() == "wyglad")
          {
               if (KEY == KEY_F7)
               {
               hide_Visual_Change();
               }  
          }          
    }
   
    if(EnabledGraphic() == "wyglad")
    {
          if(KEY == KEY_DOWN) { opcja = opcja + 1; changeOpcjaVis();}
          else if(KEY == KEY_UP) { opcja = opcja - 1; changeOpcjaVis();}
          else if(KEY == KEY_LEFT) {changeSpecificMenuValue(-1);}
          else if(KEY == KEY_RIGHT) {changeSpecificMenuValue(1);}
          else if(KEY == KEY_RETURN)
          {
               if(opcja == 5)
               {
               hide_Visual_Change();
               }
          }
    }
});