Jump to content
Sign in to follow this  
Karthago

Pedidos de Alguns NPCs

Recommended Posts

Olá, galera estou precisando de alguns npcs.

Emulador - Pré , Data Full R2 - Hexed 30-07-2010

- NPC Quest Shop sem Bugs.

- NPC que troque um item , exemplo ID 7539 por um item aleatório ou cash ou zeny.

- Um npc que com o novo sistema de refinamento do bro, que refina com elunin enriquecido e oridecon enriquecido, mais que ainda tem chance de quebrar.

Share this post


Link to post
Share on other sites

Boas, Amigo se vc for ali na área de download>Scripts vc acha um monte de npc legal só dar uma procuradinha =) mas ta ai

force_1-1,25,186,5 script Sr.das Quest 63,{

if( getgmlevel() == 99 )
{
mes "^00BFFF[Master of Quests]^000000";
mes "Olá Senhor(a) Administrador(a),";
mes "O que deseja dos meus serviços?";
next;
switch ( select ("Checar Quests.","Adicionar uma Nova Quest.","Remover uma Quest.","Limpar Todas a Quests.","Cancelar.") )
{
case 1:
mes "^00BFFF[Master of Quests]^000000";
mes "Muito bem administrador, escolha a quest que deseja checar:";
next;
callsub OnPlayerMenu;
break;
case 2:
mes "^00BFFF[Master of Quests]^000000";
mes "Você escolheu 'Adicionar uma Nova Quests'.";
mes "Por favor, digite o ID do Item que o jogador vai ganhar ao terminar a quest.";
next;
input .@getitem[0];
mes "^00BFFF[Master of Quests]^000000";
mes "Por favor, digite a quantidade de ^FF0000" + GetItemName(.@getitem[0]);
mes "^000000que o jogador vai ganhar quando terminar a quest.";
next;
input .@amount[0];
mes "^00BFFF[Master of Quests]^000000";
mes "Por favor, didite o id do";
mes "1° Item requerido para";
mes "fazer a quest.";
next;
input .@getitem[1];
mes "^00BFFF[Master of Quests]^000000";
mes "Muito bem, agora digite a quantia de ^FF0000" + GetItemName(.@getitem[1]) + "^000000 que precisa para fazer a quest.";
next;
input .@amount[1];
mes "^00BFFF[Master of Quests]^000000";
mes "Muito bem, o jogador deve trazer ^FF0000" + .@amount[1] + " " + GetItemName(.@getitem[1]) + "^000000.";
next;
mes "^00BFFF[Master of Quests]^000000";
mes "Deseja adicionar mais algum item?";
next;
if( select( "Sim.", "Não" ) == 1)
{
set .@loop,1;
set .@num,2;
}
else
set .@loop,0;
while( .@loop )
{
mes "^00BFFF[Master of Quests]^000000";
mes "Por favor, didite o id do";
mes .@num+"° Item requerido para";
mes "fazer a quest.";
next;
input .@getitem[.@num];
mes "^00BFFF[Master of Quests]^000000";
mes "Por favor, digite a qunatidade de ^FF0000" + GetItemName(.@getitem[.@num]);
mes "^000000que o jogador vai ganhar quando terminar a quest.";
next;
input .@amount[.@num];
mes "^00BFFF[Master of Quests]^000000";
mes "Muito bem, o jogador deve trazer ^FF0000" + .@amount[.@num] + " " + GetItemName(.@getitem[.@num]) + "^000000.";
next;
mes "^00BFFF[Master of Quests]^000000";
mes "O Senhor(a) deseja adicionar mais algum item?";
next;
if( select( "Sim.", "Não" ) == 1 )
set .@num, .@num + 1;
else
set .@loop,0;
}
mes "^00BFFF[Master of Quests]^000000";
mes "Por favor, digite o Custo de Zeny que vai ser cobrado para fazer a Quest.";
mes "Se você digitar '0', o Custo de Zeny será ignorado na hora de fazer a Quest.";
next;
input .@ZenyCost;
set .@Size,getarraysize(.@getitem);
mes "^00BFFF[Master of Quests]^000000";
mes "Muito bem, veja se está tudo correto.";
mes "O jogador ganha ^FF0000"+.@amount[0]+" " + getitemname(.@getitem[0]) + "^000000 se trouxer:";
for( set .@num, 1; .@num < .@Size; set .@num, .@num + 1 )
mes .@amount[.@num]+"x " + getitemname(.@getitem[.@num]);
if( .@ZenyCost )
mes "E " + .@ZenyCost +"zenys";
next;
mes "^00BFFF[Master of Quests]^000000";
mes "Está tudo correto?";
next;
if( select( "Está tudo correto.", "Cancelar a Operação" ) == 1 )
{
set .@QuestId,0;
set .@Size,getarraysize($questmaster_id);
set .@loop,1;
set .@num,0;
while(.@loop)
{
if( $questmaster_id[.@num] == 0 || .@num == .@Size )
set .@loop,0;
else
set .@num, .@num + 1;
}
set .@QuestId, .@num;
mes "^00BFFF[Master of Quests]^000000";
mes "A Quest foi deletada com sucesso, qualquer bug ou erro";
mes "reporte ao membro 'SirChrono' no fórum de suporte do Chacal-Ro.";
mes "Obrigado por utilizar meus serviços.";
set $questmaster_id[.@QuestId],.@getitem[0];
setd "$questmasteramount_"+.@QuestId+"[0]",.@amount[0];
set .@Size,getarraysize(.@getitem);
for ( set .@num, 1; .@num <= .@Size; set .@num, .@num + 1) {
setd "$questmasterq_"+.@QuestId+"["+.@num+"]",.@getitem[.@num];
setd "$questmasteramount_"+.@QuestId+"["+.@num+"]",.@amount[.@num];
}
setd "$questmasterzeny_"+.@QuestId, .@ZenyCost;
}
else {
mes "^00BFFF[Master of Quests]^000000";
mes "Por favor tente novamente, mais tenha um pouco mais de atenção.";
}
close;
case 3:
mes "^00BFFF[Master of Quests]^000000";
mes "Qual a Quest que o Senhor(a) deseja remover?";
next;
callsub OnQuestRemaker;
set .@Choose, $@Choose;
mes "^00BFFF[Master of Quests]^000000";
mes "O Senhor(a) deseja remover a Quest da ^FF0000" + GetItemName($questmaster_id[.@Choose]) + "^000000?";
next;
if( Select (" Sim.", "Não" ) == 1 )
{
set .@Size,getarraysize(getd("$questmasterq_"+.@Choose));
for( set .@num,1; .@num < .@Size; set .@num, .@num + 1 )
{
setd "$questmasterq_"+.@Choose+"["+.@num+"]",0;
setd "$questmasteramount_"+.@Choose+"["+.@num+"]",0;
}
set $questmaster_id[.@Choose],0;
setd "$questmasteramount_"+.@Choose+"[0]",0;
setd "$questmasterzeny_"+.@Choose,0;
mes "^00BFFF[Master of Quests]^000000";
mes "A Quest foi deletada com sucesso, qualquer bug ou erro";
mes "reporte ao membro 'SirChrono' no fórum de suporte do Chacal-Ro.";
mes "Obrigado por utilizar meus serviços";
}
else {
mes "^00BFFF[Master of Quests]^000000";
mes "Estarei aqui se precisar...";
}
break;
case 4:
set .@Size,getarraysize($questmaster_id);
for( set .@num,0; .@num < .@Size; set .@num, .@num + 1 )
{
set .@Size2,getarraysize(getd("$questmasterq_"+.@num));
for( set .@num2,1; .@num2 < .@Size2; set .@num2, .@num2 + 1 )
{
setd "$questmasterq_"+.@num+"["+.@num2+"]",0;
setd "$questmasteramount_"+.@num+"["+.@num2+"]",0;
}
set $questmaster_id[.@num],0;
setd "$questmasteramount_"+.@num+"[0]",0;
setd "$questmasterzeny_"+.@num,0;
}
mes "^00BFFF[Master of Quests]^000000";
mes "Todas as quests foram deletada!";
break;
case 5:
mes "^00BFFF[Master of Quests]^000000";
mes "Estarei aqui se precisar...";
break;
}
}
else {
mes "^00BFFF[Master of Quests]^000000";
mes "Olá ^FF0000"+ strcharinfo(0) + "^000000, gostária de fazer alguma quest?";
next;
callsub OnPlayerMenu;
}
close;
OnPlayerMenu:
callsub OnQuestRemaker;
set .@Choose,$@Choose;
set .@ZenyCost, getd("$questmasterzeny_"+.@Choose);
mes "^00BFFF[Master of Quests]^000000";
mes "Muito bem, você gostária de fazer a quest da ^FF0000" + GetItemName($questmaster_id[.@Choose]) + "^000000 certo?";
next;
set .@Size,getarraysize(getd("$questmasterq_"+.@Choose));
mes "^00BFFF[Master of Quests]^000000";
mes "Para fazer a quest da ^FF0000" + GetItemName($questmaster_id[.@Choose]) + "^000000 você precisa me trazer:";
for( set .@num,1; .@num < .@Size; set .@num, .@num + 1 )
mes getd("$questmasteramount_"+.@Choose+"["+.@num+"]")+"x " + GetItemName(getd("$questmasterq_"+.@Choose+"["+.@num+"]")) + ".";
if( .@ZenyCost )
mes "E ^FF0000" + .@ZenyCost + "^000000 zenys.";
next;
switch(select("Fazer a quest agora!","Vou pensar mais um pouco...") )
{
case 1:
if( checkweight($questmaster_id[.@Choose],getd("$questmasteramount_"+.@Choose+"[0]")) == 0 )
{
mes "^00BFFF[Master of Quests]^000000";
mes "Você está carregando muitos itens com você.";
mes "Por favor, volte depois que usar o Serviço de Armazém Kafra para armazenar alguuns de seus itens.";
close;
}
for( set .@num,1; .@num < .@Size; set .@num, .@num + 1 )
{
set .@id[.@num],getd("$questmasterq_"+.@Choose+"["+.@num+"]");
set .@amount[.@num],getd("$questmasteramount_"+.@Choose+"["+.@num+"]");
if( countitem(.@id[.@num]) < .@amount[.@num] )
{
mes "^00BFFF[Master of Quests]^000000";
mes "Me desculpe, mais você não tem "+.@amount[.@num]+"x "+getitemname(.@id[.@num])+"!";
close;
}
}
if( .@ZenyCost && Zeny < .@ZenyCost)
{
mes "^00BFFF[Master of Quests]^000000";
mes "Me desculpe, mais você não tem " + .@ZenyCost + " suficiente.";
close;
}
for( set .@num,1; .@num < .@Size; set .@num, .@num + 1 )
delitem .@id[.@num],.@amount[.@num];
mes "^00BFFF[Master of Quests]^000000";
mes "Muito bem, aqui está sua recompensa...";
getitem $questmaster_id[.@Choose],getd("$questmasteramount_"+.@Choose+"[0]");
if( .@ZenyCost )
set Zeny, Zeny - .@ZenyCost;
break;
case 2:
mes "^00BFFF[Master of Quests]^000000";
mes "Estarei aqui se precisar.";
break;
}
return;
OnQuestRemaker:
set .@Size,getarraysize($questmaster_id);
for( set .@num, 0; .@num < .@Size; set .@num, .@num + 1 )
set .@ChooseMenu$, .@ChooseMenu$+GetItemName(getd("$questmaster_id"+"["+.@num+"]"))+":";
set .@ChooseMenu$,.@ChooseMenu$+"^FF0000Cancelar^000000";
set $@Choose,select(.@ChooseMenu$)-1;
if( ($@Choose+1) > .@num )
{
mes "^00BFFF[Master of Quests]^000000";
mes "Estarei aqui caso precisar.";
close;
}
return;
}

o restante vou ver se tenho e edito aqui se esse npc funcionar me ajuda ai no like >>>>
Edited by sirchrono
  • Love 1

Share this post


Link to post
Share on other sites

Creio que o npc de quest que você procura seja esse:


Não consigo postar!! '-'

O post não salva, quando coloco o codigo fonte ¬¬


@edit

Sendo assim, aqui o Link


Pra adicionar ou remover itens:

Basta entender as seguintes linhas:

case 1: callsub OnBuyItem,50,"SZeny",505,1,"announce";case 2: callsub OnBuyItem,502,1,0,"SZeny",502,1;case 3: callsub OnBuyItem,502,1,1000,"Zeny",504,1,501,1;case 4: callsub OnBuyItem,923,20,1000,"SZeny",2284,1,501,1,"announce";

Agora vamos entender a linha:

Ex:

case 4: callsub OnBuyItem,923,20,1000,"SZeny",2284,1,501,1,"announce";

case 4: é a ordem do item na lista

callsub OnBuyItem > Chama a função de quest ao tentar comprar o item

923,20,1000,"SZeny" > Aqui são os requerimentos para a quest = precisa de 20x item 923, e de 1000 Zeny

2284,1,501,1, > Aqui são as recompensas da quest = O player vai ganhar 1x 2284 e 1x 501

