Skip to content

Instantly share code, notes, and snippets.

int32 LuaInterface::luaIsInArray(lua_State* L) {
//isInArray(array, value[, caseSensitive = false])
bool caseSensitive = false;
if(lua_gettop(L) > 2)
caseSensitive = popBoolean(L);
boost::any value;
if(lua_isnumber(L, -1))
value = popFloatNumber(L);
else if(lua_isboolean(L, -1))
@BenDol
BenDol / callstack
Created December 2, 2014 03:41
Exception
KERNELBASE.dll!RaiseException() Unknown
lua51.dll!000007fef3cc939e() Unknown
lua51.dll!000007fef3cc911c() Unknown
lua51.dll!000007fef3cce068() Unknown
lua51.dll!000007fef3cea74f() Unknown
lua51.dll!000007fef3cea60c() Unknown
lua51.dll!000007fef3ce9fa3() Unknown
lua51.dll!000007fef3cd2d24() Unknown
lua51.dll!000007fef3ca88f1() Unknown
tfs-x64.exe!LuaInterface::pushTable(lua_State * L) Line 1185 C++
@BenDol
BenDol / npcs.cpp
Created December 3, 2014 14:25
onThink Isse
void Npc::onThink(uint32 interval) {
/*Creature::onThink(interval);
if (m_npcEventHandler) {
m_npcEventHandler->onThink();
}*/
std::vector<Player*> list;
Player* player = nullptr;
@BenDol
BenDol / npcs.cpp
Created December 3, 2014 14:47
NpcEvents::onThink()
void NpcEvents::onThink() {
if(m_onThink == -1)
return;
//onThink()
if(m_interface->reserveEnv()) {
ScriptEnviroment* env = m_interface->getEnv();
#ifdef __DEBUG_LUASCRIPTS__
std::stringstream desc;
@BenDol
BenDol / npchandler.lua
Created December 3, 2014 14:59
NpcHandler:onThink()
-- Handles onThink events. If you wish to handle this yourself, please use the CALLBACK_ONTHINK callback.
function NpcHandler:onThink()
local callback = self:getCallback(CALLBACK_ONTHINK)
if callback == nil or callback() then
for i, speech in pairs(self.talkDelay) do
if (speech.cid == nil or speech.cid == 0) and speech.time ~= nil and speech.message ~= nil then
if os.mtime() >= speech.time then
selfSay(speech.message)
self.talkDelay[i] = nil
end
@BenDol
BenDol / lol.xml
Created December 5, 2014 15:26
example.xml
<?xml version="1.0"?>
<interaction>
<interact keywords="bank">
<response text="The depots are very easy to use. Just step in front of them and you will find your items in them. They are free for all tibian citizens."/>
</interact>
<interact keywords="offer">
<!--These are alternative keywords-->
@BenDol
BenDol / otserv.cpp
Created December 6, 2014 12:09
VLD Logging
int main(int argc, char* argv[])
{
VLDEnable(); // enable VDL
// Setup bad allocation handler
std::set_new_handler(badAllocationHandler);
#ifndef _WIN32
// ignore sigpipe...
struct sigaction sigh;
@BenDol
BenDol / tasks.cpp
Created December 6, 2014 12:10
Enable VLD with Dispatch Thread
void Dispatcher::dispatcherThread()
{
VLDEnable();
OutputMessagePool* outputPool = OutputMessagePool::getInstance();
// NOTE: second argument defer_lock is to prevent from immediate locking
std::unique_lock<std::mutex> taskLockUnique(m_taskLock, std::defer_lock);
while (m_threadState != STATE_TERMINATED) {
// check if there are tasks waiting
@BenDol
BenDol / adam_awesome.java
Last active August 29, 2015 14:15
Adam is Awesome!
// Object Oriented Life Motto
Person person = world.getPerson("Adam Dempsey");
if(person != null) {
while(person.isAlive()) {
if(person.isSad()) {
person.setSad(false);
person.executeAwesomeness();
}
else {
person.fistBumpClosestPerson();
@BenDol
BenDol / designer.html
Last active August 29, 2015 14:16
designer
<link rel="import" href="../core-ajax/core-ajax.html">
<link rel="import" href="../topeka-elements/topeka-datasource.html">
<link rel="import" href="../paper-toast/paper-toast.html">
<link rel="import" href="../paper-tabs/paper-tabs.html">
<link rel="import" href="../paper-tabs/paper-tab.html">
<link rel="import" href="../paper-toggle-button/paper-toggle-button.html">
<link rel="import" href="../paper-button/paper-button.html">
<link rel="import" href="../paper-ripple/paper-ripple.html">
<link rel="import" href="../notification-elements/notification-alert.html">
<link rel="import" href="../speech-mic/speech-mic.html">