void CNWNXNames::SetDynamicName(char *value) { dword oPlayer, oObject; oPlayer = nGameObjectID; int nParamLen = strlen(value); char *nLastDelimiter = strrchr(value, '¬'); if (!nLastDelimiter || (nLastDelimiter-value)<0) { Log(3, "o nLastDelimiter error\n"); return; } char *sName = new char[nParamLen-(nLastDelimiter-value)+1]; if(sscanf(value, "%lx¬%s", &oObject, sName)<2) { Log(3, "o sscanf error\n"); return; } strcpy(sName, nLastDelimiter+1); if(!oPlayer||!oObject) { Log(3, "o invalid object\n"); return; } Names.InsertCustomName(oPlayer, oObject, sName); SendNewName(oPlayer, oObject); }
void CNWNXNames::UpdateDynamicName(char *value) { dword oPlayer = nGameObjectID; dword oObject = strtol(value, NULL, 16); SendNewName(oPlayer, oObject); }
int main(int argc, char*argv[]) { AJ_Status status = AJ_ERR_INVALID; if (argc > 1) { AJ_BusAttachment bus; uint8_t connected = FALSE; uint8_t done = FALSE; uint32_t sessionId = 0; char*newName = argv[1]; status = AJ_OK; /* * One time initialization before calling any other AllJoyn APIs */ AJ_Initialize(); AJ_PrintXML(AppObjects); AJ_RegisterObjects(NULL, AppObjects); while (!done) { AJ_Message msg; if (!connected) { status = AJ_StartClient(&bus, NULL, CONNECT_TIMEOUT, FALSE, ServiceName, ServicePort, &sessionId, NULL); if (status == AJ_OK) { AJ_InfoPrintf(("StartClient returned %d, sessionId=%u.\n", status, sessionId)); connected = TRUE; SendNewName(&bus, sessionId, newName); } else { AJ_InfoPrintf(("StartClient returned 0x%04x.\n", status)); break; } } status = AJ_UnmarshalMsg(&bus, &msg, UNMARSHAL_TIMEOUT); if (AJ_ERR_TIMEOUT == status) { continue; } if (AJ_OK == status) { switch (msg.msgId) { case AJ_REPLY_ID(PRX_SET_PROP): done = TRUE; AJ_Printf("Name on the interface '%s' at service '%s' was set to '%s'.\n", InterfaceName, ServiceName, newName); break; case AJ_SIGNAL_SESSION_LOST_WITH_REASON: /* Force a disconnect. */ { uint32_t id, reason; AJ_UnmarshalArgs(&msg, "uu", &id, &reason); AJ_AlwaysPrintf(("Session lost. ID = %u, reason = %u", id, reason)); } status = AJ_ERR_SESSION_LOST; break; default: /* Pass to the built-in handlers. */ status = AJ_BusHandleBusMessage(&msg); break; } } /* Messages MUST be discarded to free resources. */ AJ_CloseMsg(&msg); if (status == AJ_ERR_SESSION_LOST) { AJ_Printf("AllJoyn disconnect.\n"); AJ_Disconnect(&bus); exit(0); } } } else { AJ_ErrPrintf(("Error. New name not given: nameChange_client [new name].\n")); } AJ_Printf("nameChange_Client exiting with status 0x%04x.\n", status); return status; }