Advertisement
Guest User

Untitled

a guest
Nov 25th, 2014
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.13 KB | None | 0 0
  1. //::///////////////////////////////////////////////
  2. //:: dmb_chat
  3. //:: FileName
  4. //:: Copyright (c) 2005 dumbo (dumbo@nm.ru)
  5. //:: Copyright (c) 2006-2007 virusman (virusman@virusman.ru)
  6. //:://////////////////////////////////////////////
  7. #include "aps_include"
  8. //:://////////////////////////////////////////////
  9. //:: Created By: dumbo
  10. //:: Created On: 2005-09-08
  11. //:: Modified By: virusman
  12. //:: Modified On: 2007-02-15
  13. //:://////////////////////////////////////////////
  14.  
  15. string dmb_LIST_ITEM_NAME = "dmbPC_";
  16. string dmb_PC_ID_NAME = "dmbID";
  17.  
  18. const int CHAT_CHANNEL_TALK        = 1;
  19. const int CHAT_CHANNEL_SHOUT       = 2;
  20. const int CHAT_CHANNEL_WHISPER     = 3;
  21. const int CHAT_CHANNEL_PRIVATE     = 4;
  22. const int CHAT_CHANNEL_SERVER_MSG  = 5;
  23. const int CHAT_CHANNEL_PARTY       = 6;
  24.  
  25. //Send chat message
  26. //nChannel - CHAT_CHANNEL_*
  27. void dmb_SendMessage(object oSender, int nChannel, string sMessage, object oRecipient=OBJECT_INVALID);
  28.  
  29. void dmb_ChatInit()
  30. {
  31.     int i;
  32.     object oMod = GetModule();
  33.     // memory for chat text
  34.     string sMemory;
  35.     for (i = 0; i < 8; i++) // reserve 8*128 bytes
  36.         sMemory += "................................................................................................................................";
  37.     SetLocalString(oMod, "NWNX!INIT", "1");
  38.     SetLocalString(oMod, "NWNX!CHAT!SPACER", sMemory);
  39. }
  40.  
  41. string dmb_GetStringFrom(string s, int from = 1)
  42. {
  43.     return GetStringRight(s, GetStringLength(s) - from);
  44. }
  45.  
  46. string dmb_GetSpacer()
  47. {
  48.     return GetLocalString(GetModule(), "NWNX!CHAT!SPACER");
  49. }
  50.  
  51. void dmb_PCin(object oPC)
  52. {
  53.   if (!GetIsObjectValid(oPC)) return;
  54.   object oMod = GetModule();
  55.   SetLocalString(oPC, "NWNX!CHAT!GETID", ObjectToString(oPC)+"        ");
  56.   string sID = GetLocalString(oPC, "NWNX!CHAT!GETID");
  57.   int nID = StringToInt(sID);
  58.   if (nID != -1)
  59.   {
  60.     SetLocalObject(oMod, dmb_LIST_ITEM_NAME + sID, oPC);
  61.     SetLocalInt(oPC, dmb_PC_ID_NAME, nID);
  62.   }
  63.   DeleteLocalString(oPC, "NWNX!CHAT!GETID");
  64. }
  65.  
  66. int dmb_GetClientID(object oPC)
  67. {
  68.     if (!GetIsObjectValid(oPC)) return -1;
  69.     if (!GetIsPC(oPC)&&!GetIsPossessedFamiliar(oPC)&&!GetIsDM(oPC)&&!GetIsDMPossessed(oPC)) return -1;
  70.     SetLocalString(oPC, "NWNX!CHAT!GETID", ObjectToString(oPC)+"        ");
  71.     string sID = GetLocalString(oPC, "NWNX!CHAT!GETID");
  72.     int nID = StringToInt(sID);
  73.     return nID;
  74. }
  75.  
  76. int dmb_SendMessage(object oSender, int nChannel, string sMessage, object oRecipient=OBJECT_INVALID)
  77. {
  78.     if (!GetIsObjectValid(oSender)) return;
  79.     if (FindSubString(sMessage, "¬")!=-1) return;
  80.     if (nChannel == CHAT_CHANNEL_PRIVATE && !GetIsObjectValid(oRecipient)) return;
  81.     SetLocalString(oSender, "NWNX!CHAT!SPEAK", ObjectToString(oSender)+"¬"+ObjectToString(oRecipient)+"¬"+IntToString(nChannel)+"¬"+sMessage);
  82. }
  83.  
  84. void dmb_PCout(object oPC)
  85. {
  86.   if (!GetIsObjectValid(oPC)) return;
  87.   int nID = GetLocalInt(oPC, dmb_PC_ID_NAME);
  88.   DeleteLocalInt(oPC, dmb_PC_ID_NAME);
  89.   DeleteLocalObject(GetModule(), dmb_LIST_ITEM_NAME + IntToString(nID));
  90. }
  91.  
  92. object dmb_getPC(int nID)
  93. {
  94.   return GetLocalObject(GetModule(), dmb_LIST_ITEM_NAME + IntToString(nID));
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement