Advertisement
Guest User

Untitled

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