[7.6] Npc Que Vende Bp De Items

frerety

DVNO
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 08/04/06Posts: 133

HiHo!

Eh... isso daki tava mt paradão intaum resouvi "soltar" um code meu... Essa é uma função para um NPC criar BP de Items... Funciona para YurOTS, não se si funciona para outros OtServers

Disbugado °ºoº° Se o player estiver com a BP cheia o NPC "taca" a BP no tile abaixo do player (antes o server caia)

Npc.Cpp

Procure por:

lua_register(luaState, "selfGetPosition", NpcScript::luaSelfGetPos);

Logo abaixo adicione:

 

int NpcScript::luaSelfGetPos(lua_State *L){	lua_pop(L,1);	Npc* mynpc = getNpc(L);	lua_pushnumber(L, mynpc->pos.x);	lua_pushnumber(L, mynpc->pos.y);	lua_pushnumber(L, mynpc->pos.z);	return 3;}

 

Logo abaixo adicione:

 

int NpcScript::luaBuyBp(lua_State *L){	int cost = (int)lua_tonumber(L, -1);	int count = (int)lua_tonumber(L, -2);	int type = (int)lua_tonumber(L, -3);	int cid = (int)lua_tonumber(L, -4);	lua_pop(L,4);    Item* newItem;    switch(type)    {               case 2268:                    newItem = Item::CreateItem(2003, count);                    break;               case 2273:                    newItem = Item::CreateItem(2002, count);                    break;               case 2313:                    newItem = Item::CreateItem(2001, count);                    break;               case 2304:                    newItem = Item::CreateItem(2000, count);                    break;               case 2311:                    newItem = Item::CreateItem(1988, count);                    break;               default:                    newItem = Item::CreateItem(3940, count);                    break;    }	if(!newItem)		return true;    Container* container = dynamic_cast<Container*>(newItem);    Item* newrune;    for(int i=0; i<20; i++)    {            newrune = Item::CreateItem(type, count);            container->addItem(newrune);    }    if(!container)    {                  delete newrune;                  return true;    }  	Npc* mynpc = getNpc(L);	Creature* creature = mynpc->game->getCreatureByID(cid);	Player* player = creature? dynamic_cast<Player*>(creature) : NULL;    if (player->getCoins(cost))    {        if (player->removeCoins(cost))        {             if (container->size() < container->capacity())                 player->addItem(newItem);             else                 mynpc->game->addThing(NULL,creature->pos,newItem);             mynpc->doSay("Here you are.");        }    }    else    {        mynpc->doSay("Sorry, you do not have enough money.");    }    return true;}

 

Npc.H

Procure por:

 

static int luaSelfGetPos(lua_State *L);

e logo abaixo adicione:

 

static int NpcScript::luaBuyBp(lua_State *L);

 

Compile e pronto! Agora é só aproveitar...

Como Usar

.: buybp(cid,itemdoitemasercriado,count,preço da BP em GPs)

.: Exemplo

.: buybp(cid,2304,5,2000) -- Vende uma BP de GFB (2304) de 5 cargas cada (5) por 2k (2000 GPs)

OBS .: A função irá retornar 0 se o player comprar a BP e retornará -1 se não comprar (falta de $$)...

FlW

CyA!

It's the hunger; the hunger for an alternative and the refusal to accept a life of unhappiness.


sadsoul

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 04/10/05Posts: 33

Parabens tavo precisando disso mesmo mais agora eu estou sem meu dev nao vai da pra compilar -.-....

tem como vc me passar ele zipado pq eue ultilizo o usuario casa do pc ai nao da pra instalar nada


signsad3eg.jpg

~°[ BarS ]°~
barsad7aj.jpg
~°[ Gosta do que eu faço, de mim, ou de alguma coisa que te fiz ^^, Use essa bar]°~

Presentes de:

[badBoyRm] [MttS]°~

frerety

DVNO
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 08/04/06Posts: 133

HiHo!

@sadsoul

Não houve necessidade de eu ter que zipar meu dev-cpp e por na net pois já havia um tópico na seção de downloads com o dev-cpp + plugins...

dev cpp pronto

FlW

CyA!

It's the hunger; the hunger for an alternative and the refusal to accept a life of unhappiness.


colex

Serviços Prestados a Comunidade
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/10/05Posts: 301Gênero: Masculino

mt legal

mt util

mt bem feito

bom trabalho

cya~~ :bye:

Slayfer Mythez

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 27/05/06Posts: 2

Oi, eu também quero.

Porém eu quero q o NPC, venda assim:

1 bp de sd, cada com 1 tiro

1 bp de uh, cada com 1 tiro

1 bp de hmm, cada com 5 tiros

1 bp de gfb, cada com 3 tiros =D

1 bp de explo, cada com 3 tiros

1 bp de ih, cada com 4 tiros

E o resto igual.

Os preços pode deixar que eu mesmo arrumo, to montando um OT 24hrs, tem que estar tudo perfeito.

=D

Grato,

Slayfer~

frerety

DVNO
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 08/04/06Posts: 133

HiHo!

@Slayfer Mythez

Leia acima na seção "COMO USAR"... Você precisará apenas alterar o script do seu npc que vende runas... ^^

Como Usar

.: buybp(cid,itemdoitemasercriado,count,preço da BP em GPs)

.: Exemplo

.: buybp(cid,2304,5,2000) -- Vende uma BP de GFB (2304) de 5 cargas cada (5) por 2k (2000 GPs)

.: buybp(cid,idDAruna,cargas,preçoDAbp)

Se não for isso, pm me...

FlW

CyA!

It's the hunger; the hunger for an alternative and the refusal to accept a life of unhappiness.


Heitorzin

Ex-Coordenador XTibia
avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 23/10/05Posts: 233Char no Tibia: Inp

Caraca ...

Muito legal ..

Para meu OTServer

Irá servir ..

Invés de ficar vedendo de uma em UMA é melhor vender uma bp ..

OBrigado

Anteciosamente,

Heitorzin


Ex-Coordenador XTibia.com

ScarFace

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 30/04/06Posts: 51

Mt bom!

Perfect!

Otimo..

Muito util ^^

user posted image

 

[ASSINATURA EDITADA POR FAZER PROPAGANDAS. CASO CONTINUE SERÁ ALERTADO]

Penny

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 14/12/05Posts: 3

Esse code faz o OT cair, tá bugado.. =P Qdo se n tem Slot free na bp principal, vc compra uma bp, ela some. :D

Ta bugado e faz o server cair.. =)

bye

frerety

DVNO
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 08/04/06Posts: 133

HiHo!

Eh... realmente eu não tinha pensado nisso... agora eu tenho que sair mas agora a mesmo eu estou voltando para disbugar... hj msm eu disbugo...

PS .: Eu irei escrever no post principal que foi disbugado qndo eu tiver arrumado ele...

----- EDITED -----

Disbugado xD... agora se o player estiver com a BP xeia o npc "taca" a bp no chão embaixo do player

----- EDITED -----

FlW

CyA!

It's the hunger; the hunger for an alternative and the refusal to accept a life of unhappiness.


Dak~

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 15/06/06Posts: 18

jah vi isso num serv mais nao gostei mto n prefiro compra de uma em uma

Penny

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 14/12/05Posts: 3

Continua BUgado, Agora cai direto no chão, você tendo cap ou não, tendo espaço na bp ou não.

frerety

DVNO
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 08/04/06Posts: 133

HiHo!

@Penny

você pode verificar uma coisa pra mim? Veja se na sua classe Container existe as seguintes funções:

size() [retorna quantos items existem no container]
e:
capacity() [retorna a quantidade de items que o container pode ter]
Se não existir, procure funções semelhantes para colocar no code e altere-o...

Espero ter ajudado

FlW

CyA!

It's the hunger; the hunger for an alternative and the refusal to accept a life of unhappiness.


Angel Of Ilusions

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 11/12/05Posts: 108

aew cara..

gostei muito desse code..

eu ainda não vi nenhum OT que vende bp d runes por isso posso dizer que isso foi inovador..apesar do post não ser tão recente =P

ótimo code..

flws ae

fuiz!!

Smash_Dragon

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 11/11/05Posts: 6

qual programa usa pra compilar??

to começando a meche agora nisso!

QUOTE
Assinatura removida por está fora das regras.
Xedegux.