吧务
level 6
接下来我们开始编写代码
#include <a_samp>
#include <core>
#include <float>
#include <samp-chatbot>
#include <Pawn.CMD>
#include <sscanf2>
#define COLOR_RED 0xFF0000FF
#define COLOR_MAGENTA 0xFF00FFFF
#define CHATBOT_DIALOG 10
#define API_KEY "MY_API_KEY" //把你的API Key复制过来
#define GLOBAL_REQUEST -1
#pragma tabsize 0
new lastResponses[MAX_PLAYERS][1024];
new lastGlobalResponse[1024];
main()
{
SetChatBotEncoding(GB2312); //设置中文字符
SelectChatBot(DOUBAO); //选择DOUBAO
SetModel("模型ID"); //把你的模型ID复制过来
SetAPIKey(API_KEY);
SetSystemPrompt("设置你的机器人话题背景"); //这个是设置话题背景
}
CMD:clearmemory(playerid, params[])
{
new id;
if(sscanf(params, "d", id))
return SendClientMessage(playerid, COLOR_RED, "/clearmemory <id>");
ClearMemory(id);
return 1;
}
CMD:disablesysprompt(playerid, params[])
{
SetSystemPrompt("");
return 1;
}
CMD:sysprompt(playerid, params[])
{
new sysPrompt[512];
if(sscanf(params, "s[512]", sysPrompt))
return SendClientMessage(playerid, COLOR_RED, "/sysprompt <system_prompt>");
SetSystemPrompt(sysPrompt);
return 1;
}
CMD:bot(playerid, params[]) //用此指令与机器人开始对话吧!
{
new prompt[512];
if(sscanf(params, "s[512]", prompt))
return SendClientMessage(playerid, COLOR_RED, "/bot <prompt>");
RequestToChatBot(prompt, playerid);
return 1;
}
CMD:botglobal(playerid, params[])
{
new prompt[512];
if(sscanf(params, "s[512]", prompt))
return SendClientMessage(playerid, COLOR_RED, "/botglobal <prompt>");
RequestToChatBot(prompt, GLOBAL_REQUEST);
return 1;
}
CMD:lastresponse(playerid, params[])
{
ShowPlayerDialog(playerid, CHATBOT_DIALOG, DIALOG_STYLE_MSGBOX, "聊天机器人回答", lastResponses[playerid], "好的", "");
return 1;
}
public OnChatBotResponse(prompt[], response[], id)
{
//from a player
if(id >= 0 && id < MAX_PLAYERS)
{
format(lastResponses[id], 1024, "%s", response);
SendClientMessage(id, COLOR_MAGENTA, "聊天机器人已回复!使用 /lastresponse 查看.");
}
else if(id == GLOBAL_REQUEST) //global
{
format(lastGlobalResponse, 2048, "%s", response);
SendClientMessageToAll(COLOR_MAGENTA, "聊天机器人全球响应!使用 /lastglobalresponse 查看.");
}
}
2025年02月02日 13点02分
4