Advertisement
Guest User

DynRunningScript

a guest
May 15th, 2012
327
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.96 KB | None | 0 0
  1. #define AUTO_DLLMAIN
  2. #include <DynRPG/DynRPG.h>
  3. using namespace RPG;
  4.  
  5.  
  6. // Converts a string to lower case
  7. char* toLowerCase(char* str)
  8. {
  9.     int differ = 'A'-'a';
  10.     char ch;
  11.     int ii = strlen(str);
  12.     for (int i=0; i <ii;i++)
  13.     {
  14.         strncpy(&ch,str+i,1);
  15.         if (ch>='A' && ch<='Z')
  16.         {
  17.             ch = ch-differ;
  18.             memcpy(str+i,&ch,1);
  19.         }
  20.     }
  21.     return str;
  22. }
  23.  
  24. int usedSwitch = -1;
  25. int walkingSpeed = 4;
  26.  
  27. // Comment callback
  28. bool onComment(const char* text, const RPG::ParsedCommentData* parsedData, RPG::EventScriptLine* nextScriptLine,
  29.                RPG::EventScriptData* scriptData, int eventId, int pageId, int lineId, int* nextLineId)
  30. {
  31.     char* lowerCommand = toLowerCase((char*)(parsedData->command));
  32.     if (strcmp(lowerCommand, "dynrun") == 0)
  33.     {
  34.         if (parsedData->parametersCount >= 3 && parsedData->parameters[0].type == RPG::PARAM_NUMBER
  35.             && parsedData->parameters[0].number <= 6 && parsedData->parameters[0].number >= 1
  36.             && parsedData->parameters[1].type == RPG::PARAM_NUMBER
  37.             && parsedData->parameters[1].number <= 6 && parsedData->parameters[1].number >= 1
  38.             && parsedData->parameters[2].type == RPG::PARAM_NUMBER && parsedData->parameters[2].number >= 1
  39.             && RPG::switches[parsedData->parameters[2].number])
  40.         {
  41.             usedSwitch = parsedData->parameters[2].number;
  42.             walkingSpeed = parsedData->parameters[1].number;
  43.             if ((GetAsyncKeyState(VK_SHIFT) & 0x8000) == 0x8000)
  44.                 RPG::hero->speed = parsedData->parameters[0].number;
  45.             else
  46.                 RPG::hero->speed = parsedData->parameters[1].number;
  47.         }
  48.     }
  49.     if (lowerCommand != NULL)
  50.         delete lowerCommand;
  51.     return true;
  52. }
  53.  
  54.  
  55. // Resets speed when switch deactivated
  56. bool onSetSwitch(int id, bool value)
  57. {
  58.     if (usedSwitch > 0 && id == usedSwitch && !value)
  59.     {
  60.         RPG::hero->speed = walkingSpeed;
  61.         usedSwitch = -1;
  62.     }
  63.     return true;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement