Ir para conteúdo
  • Cadastre-se
  • 0
Entre para seguir isso  
himari

Alterações nesse NPC de indicações

Pergunta

Olá pessoal tudo blz? este NPC é de autoria do ComeTower foi feito a muito tempo devido a uma ideia minha ele gostou e resolveu colocar em pratica, porem ele tem alguns problemas, e se possível gostaria que alguém corrigi-se, o sistema em si funciona perfeitamente faz a contagem do tempo direitinho e tudo mais primeiramente vou explicar o que é o NPC e o que ele faz:

Descrição

Um sistema no qual o jogador 'x', ao fazer login pela primeira vez no servidor recebe um codigo 'z'. Ao passar o código para seu amigo 'y', este o digita em um NPC fazendo com que seja computado que o jogador 'x' recomendou o servidor ao jogador 'y'.

Benefícios ao jogador 'y':

nenhum

Benefícios ao jogador 'x':

A cada hora que o jogador 'y' ficar online, ele recebe uma quandidade 'q' de pontos.

 

Problemas que gostaria de solucionar para o npc ficar perfeito:

Gostaria de mudar a forma como o código é entregue pois o código é muito simples tipo 1,2,3,4. Gostaria de algo como 50001,50002,50003 algo assim.

O outro problema é que o NPC permite que você indique a si mesmo, assim você ganha pontos sem indicar ninguém o que tira a utilidade do npc.

se alguém souber como resolver isso seria Otimo é um excelente NPC e pode ajudar muito quem utilizar a atrair novos jogadores e manter os mesmos online.

 

Scrips do NPC:

 

// Tabela SQL
/*

ALTER TABLE `login` ADD `myfriendcodect` INT( 11 ) NOT NULL DEFAULT '0';

ALTER TABLE `login` ADD `usedfriendcodect` INT( 11 ) NOT NULL DEFAULT '0';

ALTER TABLE `login` ADD `indicadosct` INT( 11 ) NOT NULL DEFAULT '0';

ALTER TABLE `login` ADD `pontosamigosct` INT( 11 ) NOT NULL DEFAULT '0';

ALTER TABLE `login` ADD `cashentregarct` INT( 11 ) NOT NULL DEFAULT '0';

ALTER TABLE `login` ADD `cashviagmct` INT( 11 ) NOT NULL DEFAULT '0';

ALTER TABLE `login` ADD `pontosamigosct2` INT( 11 ) NOT NULL DEFAULT '0';

*/