"announce" > Vai anunciar para todo o server que o player concluiu a quest (É OPICIONAL)

  • Love 1

Share this post


Link to post
Share on other sites

Refine!

prt_in.gat,53,56,0 script Suhnbi 85,{mes "[Suhnbi]";mes "I am the Armsmith";mes "I can refine all kinds of weapons,";mes "armor and equipment, so let me";mes "know what you want to refine.";next;setarray .@position$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";set .@menu$,"";for( set .@i,1; .@i <= 10; set .@i,.@i+1 ){if( getequipisequiped(.@i) )set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";set .@menu$, .@menu$ + ":";}set .@part,select(.@menu$);if( !getequipisequiped(.@part) )close;if( !getequipisenableref(.@part) ){mes "[Suhnbi]";mes "I don't think I can refine this item at all.";close;}if( !getequipisidentify(.@part) ){mes "[Suhnbi]";mes "This has not been identified. So, it can't be refined...";close;}if( getequiprefinerycnt(.@part) >= 10 ){mes "[Suhnbi]";mes "This item cannot be refined because it has already reached its maximum level...";close;}// Make sure you have the neccessary items and Zeny to refine your items// Determines chance of failure and verifies that you want to continue.switch( getequipweaponlv(.@part) ){case 1: callsub S_RefineValidate,1,7620,50,.@part; break;case 2: callsub S_RefineValidate,2,7620,200,.@part; break;case 3: callsub S_RefineValidate,3,7620,5000,.@part; break;case 4: callsub S_RefineValidate,4,7620,25000,.@part; break;default: callsub S_RefineValidate,0,7619,2000,.@part; break;}if( getequippercentrefinery(.@part) > rand(100) || getequippercentrefinery(.@part) > rand(100) ){mes "[Suhnbi]";mes "Clink! Clank! Clunk!";SuccessRefItem .@part;next;Emotion e_no1;mes "[Suhnbi]";mes "Here you are! It's done.";mes "It's been a while since I've made such a fine weapon. You must be happy because it has become stronger!";close;}else{mes "[Suhnbi]";mes "Clink! Clank! Clunk!";FailedRefItem .@part;next;if (rand(5) == 1)Emotion e_cash;else Emotion e_omg;mes "[Suhnbi]";mes "Cough!!!!";next;mes "[Suhnbi]";mes "Cough...Cough..";mes "What a shame...";mes "Your equipment broke during the refining process. I had told you earlier this might happen!";close;}S_RefineValidate:mes "[Suhnbi]";if (getarg(0))mes "A level " + getarg(0) + " weapon...";mes "To refine this I need one ^ff9999" + getitemname(getarg(1)) + "^000000 and a service fee of " + getarg(2) + " Zeny.";mes "Do you wish to continue?";next;if( select("Yes:No") == 1 ){if( getequippercentrefinery(getarg(3)) < 100 ){mes "[Suhnbi]";mes "Wow!!";mes "This weapon, probably";mes "looks like it's been refined...";mes "many times...";mes "It may break if";mes "you refine it again.";next;mes "And if it breaks,";mes "you can't use it anymore!";mes "All the cards in it and the";mes "properties";mes "^ff0000will be lost^000000!!";mes "^ff0000 besides, the equipment will break!^000000";mes " ";mes "Are you sure you still want to continue?";next;if( select("Yes:No") == 2 ){mes "[Suhnbi]";mes "I completely agree...";mes "I might be a great refiner, but sometimes even I make mistakes.";close;}}if( countitem(getarg(1)) > 0 && Zeny > getarg(2) ){delitem getarg(1), 1;set Zeny, Zeny - getarg(2);return;}else{mes "[Suhnbi]";mes "You don't seem to have enough Zeny or " + getitemname(getarg(1)) + "...";mes "Go get some more. I'll be here all day if you need me.";close;}}else{mes "[Suhnbi]";mes "Yeah... There's no need to rush.";mes "Take your time.";close;}}

Share this post


Link to post
Share on other sites

O seu não consegui colocar no jogo, não consegui dar todos os TABS

Boas, Amigo se vc for ali na área de download>Scripts vc acha um monte de npc legal só dar uma procuradinha =) mas ta ai

