Ikarus (Pakiet skryptów) 413325 1020

O temacie

Autor orcwarrior

Zaczęty 11.06.2010 roku

Wyświetleń 413325

Odpowiedzi 1020

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Będzie zawsze przepełniało stos, ponieważ:
1. Jest za dużo przedmiotów (czyli około 31+).
2. Są dwa MEM_StackPos.position, co jeszcze bardziej ogranicza.

W skrócie, dasz radę pobrać do 30 przedmiotów na raz, ale jak będzie więcej, to będzie crashowało.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Przyznam się bez bicia, że funkcję nie ja napisałem :wstyd: jednak prosiłbym o wyjaśnienie co to jest MEM_StackPos.position... nie wiem co to może być, chyba jakiś Loop. Druga rzecz to np. to:
MEM_InitLabels(); ?
MEM_StackPos = _^(ContentParserAddress + zCParser_stack_stackPtr_offset);Coś z parserem ? I zawartością skryptów i ich adresów :F ? (po mojemu, czyli łamanemu: Przypisz pointer do instancji[Adres_Parsera + Offset z klasy Prasera]) ???
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
MEM_Stackpos.position to pętla.Taki zapis:

zmienna = MEM_Stackpos.position;
hero.attribute[ATR_HITPOINTS] -= 1;
MEM_Stackpos.position = zmienna;
będzie cały czas odejmowało 1 HP, nawet jesli wywołamy tylko raz.

MEM_StackPos = _^(ContentParserAddress + zCParser_stack_stackPtr_offset);To zaś służy do gwałcenia postaci w League of Legends uzupełnia działanie MEM_StackPos.

W skrócie (jeśli nie zainicjowaliśmy Ikarusa):
zmienna = MEM_Stackpos.position;
hero.attribute[ATR_HITPOINTS] -= 1;
MEM_Stackpos.position = zmienna;
Error / albo po prostu nic się nie dzieje (raczej error).

MEM_InitLabels();
zmienna = MEM_Stackpos.position;
hero.attribute[ATR_HITPOINTS] -= 1;
MEM_Stackpos.position = zmienna;
Pętla.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Ok. Czyli zwyczajny Loop ciekawią mnie zastosowania, ale to już sam spróbuje rozgryźć :D Jeszcze jedno :F szperając w klasie oCItem wynalazłem taką zmienną var int inv_animate; pytanie czy dało  by ją jakoś wykorzystać ? Zwłaszcza, że nie wiem czy to będzie float czy zwykłe true false.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Szmyk

Szmyk

Użytkownicy
posty64
Propsy58
Profesjabrak
  • Użytkownicy
A to nie jest przypadkiem pozostałość po "obracaniu" się przedmiotu w ekwipunku? Było to pokazane na jednym z trailerów do G1.
 

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Wiem, ale ciekawi mnie czy da się to jakoś wykorzystać :D
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
To jest rotacja przedmiotu w ekwipunku. Niezbyt wiem jak to działa, ale podejrzewam, że działa jak inne inv_*.