-    script    controlefriendcode    -1,{

OnPCLoginEvent:

if(#viewd) end;

set #viewd,1;

set $friendcodes,$friendcodes+1;

query_sql ("UPDATE `login` SET `myfriendcodect` = '"+$friendcodes+"' WHERE `account_id` = '"+getcharid(3)+"'");

dispbottom "Seu código de convite é :"+$friendcodes;

end;

}

prontera,150,146,5    script    Gerente de Indicacoes    123,{

//= Configurações =

set @limite,2; //Máximo de amigos que podem ser indicados

//=================

mes "[^FF9900"+strnpcinfo(1)+"^000000]";

mes "Olá, o que deseja?";

switch(select("Ver meu código:Inserir código de um amigo:Como funciona?:Nada")){

case 1:

query_sql ("SELECT `myfriendcodect` FROM `login` WHERE `account_id` = '"+getcharid(3)+"'",@codigo);

mes "Seu código é: "+@codigo;

close;

case 2:

query_sql ("SELECT `usedfriendcodect` FROM `login` WHERE `account_id` = '"+getcharid(3)+"'",@codigo);

if(@codigo > 0){

mes "Você já utilizou um código";

close;

}

mes "Digite o código do amigo que te indicou:";

input @z;

query_sql ("SELECT `indicadosct` FROM `login` WHERE `myfriendcodect` = '"+@z+"'",@q);

if(@q >= @limite){

mes "Seu amigo já atingiu o limite de "+@limite+" indicações";

close;

}

set @q,@q+1;

query_sql ("UPDATE `login` SET `indicadosct` = '"+@q+"' WHERE `myfriendcodect` = '"+@z+"'");

query_sql ("UPDATE `login` SET `usedfriendcodect` = '"+@z+"' WHERE `account_id` = '"+getcharid(3)+"'");

mes "Prontinho";

close;

case 3:

mes "Ao fazer seu primeiro login no servidor, você receberá um código, e este deve ser passado para seus amigos antes de entrarem no servidor.";

mes "Para cada hora que o amigo que inseiu seu código ficar online, você receberá um ponto e se seu amigo fizer doações, você será recompensado";

close;

case 4:

mes "Volte quando desejar algo.";

close;

}

}

-    script    controleamigoon    -1,{

OnPCLoginEvent:

goto Contador;

Contador:

freeloop(1);

sleep2 60000;

if(checkvending()) goto Contador;

query_sql ("SELECT `usedfriendcodect`,`pontosamigosct2` FROM `login` WHERE `account_id` = '"+getcharid(3)+"'",@am,@az);

query_sql ("SELECT `account_id` FROM `login` WHERE `myfriendcodect` = '"+@am+"'",.ax);

if(@az == 59){

set .am2$,strcharinfo(0);

set .am,getcharid(3);

query_sql ("UPDATE `login` SET `pontosamigosct` = `pontosamigosct` + 1 WHERE `myfriendcodect` = '"+@am+"'");

query_sql ("UPDATE `login` SET `pontosamigosct2` = '0' WHERE `account_id` = '"+getcharid(3)+"'");

if(attachrid(.ax)){

dispbottom "O jogador "+.am2$+" ficou online por uma hora e você recebeu um ponto de amigo.";

attachrid(.am);

}

goto Contador;

}

query_sql ("UPDATE `login` SET `pontosamigosct2` = `pontosamigosct2` + 1 WHERE `account_id` = '"+getcharid(3)+"'");

goto Contador;

}

prontera,150,150,5    script    Troca de Pontos    123,{

//= Configurações =

//== Itens ==

setarray @aa[0],1234,1235,1236; //Ids

setarray @ab[0],1,2,3; //Quantidade

setarray @ac[0],1,2,3; //Preço

//=================

mes "[^FF9900"+strnpcinfo(1)+"^000000]";

mes "O que deseja?";

if(select("Trocar meus pontos:Nada") == 2) close;

query_sql ("SELECT `pontosamigosct` FROM `login` WHERE `account_id` = '"+getcharid(3)+"'",@amg);

mes "Você possui "+@amg+" pontos.";

mes "E eu possuo estes itens:";

set .@cx$,"";

for(set @i,0; @i < getarraysize(@aa); set @i,@i+1) set .@cx$, .@cx$ +getitemname(@aa[@i])+" x "+@ab[@i]+" = "+@ac[@i]+" pontos:";

set .@cx$, .@cx$+"Nada";

select(.@cx$);

if(@menu == (getarraysize(@aa)+1))close;

mes "Quantas vezes deseja realizar a operação?";

input .@qt;

if(@amg < (@ac[@menu - 1]*.@qt)){

mes "Você não possui pontos o suficiente.";

close;

}

set @amg,@amg - (@ac[@menu - 1]*.@qt);

query_sql ("UPDATE `login` SET `pontosamigosct` = '"+@amg+"' WHERE `account_id` = '"+getcharid(3)+"'");

getitem @aa[@menu - 1],(@ab[@menu-1]*.@qt);

mes "Pronto, divirta-se.";

close;

}

-    script    controlecash    -1,{

//= Configurações =

set @p,10; //Porcentagem de ROPs que jogador recebe se o amigo que ele indicou fizer doações

//Para evitar problemas, utilize múltiplos de 100 para doações (não obrigatório, apenas recomendado)

//=================

OnPCLoginEvent:

query_sql ("SELECT `cashentregarct` , `cashviagmct` , `usedfriendcodect` FROM `login` WHERE `account_id` = '"+getcharid(3)+"'",@x,@y,@z);

if(@x == 0 && @y == 0)end;

set #CASHPOINTS,#CASHPOINTS+@x+@y;

set @y,(@y*@p)/100;

query_sql ("UPDATE `login` SET `cashentregarct` = '0' , `cashviagmct` = '0' WHERE `account_id` = '"+getcharid(3)+"'");

query_sql ("UPDATE `login` SET `cashentregarct` = `cashentregarct` + "+@y+" WHERE `myfriendcodect` = '"+@z+"'");

end;

}

Editado por himari

Compartilhar este post


Link para o post
Compartilhar em outros sites

2 respostass a esta questão

Recommended Posts

  • 0
1 hora atrás, joeyzera disse:

n entendi

... bom vou explicar melhor então o que quero é o seguinte:

1 - em vez de o código recebido pelo jogador ser 1 , 2 , 3 , 4 ou seja um codigo extremamente simples gostaria que ele fosse sequenciado porem com uma quantidade de numeros maior ou seja 50000, 50001, 50002 etc, uma outra ideia é que o jogador pode-se ser indicado pelo ID da conta isso deixaria os códigos mais dinâmicos e mostraria para o administrador exatamente quem convidou um determinado jogador.

2 - o NPC esta com um bug, você pode indicar a si mesmo e ganhar pontos ficando online, como o intuito do NPC é convidar amigos e ganhar pontos por eles estarem online não tem logica vc ganhar pontos por estar online já que existe sistemas para isso como sistema de presença, fidelidade e afins. por tanto o NPC deve negar caso o jogador tente adicionar o próprio código ou ID.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
Entre para seguir isso  

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.

×