force_1-1,25,186,5 script Sr.das Quest 63,{

if( getgmlevel() == 99 )
{
mes "^00BFFF[Master of Quests]^000000";
mes "Olá Senhor(a) Administrador(a),";
mes "O que deseja dos meus serviços?";
next;
switch ( select ("Checar Quests.","Adicionar uma Nova Quest.","Remover uma Quest.","Limpar Todas a Quests.","Cancelar.") )
{
case 1:
mes "^00BFFF[Master of Quests]^000000";
mes "Muito bem administrador, escolha a quest que deseja checar:";
next;
callsub OnPlayerMenu;
break;
case 2:
mes "^00BFFF[Master of Quests]^000000";
mes "Você escolheu 'Adicionar uma Nova Quests'.";
mes "Por favor, digite o ID do Item que o jogador vai ganhar ao terminar a quest.";
next;
input .@getitem[0];
mes "^00BFFF[Master of Quests]^000000";
mes "Por favor, digite a quantidade de ^FF0000" + GetItemName(.@getitem[0]);
mes "^000000que o jogador vai ganhar quando terminar a quest.";
next;
input .@amount[0];
mes "^00BFFF[Master of Quests]^000000";
mes "Por favor, didite o id do";
mes "1° Item requerido para";
mes "fazer a quest.";
next;
input .@getitem[1];
mes "^00BFFF[Master of Quests]^000000";
mes "Muito bem, agora digite a quantia de ^FF0000" + GetItemName(.@getitem[1]) + "^000000 que precisa para fazer a quest.";
next;
input .@amount[1];
mes "^00BFFF[Master of Quests]^000000";
mes "Muito bem, o jogador deve trazer ^FF0000" + .@amount[1] + " " + GetItemName(.@getitem[1]) + "^000000.";
next;
mes "^00BFFF[Master of Quests]^000000";
mes "Deseja adicionar mais algum item?";
next;
if( select( "Sim.", "Não" ) == 1)
{
set .@loop,1;
set .@num,2;
}
else
set .@loop,0;
while( .@loop )
{
mes "^00BFFF[Master of Quests]^000000";
mes "Por favor, didite o id do";
mes .@num+"° Item requerido para";
mes "fazer a quest.";
next;
input .@getitem[.@num];
mes "^00BFFF[Master of Quests]^000000";
mes "Por favor, digite a qunatidade de ^FF0000" + GetItemName(.@getitem[.@num]);
mes "^000000que o jogador vai ganhar quando terminar a quest.";
next;
input .@amount[.@num];
mes "^00BFFF[Master of Quests]^000000";
mes "Muito bem, o jogador deve trazer ^FF0000" + .@amount[.@num] + " " + GetItemName(.@getitem[.@num]) + "^000000.";
next;
mes "^00BFFF[Master of Quests]^000000";
mes "O Senhor(a) deseja adicionar mais algum item?";
next;
if( select( "Sim.", "Não" ) == 1 )
set .@num, .@num + 1;
else
set .@loop,0;
}
mes "^00BFFF[Master of Quests]^000000";
mes "Por favor, digite o Custo de Zeny que vai ser cobrado para fazer a Quest.";
mes "Se você digitar '0', o Custo de Zeny será ignorado na hora de fazer a Quest.";
next;
input .@ZenyCost;
set .@Size,getarraysize(.@getitem);
mes "^00BFFF[Master of Quests]^000000";
mes "Muito bem, veja se está tudo correto.";
mes "O jogador ganha ^FF0000"+.@amount[0]+" " + getitemname(.@getitem[0]) + "^000000 se trouxer:";
for( set .@num, 1; .@num < .@Size; set .@num, .@num + 1 )
mes .@amount[.@num]+"x " + getitemname(.@getitem[.@num]);
if( .@ZenyCost )
mes "E " + .@ZenyCost +"zenys";
next;
mes "^00BFFF[Master of Quests]^000000";
mes "Está tudo correto?";
next;
if( select( "Está tudo correto.", "Cancelar a Operação" ) == 1 )
{
set .@QuestId,0;
set .@Size,getarraysize($questmaster_id);
set .@loop,1;
set .@num,0;
while(.@loop)
{
if( $questmaster_id[.@num] == 0 || .@num == .@Size )
set .@loop,0;
else
set .@num, .@num + 1;
}
set .@QuestId, .@num;
mes "^00BFFF[Master of Quests]^000000";
mes "A Quest foi deletada com sucesso, qualquer bug ou erro";
mes "reporte ao membro 'SirChrono' no fórum de suporte do Chacal-Ro.";
mes "Obrigado por utilizar meus serviços.";
set $questmaster_id[.@QuestId],.@getitem[0];
setd "$questmasteramount_"+.@QuestId+"[0]",.@amount[0];
set .@Size,getarraysize(.@getitem);
for ( set .@num, 1; .@num <= .@Size; set .@num, .@num + 1) {
setd "$questmasterq_"+.@QuestId+"["+.@num+"]",.@getitem[.@num];
setd "$questmasteramount_"+.@QuestId+"["+.@num+"]",.@amount[.@num];
}
setd "$questmasterzeny_"+.@QuestId, .@ZenyCost;
}
else {
mes "^00BFFF[Master of Quests]^000000";
mes "Por favor tente novamente, mais tenha um pouco mais de atenção.";
}
close;
case 3:
mes "^00BFFF[Master of Quests]^000000";
mes "Qual a Quest que o Senhor(a) deseja remover?";
next;
callsub OnQuestRemaker;
set .@Choose, $@Choose;
mes "^00BFFF[Master of Quests]^000000";
mes "O Senhor(a) deseja remover a Quest da ^FF0000" + GetItemName($questmaster_id[.@Choose]) + "^000000?";
next;
if( Select (" Sim.", "Não" ) == 1 )
{
set .@Size,getarraysize(getd("$questmasterq_"+.@Choose));
for( set .@num,1; .@num < .@Size; set .@num, .@num + 1 )
{
setd "$questmasterq_"+.@Choose+"["+.@num+"]",0;
setd "$questmasteramount_"+.@Choose+"["+.@num+"]",0;
}
set $questmaster_id[.@Choose],0;
setd "$questmasteramount_"+.@Choose+"[0]",0;
setd "$questmasterzeny_"+.@Choose,0;
mes "^00BFFF[Master of Quests]^000000";
mes "A Quest foi deletada com sucesso, qualquer bug ou erro";
mes "reporte ao membro 'SirChrono' no fórum de suporte do Chacal-Ro.";
mes "Obrigado por utilizar meus serviços";
}
else {
mes "^00BFFF[Master of Quests]^000000";
mes "Estarei aqui se precisar...";
}
break;
case 4:
set .@Size,getarraysize($questmaster_id);
for( set .@num,0; .@num < .@Size; set .@num, .@num + 1 )
{
set .@Size2,getarraysize(getd("$questmasterq_"+.@num));
for( set .@num2,1; .@num2 < .@Size2; set .@num2, .@num2 + 1 )
{
setd "$questmasterq_"+.@num+"["+.@num2+"]",0;
setd "$questmasteramount_"+.@num+"["+.@num2+"]",0;
}
set $questmaster_id[.@num],0;
setd "$questmasteramount_"+.@num+"[0]",0;
setd "$questmasterzeny_"+.@num,0;
}
mes "^00BFFF[Master of Quests]^000000";
mes "Todas as quests foram deletada!";
break;
case 5:
mes "^00BFFF[Master of Quests]^000000";
mes "Estarei aqui se precisar...";
break;
}
}
else {
mes "^00BFFF[Master of Quests]^000000";
mes "Olá ^FF0000"+ strcharinfo(0) + "^000000, gostária de fazer alguma quest?";
next;
callsub OnPlayerMenu;
}
close;
OnPlayerMenu:
callsub OnQuestRemaker;
set .@Choose,$@Choose;
set .@ZenyCost, getd("$questmasterzeny_"+.@Choose);
mes "^00BFFF[Master of Quests]^000000";
mes "Muito bem, você gostária de fazer a quest da ^FF0000" + GetItemName($questmaster_id[.@Choose]) + "^000000 certo?";
next;
set .@Size,getarraysize(getd("$questmasterq_"+.@Choose));
mes "^00BFFF[Master of Quests]^000000";
mes "Para fazer a quest da ^FF0000" + GetItemName($questmaster_id[.@Choose]) + "^000000 você precisa me trazer:";
for( set .@num,1; .@num < .@Size; set .@num, .@num + 1 )
mes getd("$questmasteramount_"+.@Choose+"["+.@num+"]")+"x " + GetItemName(getd("$questmasterq_"+.@Choose+"["+.@num+"]")) + ".";
if( .@ZenyCost )
mes "E ^FF0000" + .@ZenyCost + "^000000 zenys.";
next;
switch(select("Fazer a quest agora!","Vou pensar mais um pouco...") )
{
case 1:
if( checkweight($questmaster_id[.@Choose],getd("$questmasteramount_"+.@Choose+"[0]")) == 0 )
{
mes "^00BFFF[Master of Quests]^000000";
mes "Você está carregando muitos itens com você.";
mes "Por favor, volte depois que usar o Serviço de Armazém Kafra para armazenar alguuns de seus itens.";
close;
}
for( set .@num,1; .@num < .@Size; set .@num, .@num + 1 )
{
set .@id[.@num],getd("$questmasterq_"+.@Choose+"["+.@num+"]");
set .@amount[.@num],getd("$questmasteramount_"+.@Choose+"["+.@num+"]");
if( countitem(.@id[.@num]) < .@amount[.@num] )
{
mes "^00BFFF[Master of Quests]^000000";
mes "Me desculpe, mais você não tem "+.@amount[.@num]+"x "+getitemname(.@id[.@num])+"!";
close;
}
}
if( .@ZenyCost && Zeny < .@ZenyCost)
{
mes "^00BFFF[Master of Quests]^000000";
mes "Me desculpe, mais você não tem " + .@ZenyCost + " suficiente.";
close;
}
for( set .@num,1; .@num < .@Size; set .@num, .@num + 1 )
delitem .@id[.@num],.@amount[.@num];
mes "^00BFFF[Master of Quests]^000000";
mes "Muito bem, aqui está sua recompensa...";
getitem $questmaster_id[.@Choose],getd("$questmasteramount_"+.@Choose+"[0]");
if( .@ZenyCost )
set Zeny, Zeny - .@ZenyCost;
break;
case 2:
mes "^00BFFF[Master of Quests]^000000";
mes "Estarei aqui se precisar.";
break;
}
return;
OnQuestRemaker:
set .@Size,getarraysize($questmaster_id);
for( set .@num, 0; .@num < .@Size; set .@num, .@num + 1 )
set .@ChooseMenu$, .@ChooseMenu$+GetItemName(getd("$questmaster_id"+"["+.@num+"]"))+":";
set .@ChooseMenu$,.@ChooseMenu$+"^FF0000Cancelar^000000";
set $@Choose,select(.@ChooseMenu$)-1;
if( ($@Choose+1) > .@num )
{
mes "^00BFFF[Master of Quests]^000000";
mes "Estarei aqui caso precisar.";
close;
}
return;
}

