#include <stdio.h> #include <string.h> #include <sampgdk/a_players.h> #include <sampgdk/a_samp.h> #include <sampgdk/core.h> #include <sampgdk/sdk.h> #include "ac.h" PLUGIN_EXPORT bool PLUGIN_CALL OnGameModeInit() { printf("Test %s loaded.", TEST_VERSION); return true; } PLUGIN_EXPORT bool PLUGIN_CALL OnPlayerConnect(int playerid) { SendClientMessage(playerid, 0xFFFFFFFF, "Welcome to the HelloWorld server!"); return true; } PLUGIN_EXPORT bool PLUGIN_CALL OnPlayerRequestClass(int playerid, int classid) { SetPlayerPos(playerid, 1958.3783f, 1343.1572f, 15.3746f); SetPlayerCameraPos(playerid, 1958.3783f, 1343.1572f, 15.3746f); SetPlayerCameraLookAt(playerid, 1958.3783f, 1343.1572f, 15.3746f, CAMERA_CUT); return true; } PLUGIN_EXPORT bool PLUGIN_CALL OnPlayerCommandText(int playerid, const char *cmdtext) { if (strcmp(cmdtext, "/hello") == 0) { char name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); char message[MAX_CLIENT_MESSAGE]; sprintf(message, "Hello, %s!", name); SendClientMessage(playerid, 0x00FF00FF, message); return true; } return false; } PLUGIN_EXPORT unsigned int PLUGIN_CALL Supports() { return sampgdk::Supports() | SUPPORTS_PROCESS_TICK; } PLUGIN_EXPORT bool PLUGIN_CALL Load(void **ppData) { return sampgdk::Load(ppData); } PLUGIN_EXPORT void PLUGIN_CALL Unload() { sampgdk::Unload(); } PLUGIN_EXPORT void PLUGIN_CALL ProcessTick() { sampgdk::ProcessTick(); }
[15:24:05] Loading plugin: test [15:24:05] Plugin does not conform to architecture. |
EXPORTS Supports Load Unload AmxLoad AmxUnload ProcessTick OnGameModeInit OnPlayerConnect OnPlayerDisconnect
Once you see the property pages navigate to Configuration properties->Linker->Input on the left side. Once you're there you want to add a module definition file. You can name this file anything you like as long as it has a ".def" extension at the end of it; People normally name def files after their project. Once you've named your definition file press OK. |