Skočit na obsah


Odstraneni itemu


  • Please log in to reply
9 odpovědí na toto téma

#1 Host_zpirit_*

Host_zpirit_*
  • Host

Odesláno 21.09.2005 04:13

Vzdicky kdyz pouziju destroy item znici to vsechny predmety v jenom policku takze kdyz v baseitem.2da povolim seskupovani treba 99stejnych predmetu na sebe zmizi vsech 99 i kdzy chi aby zmizel jenom jeden podobne jako napriklad provianty na demone.
  • 0

#2 Host_gGeorg_*

Host_gGeorg_*
  • Host

Odesláno 21.09.2005 12:34

na demone se tyhle veci uz davno nedeji. pokud o necom vis napis to do bugu.

SetItemStackSize()
  • 0

#3 Ter Leeloo II

Ter Leeloo II

    Cechmistr

  • Admin
  • PipPipPipPipPipPipPipPipPip
  • 2528 Příspěvků:
  • Gender:Male

Odesláno 21.09.2005 12:45

na demone se tyhle veci uz davno nedeji. pokud o necom vis napis to do bugu.

Zobrazit příspěvek


Musim rict, ze rozumet te jeho lustovce je nekdy umeni, pismenko sem pismenko tam. Ale on nechtel rict to, ze se to deje na Demone, ale prave chtel zjistit, jak se to dela, aby se ze stacku smazal jen jeden item, stejne jako to je u proviantu na Demone :biggrin:
  • 0

#4 Host_zpirit_*

Host_zpirit_*
  • Host

Odesláno 21.09.2005 16:12

:biggrin:
  • 0

#5 Host_Zaki72_*

Host_Zaki72_*
  • Host

Odesláno 23.09.2005 14:56

:biggrin:

Zobrazit příspěvek

Holt pis nekdy do vety tecky a carky.
  • 0

#6 Host_Zaki72_*

Host_Zaki72_*
  • Host

Odesláno 23.09.2005 15:03

Vzdicky kdyz pouziju destroy item znici to vsechny predmety v jenom policku takze kdyz v baseitem.2da povolim seskupovani treba 99stejnych predmetu na sebe zmizi vsech 99 i kdzy chi aby zmizel jenom jeden podobne jako napriklad provianty na demone.

Zobrazit příspěvek

Pred znicenim predmetu si musis otestovat jestli je stohovaci.
Odebirame po 1
If JeStack(predmet) = Pravda Then
  If StackSize(predmet) = 1 Then
    Destroy(predmet)
  Else
    StackSize(predmet) = StackSize(predmet) - 1
  End If
Else
  Destroy(predmet)
End If
P.S. NENI to NWNScipt! Pisu z hlavy a jde prece hlavne o algoritmus. Pokud chces odebirat vice predmetu najednou, tak to musis osefovat jinak.
  • 0

#7 Host_En.Kidu_*

Host_En.Kidu_*
  • Host

Odesláno 23.11.2005 14:59

Na DestroyObject() vubec bacha. Pri nevhodnym pouziti smaze vsechny instance v celem modulu.
  • 0

#8 Host_zpirit_*

Host_zpirit_*
  • Host

Odesláno 15.03.2006 22:16

Asi uz jste si vsimli ze jsem se zase po dlouhy dobe zacal venovat skriptum:) a i kdyz sem se naucil plno novych veci porad mam vic otazek nez zkusenosti no a tenhle starej problem mi porad nedava spat presto sem se trochu pohnul z mista.

Zkousel jsem udelat placeab ktery pri kliknuti vezme jednu vec ze stacku vlastne to byla jen zkouska jak vytvorit podobny rest system jako je na demone vsechno fungovalo pekne zjistil jsem si velikost stacku predmet znicil a vytvoril si stack-1 a ejhle mel sem z 10ti predmetu 9 jenze pak to zacalo bugovat misto toho aby se pocet pri dalsim pouzitim snizil na 8 snizil se na 7 a potom misto na 7 byl snizen na 3 takze to vypadalo nejak takhle.
10-1, 9-2, 7-4, 3-x(8?)

void main()
{
object oPC           = GetLastUsedBy();
object oProviant   = GetItemPossessedBy(oPC,"proviant");
int nStack            = GetNumStackedItems(oProviant);


if (GetItemPossessedBy(oPC, "proviant")== OBJECT_INVALID)
   {
   SendMessageToPC(oPC,"Nemas proviant voe.");
   return;
   }
DestroyObject(oProviant);
CreateItemOnObject("proviant", oPC, nStack -1);
}


  • 0

#9 Host_gGeorg_*

Host_gGeorg_*
  • Host

Odesláno 17.03.2006 16:29

Asi uz jste si vsimli ze jsem se zase po dlouhy dobe zacal venovat skriptum:) ...

Zobrazit příspěvek

Ale fujky.
1. Nadefinujes li si promenou tak ji pouzivej.
2. Prikaz create/destroy je jeden z nejnarocnejsich je dobre ho nepouzivat lze li to udelat nejak jinak. A protoze zname prikaz SetStack () mohlo by to vypadat nejak takto --- >
void main()
{
  object oPC         = GetLastUsedBy(); 
  object oProviant  = GetItemPossessedBy(oPC,"proviant");
  int nStack          = GetNumStackedItems(oProviant);
   ///////////////////////////////////////////////////////////

  if (oProviant != OBJECT_INVALID)
 {
     if nStack>1
      SetStack (oProviant,nStack-1) // syntaxe tohohle radku muze byt jina, pisu to z hlavy
     else
       DestroyObject(oProviant);
   
  }
  else
    SendMessageToPC(oPC,"Nemas proviant voe.");
}

  • 0

#10 Host_zpirit_*

Host_zpirit_*
  • Host

Odesláno 19.03.2006 01:52

Supracky funguje to bezvadne ta funkce je SetItemStackSize() diks.
  • 0




0 uživatelů si čte toto téma

0 členů, 0 návětěvníků, 0 anonymních