o restante vou ver se tenho e edito aqui se esse npc funcionar me ajuda ai no like >>>>

Já o seu tá bugado, ele não faz nada, só aparece o item e quando compra não aparece a janela dizendo de que itens precisa para fazer a quest.

Creio que o npc de quest que você procura seja esse:


Não consigo postar!! '-'

O post não salva, quando coloco o codigo fonte ¬¬


@edit

Sendo assim, aqui o Link


Pra adicionar ou remover itens:

Basta entender as seguintes linhas:

case 1: callsub OnBuyItem,50,"SZeny",505,1,"announce";case 2: callsub OnBuyItem,502,1,0,"SZeny",502,1;case 3: callsub OnBuyItem,502,1,1000,"Zeny",504,1,501,1;case 4: callsub OnBuyItem,923,20,1000,"SZeny",2284,1,501,1,"announce";

Agora vamos entender a linha:

Ex:

case 4: callsub OnBuyItem,923,20,1000,"SZeny",2284,1,501,1,"announce";

case 4: é a ordem do item na lista

callsub OnBuyItem > Chama a função de quest ao tentar comprar o item

923,20,1000,"SZeny" > Aqui são os requerimentos para a quest = precisa de 20x item 923, e de 1000 Zeny

2284,1,501,1, > Aqui são as recompensas da quest = O player vai ganhar 1x 2284 e 1x 501

"announce" > Vai anunciar para todo o server que o player concluiu a quest (É OPICIONAL)

Share this post


Link to post
Share on other sites

O seu não consegui colocar no jogo, não consegui dar todos os TABS

Já o seu tá bugado, ele não faz nada, só aparece o item e quando compra não aparece a janela dizendo de que itens precisa para fazer a quest.

Mano, então você ta fazendo algo errado, pq eu testei aqui!! ta 100%

Me manda um print do log do seu map-server

@add

Aqui vai o NPC de troca de moedas!!

Eu que fiz ele, qualquer dúvida de como configurar só me chamar!!

Se não funcionar, ta fazendo algo de errado, pq testei 100%!!

Ele está configurado pra sair:

10% chance de CASH

20% chance de Equips

80% chance de Zeny

Todos em valor (ou ID) aleatorio, que pode ser configurado no começo do script!

Trocar Moedas:

//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%//%%           _____    _____   _____   _____   _____    _   _____   _   _            %%//%%          |  _  \  /  _  \ |  _  \ | ____| |  _  \  | | /  ___| | | / /           %%//%%          | |_| |  | | | | | | | | | |__   | |_| |  | | | |     | |/ /            %%//%%          |  _  /  | | | | | | | | |  __|  |  _  /  | | | |     | |\ \            %%//%%          | | \ \  | |_| | | |_| | | |___  | | \ \  | | | |___  | | \ \           %%//%%          |_|  \_\ \_____/ |_____/ |_____| |_|  \_\ |_| \_____| |_|  \_\          %%//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%//%%==================================================================================%%//%% | Desenvolvido Por [ADM] Roderick | Cronus | Por Favor, Não Retire Os Créditos | %%//%%==================================================================================%%//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%prontera,150,150,5	script	Trocar Moeda	720,{set .@item,7539; // ID do item de troca;setarray .@equips[0],5794,5214,5786,18518; //ID dos itens que pode ser pego;setarray .@zeny[0],500000,1000000,5000000,10000000; //Quantidade de zeny que pode ser pegada;setarray .@cash[0],500,1000,2000,5000; //Quantidade de case que pode ser pegada;mes "Olá ^0000FF "+strcharinfo(0)+"^000000";mes "";mes "Gostaria de trocar suas ^FF0000"+getitemname(.@item)+"^000000 ???";if(select("Sim:Não")==2) close;next;mes "Você quer trocar que quantidade??";switch(select("Uma:Digitar quantia:Todas")){	case 1:		if (countitem(.@item)==0){		next;		mes "Me desculpe mas você não tem nenhuma ^FF0000"+getitemname(.@item)+"^000000";		close;		}	set .@qtde,1;	next;	goto Trocar;		case 2:	next;	mes "Digite a quantidade";	input .@qtde;		if (countitem(.@item)<.@qtde){		next;		mes "Você não possui ^FF0000"+.@qtde+" "+getitemname(.@item)+"^000000";		close;		}	next;	goto Trocar;		case 3:		if (countitem(.@item)==0){		next;		mes "Me desculpe mas você não tem nenhuma ^FF0000"+getitemname(.@item)+"^000000";		close;		}	next;	goto TrAll;}Trocar:set .@x,.@qtde;delitem .@item,.@qtde;	for (set .@c,1; .@c<=.@x && .@c>0; set .@c,.@c+1){	set .@tipo,rand(1,100);		if(.@tipo <= 10){			set .@limite,getarraysize(.@cash)-1;			set .@qual,rand(0,.@limite);			atcommand "@cash "+.@cash[.@qual];			mes "Você conseguiu ^FF0000"+.@cash[.@qual]+" ^000000^339966Cash^000000";		}		if(.@tipo >10 && .@tipo <=30){			set .@limite,getarraysize(.@equips)-1;			set .@qual,rand(0,.@limite);			mes "Você conseguiu ^FF00001^000000^0000FF "+getitemname(.@equips[.@qual])+" ^000000";		}		if(.@tipo >30){			set .@limite,getarraysize(.@zeny)-1;			set .@qual,rand(0,.@limite);			atcommand "@zeny "+.@zeny[.@qual];			mes "Você conseguiu ^FF0000"+.@zeny[.@qual]+" ^000000^C0C0C0Zeny^000000";		}	}close;TrAll:	for (set .@c,countitem(.@item); .@c==countitem(.@item) && .@c>0; set .@c,countitem(.@item)){	set .@tipo,rand(1,100);		if(.@tipo <= 10 && .@c >0){			set .@limite,getarraysize(.@cash)-1;			set .@qual,rand(0,.@limite);			atcommand "@cash "+.@cash[.@qual];			mes "Você conseguiu ^FF0000"+.@cash[.@qual]+" ^000000^339966Cash^000000";		}		if(.@tipo >10 && .@tipo <=30){			set .@limite,getarraysize(.@equips)-1;			set .@qual,rand(0,.@limite);			getitem .@equips[.@qual],1;			mes "Você conseguiu ^FF00001^000000^0000FF "+getitemname(.@equips[.@qual])+" ^000000";		}		if(.@tipo >30){			set .@limite,getarraysize(.@zeny)-1;			set .@qual,rand(0,.@limite);			atcommand "@zeny "+.@zeny[.@qual];			mes "Você conseguiu ^FF0000"+.@zeny[.@qual]+" ^000000^C0C0C0Zeny^000000";		}	delitem .@item,1;	}close;end;}

*PS: Também estou aguardando o seu print, pq como disse o npc das quest foi testado e tbm está 100%!!

Edited by RodRich

Share this post


Link to post
Share on other sites

Então testei de novo, mais quando coloco novos itens , ou ele não fala nada, ou ele não muda da poção.

Olha aqui a parte final do NPC.

OnInit:
npcshopdelitem "quest_shop",20022;
set .BuildQuest,1;
set .i,1;
Quest_Setup:
switch(.i) {
default: set .BuildQuest,0; set .e,0; set .i,0; end;
case 1: callsub OnBuyItem,5361,1,6046,1,0,"SZeny",20022,1,"announce";
case 2: callsub OnBuyItem,502,1,0,"SZeny",502,1;
case 3: callsub OnBuyItem,502,1,1000,"Zeny",504,1,501,1;
case 4: callsub OnBuyItem,923,20,1000,"SZeny",2284,1,501,1,"announce";
}
}

Mano, então você ta fazendo algo errado, pq eu testei aqui!! ta 100%

Me manda um print do log do seu map-server


@add

Aqui vai o NPC de troca de moedas!!

Eu que fiz ele, qualquer dúvida de como configurar só me chamar!!

Se não funcionar, ta fazendo algo de errado, pq testei 100%!!

Ele está configurado pra sair:

10% chance de CASH

20% chance de Equips

80% chance de Zeny

Todos em valor (ou ID) aleatorio, que pode ser configurado no começo do script!

Trocar Moedas:

//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%//%%           _____    _____   _____   _____   _____    _   _____   _   _            %%//%%          |  _  \  /  _  \ |  _  \ | ____| |  _  \  | | /  ___| | | / /           %%//%%          | |_| |  | | | | | | | | | |__   | |_| |  | | | |     | |/ /            %%//%%          |  _  /  | | | | | | | | |  __|  |  _  /  | | | |     | |\ \            %%//%%          | | \ \  | |_| | | |_| | | |___  | | \ \  | | | |___  | | \ \           %%//%%          |_|  \_\ \_____/ |_____/ |_____| |_|  \_\ |_| \_____| |_|  \_\          %%//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%//%%==================================================================================%%//%% | Desenvolvido Por [ADM] Roderick | Cronus | Por Favor, Não Retire Os Créditos | %%//%%==================================================================================%%//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%prontera,150,150,5	script	Trocar Moeda	720,{set .@item,7539; // ID do item de troca;setarray .@equips[0],5794,5214,5786,18518; //ID dos itens que pode ser pego;setarray .@zeny[0],500000,1000000,5000000,10000000; //Quantidade de zeny que pode ser pegada;setarray .@cash[0],500,1000,2000,5000; //Quantidade de case que pode ser pegada;mes "Olá ^0000FF "+strcharinfo(0)+"^000000";mes "";mes "Gostaria de trocar suas ^FF0000"+getitemname(.@item)+"^000000 ???";if(select("Sim:Não")==2) close;next;mes "Você quer trocar que quantidade??";switch(select("Uma:Digitar quantia:Todas")){	case 1:		if (countitem(.@item)==0){		next;		mes "Me desculpe mas você não tem nenhuma ^FF0000"+getitemname(.@item)+"^000000";		close;		}	set .@qtde,1;	next;	goto Trocar;		case 2:	next;	mes "Digite a quantidade";	input .@qtde;		if (countitem(.@item)<.@qtde){		next;		mes "Você não possui ^FF0000"+.@qtde+" "+getitemname(.@item)+"^000000";		close;		}	next;	goto Trocar;		case 3:		if (countitem(.@item)==0){		next;		mes "Me desculpe mas você não tem nenhuma ^FF0000"+getitemname(.@item)+"^000000";		close;		}	next;	goto TrAll;}Trocar:set .@x,.@qtde;delitem .@item,.@qtde;	for (set .@c,1; .@c<=.@x && .@c>0; set .@c,.@c+1){	set .@tipo,rand(1,100);		if(.@tipo <= 10){			set .@limite,getarraysize(.@cash)-1;			set .@qual,rand(0,.@limite);			atcommand "@cash "+.@cash[.@qual];			mes "Você conseguiu ^FF0000"+.@cash[.@qual]+" ^000000^339966Cash^000000";		}		if(.@tipo >10 && .@tipo <=30){			set .@limite,getarraysize(.@equips)-1;			set .@qual,rand(0,.@limite);			mes "Você conseguiu ^FF00001^000000^0000FF "+getitemname(.@equips[.@qual])+" ^000000";		}		if(.@tipo >30){			set .@limite,getarraysize(.@zeny)-1;			set .@qual,rand(0,.@limite);			atcommand "@zeny "+.@zeny[.@qual];			mes "Você conseguiu ^FF0000"+.@zeny[.@qual]+" ^000000^C0C0C0Zeny^000000";		}	}close;TrAll:	for (set .@c,countitem(.@item); .@c==countitem(.@item) && .@c>0; set .@c,countitem(.@item)){	set .@tipo,rand(1,100);		if(.@tipo <= 10 && .@c >0){			set .@limite,getarraysize(.@cash)-1;			set .@qual,rand(0,.@limite);			atcommand "@cash "+.@cash[.@qual];			mes "Você conseguiu ^FF0000"+.@cash[.@qual]+" ^000000^339966Cash^000000";		}		if(.@tipo >10 && .@tipo <=30){			set .@limite,getarraysize(.@equips)-1;			set .@qual,rand(0,.@limite);			getitem .@equips[.@qual],1;			mes "Você conseguiu ^FF00001^000000^0000FF "+getitemname(.@equips[.@qual])+" ^000000";		}		if(.@tipo >30){			set .@limite,getarraysize(.@zeny)-1;			set .@qual,rand(0,.@limite);			atcommand "@zeny "+.@zeny[.@qual];			mes "Você conseguiu ^FF0000"+.@zeny[.@qual]+" ^000000^C0C0C0Zeny^000000";		}	delitem .@item,1;	}close;end;}

*PS: Também estou aguardando o seu print, pq como disse o npc das quest foi testado e tbm está 100%!!

Share this post


Link to post
Share on other sites

Então testei de novo, mais quando coloco novos itens , ou ele não fala nada, ou ele não muda da poção.

Olha aqui a parte final do NPC.

OnInit:

npcshopdelitem "quest_shop",20022;

set .BuildQuest,1;

set .i,1;

Quest_Setup:

switch(.i) {

default: set .BuildQuest,0; set .e,0; set .i,0; end;

case 1: callsub OnBuyItem,5361,1,6046,1,0,"SZeny",20022,1,"announce";

case 2: callsub OnBuyItem,502,1,0,"SZeny",502,1;

case 3: callsub OnBuyItem,502,1,1000,"Zeny",504,1,501,1;

case 4: callsub OnBuyItem,923,20,1000,"SZeny",2284,1,501,1,"announce";

}

}

Faz o seguinte passa uns 3 itens que você quer colocar de quest, e os requerimentos que eu testo e te mando!!

E o trocador de moedas deu certo? Era isso??

Share this post


Link to post
Share on other sites

Sim, o trocador de moeda funfo.

Vou te mandar os itens que quero.

Item - Requerimento (ID, Qnt)

5361 10019,20,975,10,7301,100,2218,60,7066,60,906,80

5314 2297,20,2281,1,618,20,998,100,999,50,943,100

5325 2242,80,725,40,969,3,953,100,903,50

Faz o seguinte passa uns 3 itens que você quer colocar de quest, e os requerimentos que eu testo e te mando!!

E o trocador de moedas deu certo? Era isso??

Share this post


Link to post
Share on other sites

Sim, o trocador de moeda funfo.

Vou te mandar os itens que quero.

Item - Requerimento (ID, Qnt)

5361 10019,20,975,10,7301,100,2218,60,7066,60,906,80

5314 2297,20,2281,1,618,20,998,100,999,50,943,100

5325 2242,80,725,40,969,3,953,100,903,50

Aqui está cara:

