Isso é bem antigo, do tempo do eAthena ainda... Eu usava no meu antigo servidor para anunciar os eventos dos npcs automaticamente no Twitter quando inicia.
O código é bem antigo porem gostaria da ajudar de quem entende de source para adaptar esse código para o rAthena.
//Cria a função do npc para enviar o twitter
BUILDIN_FUNC(twitrag)
{
//Função de NPC para twitter
const char *str;
str=script_getstr(st,2);
intif_twitrag(str);
return 0;
}
Procure por:
BUILDIN_DEF(delwall,"s"),
Adicione abaixo:
BUILDIN_DEF(twitrag,"s"), //Função de NPC para o twitter
int intif_twitrag(const char* mes)
{
//cUrl para o twitter
CURL *curl;
CURLcode res;
struct curl_httppost *params=NULL; //variavel com os parametros
struct curl_httppost *paramsfinal=NULL;
struct curl_slist *headerlist=NULL; //lista de header
//cria um buffer com o header Expected sem ele o twitter responde com erro 403
static const char buf[] = "Expect:";
curl_global_init (CURL_GLOBAL_ALL); //Inicia a libcurl
//adiciona o campo status com o valor do update ao header
curl_formadd (¶ms,
¶msfinal,
CURLFORM_COPYNAME, "status",
CURLFORM_COPYCONTENTS, mes,
CURLFORM_END);
curl = curl_easy_init(); //inicia uma seção easy
headerlist = curl_slist_append(headerlist, buf); //insere o buffer no header
//Seta a página para onde ele envia as informações
curl_easy_setopt(curl, CURLOPT_URL, "http://twitter.com/statuses/update.xml");
curl_easy_setopt(curl, CURLOPT_USERPWD, "usuario:senha"); //usuário e senha no twitter
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist); //adiciona o header ao curl
curl_easy_setopt(curl, CURLOPT_HTTPPOST, params); //adiciona os parametros ao curl
res = curl_easy_perform(curl); //Executa a operação
/* limpa o curl */
curl_easy_cleanup(curl);
curl_formfree(params);
curl_slist_free_all (headerlist);
return 0;
}
Question
Haikenz
Isso é bem antigo, do tempo do eAthena ainda... Eu usava no meu antigo servidor para anunciar os eventos dos npcs automaticamente no Twitter quando inicia.
O código é bem antigo porem gostaria da ajudar de quem entende de source para adaptar esse código para o rAthena.
Arquivo /src/map/script.c procure por:
Adicione abaixo:
Procure por:
Adicione abaixo:
Arquivo /src/map/intif.c procure por:
Adicione abaixo:
Isso importa a lib curl para ser usada.
Adicione o código abaixo no final do arquivo
*Não esqueça de mudar o usuário e senha na linha
Arquivo /src/map/intif.h
Procure por:
Adicione abaixo:
Agora é a hora de compilar, mas é preciso linkar a lcurl no compilador para poder funcionar.
Não descobri nenhuma forma mais simples de fazer isso, se você souber me avise que eu altero aqui.
Edite o arquivo Makefile na pasta map.
Nas linhas acima foi adicionado -lcurl ao final, para linkar para lib.
Salve e agora pode dar make normalmente.
Um exemplo de NPC:
Link to comment
Share on other sites
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.