W ogóle w C_Item też jest ta zmienna.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
To chyba jednak była ta animacja :/ ale może uda się samą zmienną wykorzystać do np. ostrzenia broni(zamiast pisać 1000 nowych broni z dopiskiem _Sharpen można ustalić ją na 1 i wtedy broni nie da się już naostrzyć a dmg jest zwiększony D: )
Tak przypomniało mi się coś fajnego z R2.0 ale do tego potrzebowałbym pobierania itemu bez kliknięcia danego klawisza, chodzi o to że jak bym najechał na przedmiot strzałkami to byłby pobierany i wyświetlało dla testu jego nazwę. Chyba jest to możliwe, ale potrzebował bym wskazówek :) Poprzedni skrypt:
   iPtr = List_GetS (her.inventory2_oCItemContainer_contents, her.inventory2_oCItemContainer_selectedItem+2);
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Możesz się sugerować pakietem quickslots.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Pakiet QuickSlots Reaguje tylko gdy naciśniemy klawisz. Mi chodzi o to by pobierało obiekt tylko wtedy gdy jestem w ekwipunku i przemieszczam się między przedmiotami. Na otwieranie mam Hook'a ale nie wiem jak pobierać item bez tzw. Binda.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Walić te pobieranie przedmiotu :F
Nauczyłem się trochę pracy z klasami. I postanowiłem napisać funkcję która będzie zawracać prawdę jeżeli broń będzie kolidować z przeciwnikiem:
func int Read_Collide(var int targetc, var int item)
{
var zCVob itm; itm= _^(MEM_InstToPtr(item));
var oCNpc target; target=Hlp_GetNpc(targetc);
var int vob_bbox_0; vob_bbox_0=itm.bbox3d_mins[0];
var int vob_bbox_1; vob_bbox_1=itm.bbox3d_mins[1];
var int vob_bbox_2; vob_bbox_2=itm.bbox3d_mins[2];
var int vob_bbox_3; vob_bbox_3=itm.bbox3d_maxs[0];
var int vob_bbox_4; vob_bbox_3=itm.bbox3d_maxs[1];
var int vob_bbox_5; vob_bbox_3=itm.bbox3d_maxs[2];
/************************************************/
var int npc_bbox_0; npc_bbox_0=target.zCVob_bbox3d_mins[0];
var int npc_bbox_1; npc_bbox_1=target.zCVob_bbox3d_mins[1];
var int npc_bbox_2; npc_bbox_2=target.zCVob_bbox3d_mins[2];
var int npc_bbox_3; npc_bbox_3=target.zCVob_bbox3d_maxs[0];
var int npc_bbox_4; npc_bbox_4=target.zCVob_bbox3d_maxs[1];
var int npc_bbox_5; npc_bbox_5=target.zCVob_bbox3d_maxs[2];
if(gf(vob_bbox_0,npc_bbox_0))
||(gf(vob_bbox_1,npc_bbox_1))
||(gf(vob_bbox_2,npc_bbox_2))
||(gf(vob_bbox_3,npc_bbox_3))
||(gf(vob_bbox_4,npc_bbox_4))
||(gf(vob_bbox_5,npc_bbox_5))
{
Print("kolizja !");
return 1;
};
};

Ale nic się nie dzieje :/ Czasem czyta kolizje, ale błędnie .-. Nie wiem czy w podobny sposób jest możliwe dokonanie tego, ale teoretycznie taki bądź podobny zapis. (w końcu porównuje właściwe obiekty z klas...)
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Bbox broni chyba nie jest potrzebny. Starczy odczytywać bbox dwóch npców i dodawać do nich zasięg broni. Sam Bbox musisz dodawać do siebie (oczywiście wartość ujemną negować, żeby były dwie dodatnie). Nie potrzeba Ci Bbox Y, starczy X i Z.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

Splash

Splash

Moderator
posty4209
Propsy3412
ProfesjaNierób
  • Moderator
Nie da się tego zrobić w taki sposób, w jaki próbujesz. Pozycja trzymanej broni zawsze jest równa 0.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Cytuj
Starczy odczytywać bbox dwóch npców i dodawać do nich zasięg broni. Sam Bbox musisz dodawać do siebie
Mógłbyś trochę bardziej rozwinąć ? Pobieranie Npctów mam jako czytanie voblisty bohatera. Zasięg broni to oCItem naszej broni. addf(box, range); ??? Ale dodawanie bboxów ?
Cytuj
Nie da się tego zrobić w taki sposób, w jaki próbujesz. Pozycja trzymanej broni zawsze jest równa 0.
Pobieranie zCVob ? A może pobieranie tych samych obiektów tylko z klasy oCItem?
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Co tu mam bardziej opisywać? Gotowca Ci nie dam. A samymi Bboxami tego też nie zrobisz, musisz dodać do npc.trafo npc.Bbox i item.range i porównać, czy target znajduje się w zasięgu. Wiem, że chcesz zrobić pobieranie pozycji npc dla zadawania obrażeń, i nie, nie dasz rady tego zrobić samymi bboxami.

Dam Ci gotowca w formie niegotowej (jeśli mogę to tak beznadziejnie nazwać):
npc attacker; npc victim;
float attackerPos; float victimPos;

if bbox < 0 -> negate bbox
if trafo < 0 -> negate trafo

attackerPos = attacker.trafo + (attacker.bboxMax + attacker.bboxMin) + item.range;
victimPos = victim.trafo + (victim.bboxMax + victim.BboxMin);

if victimpos <= attackerPos-> deal damage

Aczkolwiek to tylko domysł. Nie wiem, czy aby na pewno to tak zadziała.


Drugą opcją może być odejmowanie pozycji trafo i dodawanie do tego bbox i item.range.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Double post czy coś?