LINK PASTE BIN

print_rag1.jpg

print_rag2.jpg

Aí está a prova real!! Funfando 100%!!

Por favor se te ajudei não esquece de deixar aquele LIKE :confiante:

Share this post


Link to post
Share on other sites

Você está usando o Hexed 30/07/2010??

Me manda o scrit com esses itens aí por favor.

Aqui está cara:

LINK PASTE BIN

print_rag1.jpg

print_rag2.jpg

Aí está a prova real!! Funfando 100%!!

Por favor se te ajudei não esquece de deixar aquele LIKE :confiante:

Share this post


Link to post
Share on other sites

Você está usando o Hexed 30/07/2010??

Me manda o scrit com esses itens aí por favor.

Não eu uso o hexed 2012-10-04

E eu já mandei o script, está no link aí acima!!

Share this post


Link to post
Share on other sites

Então será que é compatível?

Não eu uso o hexed 2012-10-04

E eu já mandei o script, está no link aí acima!!

Share this post


Link to post
Share on other sites

Então será que é compatível?

Não tem nada haver o hexed com scripts!!

O que julgaria seria o emulador, mas não tem nada de diferente nesse script pra seu emulador não ler!!

A não ser q nao esteja usando o Cronus!!!?

Não conseguiu usar??

Tira print do seu log q vc facilita as coisas!!

Share this post


Link to post
Share on other sites

Agora não carregou o script :/

É que eu uso na host, então não sei como te mostrar os logs.

Não tem nada haver o hexed com scripts!!

O que julgaria seria o emulador, mas não tem nada de diferente nesse script pra seu emulador não ler!!

A não ser q nao esteja usando o Cronus!!!?

Não conseguiu usar??

Tira print do seu log q vc facilita as coisas!!

Edited by Karthago

Share this post


Link to post
Share on other sites

Agora não carregou o script :/

É que eu uso na host, então não sei como te mostrar os logs.

Amigo, sugiro então pra vc correr atras pra aprender manipular os Log's Online.

Pq eu posso dizer é praticamente impossivel você tocar um servidor sem poder visualizar seus logs!!

Eles são mto importante e ainda vao fazer ainda mais falta!!

@edit

E mesmo sendo da Host... QUAL EMULADOR QUE VOCÊ USA???

Edited by RodRich

Share this post


Link to post
Share on other sites

Uso o Cronus Rev 3338.

Vou procurar, como ver esses logs, são os do Mapserver é?

Amigo, sugiro então pra vc correr atras pra aprender manipular os Log's Online.

Pq eu posso dizer é praticamente impossivel você tocar um servidor sem poder visualizar seus logs!!

Eles são mto importante e ainda vao fazer ainda mais falta!!


@edit

E mesmo sendo da Host... QUAL EMULADOR QUE VOCÊ USA???

Share this post


Link to post
Share on other sites

Uso o Cronus Rev 3338.

Vou procurar, como ver esses logs, são os do Mapserver é?

Isso, o mais importante pra manipular os scripts são o Map-server...

mas todos são importantes tanto o Login-server e o char-server tbm!!

Share this post


Link to post
Share on other sites

Então eu até achei, mais não tem nenhuma informação do npc. Nada de log do NPC.

Antes ele aparecia no mapa, agora não aparece mais.

Quando mando o comando, @loadnpc só diz script carregado, mais o npc não aparece no mapa.

Isso, o mais importante pra manipular os scripts são o Map-server...

mas todos são importantes tanto o Login-server e o char-server tbm!!

Share this post


Link to post
Share on other sites

Então eu até achei, mais não tem nenhuma informação do npc. Nada de log do NPC.

Antes ele aparecia no mapa, agora não aparece mais.

Quando mando o comando, @loadnpc só diz script carregado, mais o npc não aparece no mapa.

Que estranho, geralmente quando o npc não aparece, é pq tem algum erro!! Então deveria aparecer no LOG!!

Não estou duvidando nem nada, mas pode mandar o PRINT??

Share this post


Link to post
Share on other sites

Aqui está. Consegue revolver :/ ?, queria muito esse npc .

1zw4qw.jpg

Que estranho, geralmente quando o npc não aparece, é pq tem algum erro!! Então deveria aparecer no LOG!!

Não estou duvidando nem nada, mas pode mandar o PRINT??

Edited by Karthago

Share this post


Link to post
Share on other sites

Aqui está. Consegue revolver :/ ?, queria muito esse npc .

1zw4qw.jpg

Ele nem aparece na lista???

ou é pq a imagem cortou??

qual nome que vc colocou no arquivo?

@P.S:

Esse log não está atualizado!!

A menos que hora do servidor esteja errado (o que acho que não é o caso)

Esse log foi do registro feito às 01 da manhã!!

Pelo visto você não recarregou os scripts!!

Usa esse comando in-game, e tira outro print do LOG:

@reloadscripts

Share this post


Link to post
Share on other sites

Infelizmente não funcionou, dei reloadscript e mesmo assim o NPC não apareceu.

¬¬

Ele nem aparece na lista???

ou é pq a imagem cortou??

qual nome que vc colocou no arquivo?


@P.S:

Esse log não está atualizado!!

A menos que hora do servidor esteja errado (o que acho que não é o caso)

Esse log foi do registro feito às 01 da manhã!!

Pelo visto você não recarregou os scripts!!

Usa esse comando in-game, e tira outro print do LOG:

@reloadscripts

Share this post


Link to post
Share on other sites

Infelizmente não funcionou, dei reloadscript e mesmo assim o NPC não apareceu.

¬¬

Mas e o LOG??

Share this post


Link to post
Share on other sites
Sign in to follow this  

Seja bem vindo ao Cronus-Emulator.
É sempre um prazer te-lo conosco.
Você pode visualizar nossas áreas de suporte para encontrar suas soluções sem a necessidade de se registrar!
Registrando em nossa comunidade, você poderá conhecer mais sobre nosso projeto, criar tópicos, responder tópicos existentes, baixar milhares de recursos em nosso sistema de downloads, participar de nossa comunidade, customizar seu perfil e muito mais... Se você já possui uma conta, faça seu login - ou crie uma conta. Também temos integração com Google+ e Facebook.

×
×
  • Create New...