Czy da się zrobić przedmiot wielokrotnego użytku? 4110 11

O temacie

Autor Jasiu

Zaczęty 4.01.2010 roku

Wyświetleń 4110

Odpowiedzi 11

Jasiu

Jasiu

Użytkownicy
posty37
  • Użytkownicy
Witam, chciałbym wiedzieć, czy byłoby możliwe w gothicu popracować tak w skryptach, aby zrobić jedzenie, które można zjeść kilka razy.
 
89% graczy uważa, że najważniejsza jest grafika. Jeśli należysz do tych 11% to wklej to do podpisu.

maciejG

maciejG

Użytkownicy
posty450
Propsy1
  • Użytkownicy
W parametrze on_state podać funkcję, która tworzy w ekwipunku nowy przedmiot.
EDIT:
Może jest coś lepszego.
 
Spoiler

Jurigag

Jurigag

Użytkownicy
posty869
Propsy285
ProfesjaSkrypter
  • Użytkownicy
Najprostszy według mnie sposób, prostszego chyba już nie ma, po prostu w funkcji korzystania z itema, tak jak np chleb:

FUNC VOID UseLoaf()
{
Npc_ChangeAttribute (self, ATR_HITPOINTS, HP_Brot);
};

Dodać po {:

CreateInvItems (hero, ItFoLoaf,1);
Nie wiem czy działa, ale powinno, jest to naprawdę prosta metoda, po prostu po zjedzeniu tworzy nowy item i tak w kółko.

Maciejg szybszy :P
 
Skrypter/Tester - Szukasz testera/skryptera - Pisz !

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Stosujesz rekurencję. Gdy zjesz dany przedmiot, to w funkcji odpowiedzialnej za użycie danego przedmiotu musisz stworzyć dany przedmiot.

Wowoz

Wowoz

Użytkownicy
Wowoźny
posty3698
Propsy4862
NagrodyVV
Profesjabrak
  • Użytkownicy
  • Wowoźny
i tak w kółko.

No, a jak chciałbym mieć 10 chlebów, a nie nieskończoną ilość?
 

Jurigag

Jurigag

Użytkownicy
posty869
Propsy285
ProfesjaSkrypter
  • Użytkownicy
W Story_globals.d var int chleb i nadać tam początkową wartosć 0

W funkcji jedzenia chleba zrobić tak:

func void UseLoaf()
{
chleb=chleb+1;
Npc_ChangeAttribute (self, ATR_HITPOINTS, HP_Weintrauben);
if (chleb <= 9)
{
CreateInvItems (hero, ItFoLoaf,1);
}
else if (chleb >= 10)
{
chleb=0;
};
};

O to ci chodziło? Będzie można jeść chleb będzi się pojawiał ale max 10 razy, potem już nie chyba :P
 
Skrypter/Tester - Szukasz testera/skryptera - Pisz !

maciejG

maciejG

Użytkownicy
posty450
Propsy1
  • Użytkownicy
To rób Create(Chleb9) - tworzy chleb z 9 użyciami
w UseChleb9 - Create(Chleb8) itd
EDIT:
@up: Tak, ale wtedy tylko jeden taki chleb mógłby być.
 
Spoiler

Jurigag

Jurigag

Użytkownicy
posty869
Propsy285
ProfesjaSkrypter
  • Użytkownicy
Oczywiscie w moim przypadku, jest najlepiej zrobić "odzielny taki chlebek" bo będzie to inaczej działało na wszystkich chlebkach. No chyba że tworzysz nowy item/jedzenie a nie edytujesz inne.

Teraz lekko zmieniłem, powinno działać ciągle, a nie tylko na jednym chlebku :P
 
Skrypter/Tester - Szukasz testera/skryptera - Pisz !

maciejG

maciejG

Użytkownicy
posty450
Propsy1
  • Użytkownicy
Raczej tylko na jednym, bo jak masz chleba, zjesz go powiedzmy dwa razy, kupisz nowy chleb, sprzedasz tamtego i na tym nowym będziesz miał o dwa "ugryzienia" mniej.
EDIT:
Już chyba lepiej stworzyc kilka przedmiotów i dopisac "Nadgryziony"  :P .


EDIT2:
No ale jak sprzedamy chlebek, który jest nadgryziony 2 razy to zmienna się nie zeruje, więc jak kupimy innego to mamy tego nadgryzionego. Dobra, nieważne.
 
Spoiler

Jurigag

Jurigag

Użytkownicy
posty869
Propsy285
ProfesjaSkrypter
  • Użytkownicy
To też racja, ale imho w taki skrypt byłby bez sensu :P  Ja rozumiem iż miałby to byś jakiś taki unikat item że używamy 10 razy i nam przepada i zdobymy go odpiero za hen hen hen....

W takim razie trza by było zrobić ticktockiem jeszcze sprawdzanie czy ma ten chleb i ustawia zmienną chleb=0 jeśli nie ma, ale tak to by se ktoś wyrzucił i pyk już ma chleb..... znowu z 10 użyciami. :)
 
Skrypter/Tester - Szukasz testera/skryptera - Pisz !

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Bzdury, wystarczy proste rozwiązanie ze zmienną za każdym razem zwiększaną o 1, jak dojdzie do 10 to jest zerowana (ważne) a przedmiot tym razem się nie respawnuje.
W ten sposób będzie bez problemu działało nawet na nie-unikatowych itemach.

Mark56

Mark56

Moderator
som veľký magič
posty1632
Propsy1846
ProfesjaAnimator
  • Moderator
  • som veľký magič
omg ja to zrobilem tak ze zamienilem scenename na map mozna nic niezje ale nic nieznikne ^_^
 



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