Co tu mam bardziej opisywać? Gotowca Ci nie dam. A samymi Bboxami tego też nie zrobisz, musisz dodać do npc.trafo npc.Bbox i item.range i porównać, czy target znajduje się w zasięgu. Wiem, że chcesz zrobić pobieranie pozycji npc dla zadawania obrażeń, i nie, nie dasz rady tego zrobić samymi bboxami.

Dam Ci gotowca w formie niegotowej (jeśli mogę to tak beznadziejnie nazwać):
npc attacker; npc victim;
float attackerPos; float victimPos;

if bbox < 0 -> negate bbox
if trafo < 0 -> negate trafo

attackerPos = attacker.trafo + (attacker.bboxMax + attacker.bboxMin) + item.range;
victimPos = victim.trafo + (victim.bboxMax + victim.BboxMin);

if victimpos <= attackerPos-> deal damage

Aczkolwiek to tylko domysł. Nie wiem, czy aby na pewno to tak zadziała.


Drugą opcją może być odejmowanie pozycji trafo i dodawanie do tego bbox i item.range.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
var oCNpc attacker; attacker= Hlp_GetNpc(hero);
var oCNpc target; target= Hlp_GetNpc(slf);
var int attackerPos; //attackerPos=
var int targetPos; //targetPos=
var int AttackerTrafo; attacker.trafo;
var int targetTrafo; target.trafo;

/*
Tutaj negacja boxów, najlepiej wszystkich
*/

attackerPos=AttackerTrafo+(boxymins[0-2]+boxymaxs[0-2])+ReadiedItem.range; // ale lepiej chyba to rozpisać na addf etc.
targetPos=targetTrafo+(boxymaxs[0-2]+boxymins[0-2]);
if(LEF(target,attackerPos))
{ć to()
return 1;
Print("Kolizja");
};
Pisałem na szybko. Ale to chyba powinno być to (nie mam dostępu do g2 aby sprawdzić)
W ogóle co to jest zMATRIX4 ?  Float ? Int ? ogólnie dafuq ! Oraz czy skrypt ma wyglądać tak jak wyżej, tylko wiadomo z negacjami.
#Forum coś się chyba zabugowało :/ bo nie widziałem np. jak Splash dodał tu posta, albo Bogdan.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota

Siemekk
Złote Wrota

Ikarus (Pakiet skryptów)
#537 2016-07-23, 22:32(Ostatnia zmiana: 2016-07-23, 22:55)
Lol u mnie też double...
var oCNpc attacker; attacker= Hlp_GetNpc(hero);
var oCNpc target; target= Hlp_GetNpc(slf);
var int attackerPos; //attackerPos=
var int targetPos; //targetPos=
var int AttackerTrafo; attacker.trafo;
var int targetTrafo; target.trafo;

/*
Tutaj negacja boxów, najlepiej wszystkich
*/

attackerPos=AttackerTrafo+(boxymins[0-2]+boxymaxs[0-2])+ReadiedItem.range; // ale lepiej chyba to rozpisać na addf etc.
targetPos=targetTrafo+(boxymaxs[0-2]+boxymins[0-2]);
if(LEF(target,attackerPos))
{ć to()
return 1;
Print("Kolizja");
};
Pisałem na szybko. Ale to chyba powinno być to (nie mam dostępu do g2 aby sprawdzić)
W ogóle co to jest zMATRIX4 ?  Float ? Int ? ogólnie dafuq ! Oraz czy skrypt ma wyglądać tak jak wyżej, tylko wiadomo z negacjami.
#Forum coś się chyba zabugowało :/ bo nie widziałem np. jak Splash dodał tu posta, albo Bogdan.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
ZMATRIX4 to to samo co oCNpc._zCVob_trafoObjToWorld[16];

jest klasa zMATRIX4, która zawiera dokładnie to.

Jakbyś posłał dokładny skrypt, to bym wiedział. W ogóle musisz odnaleźć, który numer odpowiada pozycji Z, Y, X (bbox).
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
BoxMins-Maxs[0]-X
BoxMins-Maxs[1]-Y
BoxMins-Maxs[2]-Z
Źródło "Czas Zapłaty"
ZMATRIX4 jest teżw kamerze, ale nie znalazłem klasy :/ Jak chcesz to zobacz na skryptach Czasu Zapłaty (github)
Lub obczaj klasę oCNpc na forum (Avallach dał ją chyba w tutorialach)
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry