NovaYoshi

yiffscript again

May 22nd, 2011
518
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 11.34 KB | None | 0 0
  1. // Given a list of words to choose from, Adj() selects one at random
  2. // Named because it was originally for randomly choosing adjectives
  3. char *Adj(int Amount, char *Word, ...) {
  4.    va_list vl;
  5.    va_start(vl,Word);
  6.    char *Chk = Word;
  7.    int Which = rand()%Amount;
  8.    while(Which){
  9.     if(Chk == NULL) break;
  10.     Which--;
  11.     Chk=va_arg(vl,char*);
  12.    }
  13.    va_end(vl);
  14.    return(Chk);
  15.    return(NULL); // no matches
  16. }
  17.  
  18. // add to this list if you want, but be sure to update the number in SomeSpecies()
  19. char *RandomSpecies[] = {"fox","wolf","kangaroo","raccoon","deer","skunk","hamster","dingo","coyote","kitty","squirrel","bunny","rabbit","dragon","canine","feline","vulpine","pony",NULL};
  20. char *SomeSpecies(){return(RandomSpecies[rand() % 18]);}
  21.  
  22. // Designed to be easy to steal and use in your own project.
  23. static int yiff_cb(char *word[], char *word_eol[], void *userdata) {
  24.    // checking if null arguments were passed
  25.    if (word[2]==NULL) return(XCHAT_EAT_ALL);
  26.    if (!strcasecmp(word[2],"")) return(XCHAT_EAT_ALL);
  27.  
  28.    // alter the number if you add/take away yiffscript choices
  29.    int MaxYiffScript =42;
  30.  
  31.    int assmunch = rand()%MaxYiffScript;
  32.  
  33.    // fetch these however your IRC client does it
  34.    const char *MyNick = xchat_get_info(ph,"nick");
  35.    const char *Victim = word[2];
  36.  
  37.    char CommandBuf[2048];  // I'm sick and tired of buffer overflow crashing my IRC bot,
  38.    char ChainBuffer[2048]; // so I'll just raise the buffers to stupid sizes.
  39.    //sprintf(CommandBuf, "fails to find any YiffScript actions that match id %i", assmunch);
  40.    sprintf(CommandBuf, "fails to find any YiffScript actions that match id %i", assmunch);
  41.    strcpy(ChainBuffer, "");
  42.  
  43.    char *MySpecies=SomeSpecies();
  44.    char *YourSpecies=SomeSpecies();
  45.    char *UsedBy="";
  46.    char *ReplyWith = "me";
  47.  
  48.    int YiffChain = 1;
  49.  
  50.    // scan through these however your IRC client does it
  51.    int i;
  52.    for(i=3;word[i]!=NULL && strcasecmp(word[i],"");i++) {
  53.       if(!strcasecmp(word[i],"-am")) // set assmunch
  54.         assmunch  = strtol(word[i+1],NULL,10);
  55.       if(!strcasecmp(word[i],"-ms")) // set my species
  56.         MySpecies = word[i+1];
  57.       if(!strcasecmp(word[i],"-ys")) // set your species
  58.         YourSpecies=word[i+1];
  59.       if(!strcasecmp(word[i],"-usedby")) // just in case
  60.         UsedBy=word[i+1];
  61.       if(!strcasecmp(word[i],"-bserv")) // have BotServ yiff the person instead
  62.         ReplyWith = "bsdo";
  63.  
  64.       if(!strcasecmp(word[i],"-yc")) { // start a yiffchain!
  65.         YiffChain=strtol(word[i+1],NULL,10)&3;
  66.         // going too high crashes stuff with all the yiffiness so I'll cap it at 3
  67.       }
  68.    }
  69. for(;YiffChain;YiffChain--) { // really sloppy way of implementing yiffchains
  70. if (assmunch ==  0) sprintf(CommandBuf,"rubs %s's %s while groping at his crotch with his feet",Victim,Adj(3,"member","footpaws","knot"));
  71. if (assmunch ==  1) sprintf(CommandBuf,"grabs %s, twirls him around like a dancer and places a kiss on his lips, fondling his tailhole for a second so he can taste it later ",Victim);
  72. if (assmunch ==  2) sprintf(CommandBuf,"rubs %s's hard %s while reaching back for some extra tailhole fun",Victim,Adj(2,"knot","member"));
  73. if (assmunch ==  3) sprintf(CommandBuf,"snuggletackles %s and starts romping on top of him",Victim);
  74. if (assmunch ==  4) sprintf(CommandBuf,"takes %s's %s %s into his maw and begins suckling like one would their mother's breast", Victim,Adj(8,"stiff","hard","long","tasty","thick","erect","throbbing","pulsing"),Adj(3,"rod","shaft","member"));
  75. if (assmunch ==  5) sprintf(CommandBuf,"puts his fingers on %s's mouth to shush him as he starts working his %s %s%s",Victim,Adj(2,"throbbing","pulsing"),YourSpecies,Adj(4,"hood"," member"," penis"," rod"));
  76. if (assmunch ==  6) sprintf(CommandBuf,"caresses %s's furry ballsac, inhaling %s's sweet musk through his nostrils, his %s starting to grow from all the sensations", Victim, Victim, Adj(2,"member","rod"));
  77. if (assmunch ==  7) sprintf(CommandBuf,"murrs, humping softly against %s's hand, twisting the tip of his finger in %s's %s", Victim, Victim, Adj(3,"butthole","tailhole","tailstar"));
  78. if (assmunch ==  8) sprintf(CommandBuf,"licks along %s's silky lips, taking %s's exposed %s%s and plays with the tip, rubbing the underside with his thumb slowly towards the tip", Victim, Victim, YourSpecies, Adj(3,"hood","hood"," member"));
  79. if (assmunch ==  9) sprintf(CommandBuf,"gets a firm grip on %s's hip as he thrusts his %shood deep within his tight and inexperienced %s, unexpectedly ramming his knot causing an orgasm of pain and pleasure for %s",Victim,MySpecies,Adj(2,"tailhole","tailstar"),Victim);
  80. if (assmunch == 10){sprintf(CommandBuf,"emerges from his sheathe, his hard knot glistening in the moist air"); YiffChain++; }
  81. if (assmunch == 11) sprintf(CommandBuf,"pokes a finger into %s's %s sheath, tasting the tip of his finger in excitement", Victim,Adj(2,"moist","wet"));
  82. if (assmunch == 12) sprintf(CommandBuf,"%s %s %s all over %s",Adj(4,"sprays","blasts","jets","squirts"),Adj(8,"hot","sticky","slick","warm","delicious","yummy","tasty","illegal"),Adj(3,"sperm","seed","cum"),Victim);
  83. if (assmunch == 13) sprintf(CommandBuf,"clenches his firm, supple buttocks around the %s head of %s's %s%s", Adj(4,"thick","hard","slick","wet"), Victim, YourSpecies, Adj(3,"cock","hood"," member"));
  84. if (assmunch == 14) sprintf(CommandBuf,"runs his %s along %s's soft and slender thighs, running up to his %s %s%s ",Adj(2,"fingers","paws"), Victim, Adj(3,"thick and juicy","partially erect","hard, throbbing"), YourSpecies, Adj(3,"hood","cock"," member"));
  85. if (assmunch == 15) sprintf(CommandBuf,"wraps his hands around %s's back, moving downward while kissing along his soft yet sturdy chest and abs",Victim);
  86. if (assmunch == 16) sprintf(CommandBuf,"runs his %s through %s's silky fur, rubbing his %s to get him excited",Adj(2,"fingers","paws"),Victim,Adj(2,"dick","ear"));
  87. if (assmunch == 17) sprintf(CommandBuf,"slips his tongue into %s's moist sheath, taking in all the flavors of his %s musk",Victim,YourSpecies);
  88. if (assmunch == 18) sprintf(CommandBuf,"takes %s's entire %s length into his mouth, leaking precum in excitement",Victim, YourSpecies);
  89. if (assmunch == 19) sprintf(CommandBuf,"cuddles close to %s, his excitement poking %s from behind",Victim,Victim);
  90. if (assmunch == 20) sprintf(CommandBuf,"pushes down onto %s's lap with his weight, thrusting %s's knot deep within his %s",Victim,Victim, Adj(2,"tailstar","tailhole"));
  91. if (assmunch == 21) sprintf(CommandBuf,"rubs his petite bottom on %s's well-endowed %s-cock",word[2],YourSpecies);
  92. if (assmunch == 22) sprintf(CommandBuf,"murrs as he slides his paw over %s's %s %s %s",Victim, Adj(9,"throbbing","huge","gigantic","enormous","freaking huge", "ridiculously sized", "illegally sized","massive","itty bitty"), YourSpecies,Adj(4,"cock","penis","length","member"));
  93. if (assmunch == 23) sprintf(CommandBuf,"pushes down on %s's rock hard %s%s with his palm, sliding around with his precum", Victim, YourSpecies,Adj(4,"cock","hood"," member"," rod"));
  94. if (assmunch == 24) sprintf(CommandBuf,"twirls around %s's long %s-neck, planting a kiss on his big %s mouth",Victim,YourSpecies,Adj(3,"jizz dripping","slimy","sticky"));
  95. if (assmunch == 25) sprintf(CommandBuf,"slides %s fingers into %s's %s %s while fondling hir sheathe",Adj(4,"two","three","four","over 9000"),Victim,Adj(4,"juicy","tight","erect","wet"),Adj(3,"pussy","vagina","cunt"));
  96. if (assmunch == 26) sprintf(CommandBuf,"tries to go down on %s's sweet %s-gina, but is pushed back by hir throbbing %s",Victim,YourSpecies,Adj(2,"member","rod"));
  97. if (assmunch == 27) sprintf(CommandBuf,"takes a painfully hard grip on %s's %s%s from behind and %s his knot right up %s %s %s", Victim, YourSpecies, Adj(3,"hood","cock"," member"), Adj(5,"jams","forces","shoves","pushes","slams"), Adj(3,"his","her","hir"), Adj(2,"virgin","tight"), Adj(2,"tailhole","tailstar"));
  98. if (assmunch == 28) sprintf(CommandBuf,"slides his throbbing %s%s along %s's luscious %s breasts, leaving a trail of precum along %s sweat-glistened chest", MySpecies, Adj(3,"hood","cock"," member"), Victim, YourSpecies, Adj(3,"her","his","hir"));
  99. if (assmunch == 29) sprintf(CommandBuf,"puts %s muzzle between %s's smooth thighs and starts lapping at %s %s %sclit", Adj(3,"her","his","hir"), Victim, Adj(2,"her","hir"), Adj(3,"slippery","sensitive","erect"), YourSpecies);
  100. if (assmunch == 30) sprintf(CommandBuf,"gently slides his paw over %s's right foot while gliding a finger over his tailhole in anticipation",Victim);
  101. if (assmunch == 31){sprintf(CommandBuf,"drags a foxy claw across the ridges of %s's circumcision scar",Victim); YiffChain++; }
  102. if (assmunch == 32) sprintf(CommandBuf,"%s a huge creamy yiffload all over %s", Adj(4,"busts","blasts","shoots","jets"), Victim);
  103. if (assmunch == 33) sprintf(CommandBuf,"takes %s and ravages them from behind with a huge %s boner.",word[2],MySpecies);
  104. if (assmunch == 34) sprintf(CommandBuf,"aims and shoots, but misses %s's mouth, leaving a mess of jizz dripping down %s's chin!",Victim,Victim);
  105. if (assmunch == 35) sprintf(CommandBuf,"%s gallons of %s jizz all over %s", Adj(2,"blasts","pumps"), MySpecies, word[2]);
  106. if (assmunch == 36) sprintf(CommandBuf,"howls with pleasure as %s pulls his knot out of his hole, stretching it to an obscene size before a loud \"POP\" is heard and %s's %sjuice cascades down his already drenched thighs",word[2],Victim,YourSpecies);
  107. if (assmunch == 37) sprintf(CommandBuf,"nibbles softly on the carrot protruding from %s's juicy hole as %s's fluffy bunnytail tickles %s face",Victim,Victim, Adj(3,"his","her", "hir"));
  108. if (assmunch == 39) sprintf(CommandBuf,"tailwavies~ at %s, showing him his engorged, dripping %s%s",Victim, MySpecies, Adj(3,"hood","cock"," member"));
  109. if (assmunch == 40) sprintf(CommandBuf,"critches the inside of %s's rosebud with his entire hand while lapping up the fountain of %s butter escaping from %s's engorged member",Victim,YourSpecies,Victim);
  110. if (assmunch == 41) sprintf(CommandBuf,"mounts %s and thrusts his %s %s cock deeply in his tight ass, ramming his bulging knot deeper with each pump, his balls smacking against the %s's ass while his already engorged member squirts pre all in you", Victim, Adj(2,"throbbing","pulsing"), MySpecies, YourSpecies);
  111. if (assmunch == 42) sprintf(CommandBuf,"rubs his paws through %s's %sfuzz, sticking his muzzle under the %s's tail giving %s %s a nice warm lick", Victim, Adj(3,"butt","butt","ass"), YourSpecies, Adj(2,"his","her"), Adj(2,"tailstar","tailhole"));
  112.  
  113. if(NULL != strstr(CommandBuf,"fails to")) {
  114.   YiffChain++;
  115.   assmunch = rand()%MaxYiffScript; // pick a new yiff action
  116.   continue;
  117. }
  118. else {
  119.   strcat(ChainBuffer, CommandBuf);
  120.   if(YiffChain != 1) strcat(ChainBuffer, ", and then "); // "and after that"
  121. }
  122. //<NovaYoshi> Note the "and then"
  123. //<Kyurel> "and then"
  124. //<Kyurel> is that the best you can come up with?
  125. //<NovaYoshi> yes
  126. //<Kyurel> you should have a whole bunch of conjoining strings
  127. //<Kyurel> so that it's not like
  128. //<Kyurel> "and then... and then... and then... and then"
  129. //<Kyurel> maybe
  130. //<Kyurel> "next... then... thenceforth... finally..."
  131.  
  132. assmunch = rand()%MaxYiffScript; // pick a new yiff action
  133. }
  134. sprintf(CommandBuf, "%s %s", ChainBuffer, Adj(6,"","","<3",":3","=^____^=","=^________^=")); // append a smiley
  135.  
  136.    xchat_commandf(ph, "%s %s", ReplyWith, CommandBuf); // unleash the awesomeness that is yiffscript
  137.    return XCHAT_EAT_ALL;   /* eat this command so xchat and other plugins can't process it */
  138. }
Add Comment
Please, Sign In to add comment