Raised This Month: $51 Target: $400
 12% 

Xmas and Easter Presents Spawner (with SQL support)


Post New Thread Reply   
 
Thread Tools Display Modes
heroeskiller
Senior Member
Join Date: Mar 2007
Old 11-30-2007 , 03:29   Re: Xmas and Easter Presents Spawner (with SQL support)
Reply With Quote #31

Hi,
it's a great plugin
But i have a question
Is it posible to make random spawnpoints?
It could be boring if they spawn every round at the same places

And can u make some Presents to "GET XP"-Presents ^^ :
The presents will randomly spawn and their content could also be random.
Just money or xp for superheromod ^^
It will randomly chose what type of present

Last edited by heroeskiller; 11-30-2007 at 03:32.
heroeskiller is offline
MaximusBrood
Veteran Member
Join Date: Sep 2005
Location: The Netherlands
Old 12-08-2007 , 10:55   Re: Xmas and Easter Presents Spawner (with SQL support)
Reply With Quote #32

Xmas is in sight, if resumed development on this plugin.
I expect it to be finished today or tomorrow.

I'll include the option for Warcraft 3:FT XP, and I'll add a forward for other plugin so you can add it yourself.
Currently researching the option of making the presents fall random every round. Difficult thing, if you have any suggestions, please say so.
__________________
Released six formerly private plugins. Not active here since ages.
MaximusBrood is offline
Brad
AMX Mod X Team Member
Join Date: Jun 2004
Old 12-08-2007 , 15:45   Re: Xmas and Easter Presents Spawner (with SQL support)
Reply With Quote #33

re: random spawn points

Maximus, simply enough, you could allow the server op to define all possible spawn points and then have an option for how many locations to spawn from at a given time.
__________________
Brad is offline
SeToY
SourceMod Donor
Join Date: Jul 2006
Location: Germany
Old 12-08-2007 , 16:19   Re: Xmas and Easter Presents Spawner (with SQL support)
Reply With Quote #34

maximus, i cant find the SQL Source

or i am blind?
__________________
Success is a lousy teacher. It seduces smart people into thinking they can't lose.
- Bill Gates

Quote:
Originally Posted by Hawk552
SeToY is a retard, scumbag and asshole and you shouldn't pretend that he isn't.
SeToY is offline
MaximusBrood
Veteran Member
Join Date: Sep 2005
Location: The Netherlands
Old 12-08-2007 , 19:20   Re: Xmas and Easter Presents Spawner (with SQL support)
Reply With Quote #35

Quote:
Originally Posted by Brad View Post
re: random spawn points

Maximus, simply enough, you could allow the server op to define all possible spawn points and then have an option for how many locations to spawn from at a given time.
The reason to do it in the first place was that you wouldn't have to go through the hassle of adding spawn points. It really takes a lot of time. I have found a function to get random origins, now I need to fine tune it for a bit.

Quote:
Originally Posted by SeToY View Post
maximus, i cant find the SQL Source
or i am blind?
You are blind, but please wait for me to update the plugin.
The SQL version is not even working in other server implementations than my own.
__________________
Released six formerly private plugins. Not active here since ages.
MaximusBrood is offline
micke1101
Veteran Member
Join Date: Jan 2008
Location: Banned-town
Old 03-04-2008 , 15:00   Re: Xmas and Easter Presents Spawner (with SQL support)
Reply With Quote #36

hi i have a superhero server and i have played another one with this and there you had xp and money for the presents so i tried to make this to give xp but it didnt even compile so i wondering if any good coder could maybe help me
this is what i did (not mush change but guess it have to be mush)
Code:
#include <amxmodx>
#include <amxmisc>
#include <engine>

/* Configuration */
//-----------------------------------
//Only activate one of these two.
//#define XMAS
#define EASTER
//-----------------------------------
//Comment this if you are not using cstrike (there won't be rewards for picking up a present)
#define USING_CTRIKE
#if defined USING_CTRIKE
 #include <cstrike>
#endif
//-----------------------------------
//Maximums
#define MAX_SPAWNLOCATIONS 64
#define TOTAL_COLORS 10
#define EASTER_MAX_MODELS 5
#define XMAS_MAX_MODELS 2
//-----------------------------------
//Database Info
//Comment this to not use a database
//#define USING_DATABASE
#define DATABASE_HOST ""
#define DATABASE_USERNAME ""
#define DATABASE_PASSWORD ""
#define DATABASE_DATABASE ""
#if defined USING_DATABASE
 #include <sqlx>
#endif
/* End configuration */
#pragma semicolon 1
new gcvar_removePresents;
new gcvar_presentAmount;
new g_orginFilePath[256];
new Float:g_spawnOrigins[MAX_SPAWNLOCATIONS][3];
new g_totalOrigins;
#if defined USING_DATABASE
 new Handle:g_loginData;
 new Handle:g_connection;
#endif
new Float:colors[TOTAL_COLORS][3] = 
{
 {95.0, 200.0, 255.0},
 {0.0, 150.0, 255.0},
 {180.0, 255.0, 175.0},
 {0.0, 155.0, 0.0},
 {255.0, 255.0, 255.0},
 {255.0, 190.0, 90.0},
 {222.0, 110.0, 0.0},
 {192.0, 192.0, 192.0},
 {190.0, 100.0, 10.0},
 {0.0, 0.0, 0.0}
};
//----------------------------------------------------------------------------
//       Init
//----------------------------------------------------------------------------
public plugin_init()
{
#if defined USING_DATABASE
 register_plugin("presentsSpawner", "1.5_SQL", "MaximusBrood");
#else
 register_plugin("presentsSpawner", "1.5", "MaximusBrood");
#endif
 register_dictionary("presentsspawner.txt");
 //Commands
 register_clcmd("amx_addspawnpoint", "cmd_addSpawn", ADMIN_RCON, "- add a spawnpoint at your current location");
 register_clcmd("amx_spawnpresent", "cmd_spawnPresent", ADMIN_RCON, "- Spawns an egg with money in it");
 register_clcmd("amx_removepresents", "cmd_removePresents", ADMIN_RCON, "- Remove all presents from the map");
#if defined USING_DATABASE
 register_clcmd("say", "cmd_say");
#endif
 
 //Cvars
 gcvar_removePresents = register_cvar("sv_removepresents", "1");
 gcvar_presentAmount = register_cvar("sv_presentamount", "3");
 
#if defined USING_DATABASE
 register_cvar("presentsSpawner_version", "1.5_SQL", FCVAR_SERVER);
#else
 register_cvar("presentsSpawner_version", "1.5", FCVAR_SERVER);
#endif
 
 //Events
 register_logevent("event_roundStart", 2, "1=Round_Start");
 register_touch("maximusbroodPresent", "player", "event_presentTouch");
  
 //Get the path to the origin file
 new filepath[256];
 get_datadir(filepath, 255);
 
 new mapname[32];
 get_mapname(mapname, 31);
 
 format(g_orginFilePath, 255, "%s/presents/%s.ini", filepath, mapname);
 
 //Load the locations
 loadData();
 
#if defined USING_DATABASE
 SQL_SetAffinity("mysql");
 //Create login tuple
 g_loginData = SQL_MakeDbTuple(DATABASE_HOST, DATABASE_USERNAME, DATABASE_PASSWORD, DATABASE_DATABASE);
 
 //Connect for the simple query
 database_connect();
#endif
}
#if defined USING_DATABASE
public plugin_end()
{
 if(g_connection && g_connection != Empty_Handle)
  SQL_FreeHandle(g_connection);
}
#endif
public plugin_precache()
{
#if defined EASTER
 for(new a = 1; a <= EASTER_MAX_MODELS; ++a)
  formatPrecache_model("models/easteregg%d.mdl", a);
#endif
#if defined XMAS
 for(new a = 1; a <= XMAS_MAX_MODELS; ++a)
  formatPrecache_model("models/xmaspresent%d.mdl", a);
#endif
 return PLUGIN_CONTINUE;
}

//----------------------------------------------------------------------------
//        File reading
//----------------------------------------------------------------------------
loadData()
{
 g_totalOrigins = 0;
 
 //Note that we won't throw any errormessages when no presents are found
 new buffer[128];
 new strX[12], strY[12], strZ[12];
 if( file_exists(g_orginFilePath) )  
 {
  new readPointer = fopen(g_orginFilePath, "rt");
  
  if(!readPointer)
   return;
   
  while( !feof(readPointer) )
  {
   fgets(readPointer, buffer, 127);
   
   if(buffer[0] == ';' || !buffer[0])
    continue;
    
   parse(buffer, strX, 11, strY, 11, strZ, 11);
   
   g_spawnOrigins[g_totalOrigins][0] = float(str_to_num(strX));
   g_spawnOrigins[g_totalOrigins][1] = float(str_to_num(strY));
   g_spawnOrigins[g_totalOrigins][2] = float(str_to_num(strZ));
   
   ++g_totalOrigins;
  }
  
  fclose(readPointer);
 }
}
//----------------------------------------------------------------------------
//        Commands
//----------------------------------------------------------------------------
public cmd_addSpawn(id, level, cid)
{
 if (!cmd_access(id, level, cid, 1))
  return PLUGIN_HANDLED;
  
 //Check for too many spawns
 if(g_totalOrigins >= MAX_SPAWNLOCATIONS)
 {
  printChatAndConsole(id, "[presentsSpawner] %L", id, "MAXSPAWNS_REACHED", MAX_SPAWNLOCATIONS);
  return PLUGIN_CONTINUE;
 }
 
 //Get the current origin
 new Float:currentOrigin[3];
 entity_get_vector(id, EV_VEC_origin, currentOrigin);
 
 //Open the file for writing, write the origin and close up
 new writePointer = fopen(g_orginFilePath, "at");
 
 if(writePointer)
 {
  server_print("Writing, coords are {%f, %f, %f} or {%d, %d, %d}", currentOrigin[0], currentOrigin[1], currentOrigin[2], floatround(currentOrigin[0]), floatround(currentOrigin[1]), floatround(currentOrigin[2]));
  
  fprintf(writePointer, "%d %d %d^n", floatround(currentOrigin[0]), floatround(currentOrigin[1]), floatround(currentOrigin[2]) );
 
  fclose(writePointer);
  
  //Notify the user
  printChatAndConsole(id, "[presentsSpawner] %L", id, "ADD_SUCCESS");
 
  //Reload spawnpoints
  loadData();
 } else
  printChatAndConsole(id, "Failed to add!");
 
 return PLUGIN_CONTINUE;
}
public cmd_spawnPresent(id, level, cid)
{
 if (!cmd_access(id, level, cid, 1))
  return PLUGIN_HANDLED;
  
 //Get the player's origin
 new Float:playerOrigin[3];
 entity_get_vector(id, EV_VEC_origin, playerOrigin);
 
 //Pack the origin
 new packedOrigin[3];
 FVecIVec(playerOrigin, packedOrigin);
 
 set_task(2.5, "spawnPresent", _, packedOrigin, 3);
 
 //Don't display a message to the user, gets irritating 
 return PLUGIN_HANDLED;
}
public cmd_removePresents(id, level, cid)
{
 if (!cmd_access(id, level, cid, 1))
  return PLUGIN_CONTINUE;
  
 removePresents();
 
 printChatAndConsole(id, "[presentsSpawner] %L", id, "REMOVED_ALL");
 
 return PLUGIN_CONTINUE;
}
#if defined USING_DATABASE
public cmd_say(id)
{
 if(id < 1)
  return PLUGIN_CONTINUE;
 
 new chatMessage[191];
 read_args(chatMessage, 190);
 remove_quotes(chatMessage);
 
#if defined EASTER
 if(equali(chatMessage, "/easterrank"))
 {
  database_showRank(id);
 } else if(equali(chatMessage, "/eastertop10") || equali(chatMessage, "/eastertop") || equali(chatMessage, "/easterwinner"))
 {
  show_motd(id, "http://gotjuice.nl/stats/presentStats.php", "Easter Top 10");
 } else if(equali(chatMessage, "/easterinfo"))
 {
  show_motd(id, "http://gotjuice.nl/stats/easterInfo.html", "Easter Contest Info");
 } else if(equali(chatMessage, "/easternextrank"))
 {
  database_showNextRank(id);
 }
#endif
#if defined XMAS 
 if(equali(chatMessage, "/xmasrank"))
 {
  database_showRank(id);
 } else if(equali(chatMessage, "/xmastop10") || equali(chatMessage, "/xmastop") || equali(chatMessage, "/xmaswinner"))
 {
  show_motd(id, "http://gotjuice.nl/stats/presentStats.php", "Xmas Top 10");
 } else if(equali(chatMessage, "/xmasinfo"))
 {
  show_motd(id, "http://gotjuice.nl/stats/xmasInfo.html", "Xmas Contest Info");
 } else if(equali(chatMessage, "/xmasnextrank"))
 {
  database_showNextRank(id);
 }
#endif
 return PLUGIN_CONTINUE;
}
#endif
//----------------------------------------------------------------------------
//        Events
//----------------------------------------------------------------------------
public event_roundStart()
{
 //Check if there are spawnlocations to drop to
 if(g_totalOrigins < 0)
  return PLUGIN_CONTINUE;
  
 //Get the number of players minus HLTV or bots
 //Only spawn presents with 2 or more real players
 new currPlayers, temp[32];
 get_players(temp, currPlayers, "ch");
 
 if(currPlayers < 2)
  return PLUGIN_CONTINUE;
  
 //Remove all eggs if requested
 if(get_pcvar_num(gcvar_removePresents) == 1)
  removePresents();
  
 //Get the amount of eggs to drop
 new eggAmount = get_pcvar_num(gcvar_presentAmount);
 
 //Plant the presents ^_-
 new currentOrigin[3];
 for(new a = 0; a < g_totalOrigins; ++a)
 {
  //Pack the origin
  FVecIVec(g_spawnOrigins[a], currentOrigin);
  
  for(new b = 0; b < eggAmount; ++b)
  {
   spawnPresent(currentOrigin);
  }
 }
 
 return PLUGIN_CONTINUE;
}
public event_presentTouch(pTouched, pToucher)
{
 //Error checking
 if(!is_valid_ent(pToucher) || !is_valid_ent(pTouched) || !is_user_connected(pToucher))
  return PLUGIN_HANDLED;
  
#if defined USING_CTRIKE
 
 //Money handling for CS
 new randomXp = random_num(50, 500);
 
 cs_set_user_xp(pToucher, (cs_get_user_xp(pToucher) + randomXp), 1);
 
 #if defined EASTER
  client_print(pToucher, print_chat, "[presentsSpawner] %L", pToucher, "EASTEREGG_TOUCH_CSTRIKE", randomXp);
 #endif
  
 #if defined XMAS
  client_print(pToucher, print_chat, "[presentsSpawner] %L", pToucher, "XMASPRESENT_TOUCH_CSTRIKE", randomXp);
 #endif
  
 #if defined USING_DATABASE 
  database_updateRecord(pToucher, randomMoney);
 #endif
 
#else
 #if defined EASTER
  client_print(pToucher, print_chat, "[presentsSpawner] %L", pToucher, "EASTEREGG_TOUCH");
 #endif
  
 #if defined XMAS
  client_print(pToucher, print_chat, "[presentsSpawner] %L", pToucher, "XMASPRESENT_TOUCH");
 #endif
 
#endif
 //Remove the egg
 remove_entity(pTouched);
 
 return PLUGIN_HANDLED;
}
//----------------------------------------------------------------------------
//        Main Functions
//----------------------------------------------------------------------------
public spawnPresent(packedOrigin[3])
{
 //Unpack the origin
 new Float:origin[3];
 IVecFVec(packedOrigin, origin);
 
 //Create entity and set origin and velocity
 new entity;
 entity = create_entity("info_target");
 
 entity_set_origin(entity, origin);
 
 new Float:velocity[3];
 velocity[0] = (random_float(0.0, 256.0) - 128.0);
 velocity[1] = (random_float(0.0, 256.0) - 128.0);
 velocity[2] = (random_float(0.0, 300.0) + 75.0);
  
 entity_set_vector(entity, EV_VEC_velocity, velocity );
 
 //Set a random model
 static modelName[64];
 
#if defined EASTER
 formatex(modelName, 63, "models/easteregg%d.mdl", random_num(1, EASTER_MAX_MODELS));
#endif
#if defined XMAS
 formatex(modelName, 63, "models/xmaspresent%d.mdl", random_num(1, XMAS_MAX_MODELS));
#endif
 entity_set_model(entity, modelName);
 
 //Color (75% chance)
 if(random_num(1, 4) > 2)
 {
  //Special effect (25% chance)
  if(random_num(1, 4) == 1)
   entity_set_int(entity, EV_INT_renderfx, kRenderFxHologram);
   
  entity_set_vector(entity, EV_VEC_rendercolor, colors[random(TOTAL_COLORS)] );
   
  entity_set_int(entity, EV_INT_renderfx, kRenderFxGlowShell);
  entity_set_float(entity, EV_FL_renderamt, 1000.0);
  entity_set_int(entity, EV_INT_rendermode, kRenderTransAlpha);
 }
 
 //The rest of the properties
 entity_set_string(entity, EV_SZ_classname, "maximusbroodPresent");
 entity_set_int(entity, EV_INT_effects, 32);
 entity_set_int(entity, EV_INT_solid, SOLID_TRIGGER);
 entity_set_int(entity, EV_INT_movetype, MOVETYPE_TOSS);
 
 return PLUGIN_CONTINUE;
}
removePresents()
{
 new currentEntity;
 while ( (currentEntity = find_ent_by_class(currentEntity, "maximusbroodPresent")) != 0)
 {
  remove_entity(currentEntity);
 }
}
//----------------------------------------------------------------------------
//       Database Functions
//----------------------------------------------------------------------------
#if defined USING_DATABASE
stock database_connect()
{
 new errorCode, strError[128];
 
 //Make the actual connection
 g_connection = SQL_Connect(g_loginData, errorCode, strError, 127);
 
 //Check for errors
 if(g_connection == Empty_Handle)
 {
  //Log the error to file
  log_amx("Error while connecting to MySQL host %s with user %s", DATABASE_HOST, DATABASE_USERNAME);
  log_amx("Errorcode %d: %s", errorCode, strError);
 }
}
//%%% Command showRank %%%
stock database_showRank(id)
{
 static authid[32], strQuery[256];
 
 get_user_authid(id, authid, 31);
 
 formatex(strQuery, 255, "SELECT rank, presentAmount, moneyAmount FROM presentStats WHERE authid = '%s';", authid);
 
 //Send the playerid with the query
 new data[1];
 data[0] = id;
 
 SQL_ThreadQuery(g_loginData, "database_rankCallback", strQuery, data, 1);
}
public database_rankCallback(failstate, Handle:query, error[], errnum, data[], size)
{
 //new queryerror[256];
 //SQL_QueryError (query, queryerror, 255);
 //server_print("Data is -> id: %d [*] queryerror: %s", data[0], queryerror);
 
 //Check if the user is still ingame
 if(!is_user_connected(data[0]))
  return PLUGIN_HANDLED;
  
 new rank, presents, xp;
 
 if(failstate)
 {
  client_print(data[0], print_chat, "The presents statistics are currently offline.");  
 } else
 {
  //Check if the query did match a row
  if(SQL_NumResults(query) != 0)
  {
   //We only need to get 3 columns, next row is impossible and undesirable
   rank   = SQL_ReadResult(query, 0);
   presents  = SQL_ReadResult(query, 1);
   xp = SQL_ReadResult(query, 2);
   
#if defined EASTER
   if(rank > 0)
    client_print(data[0], print_chat, "Your rank is #%d with %d presents containing %d dollars. Happy Easter!", rank, presents, xp);
   else
    client_print(data[0], print_chat, "Your rank hasn't been calculated yet, but you collected %d presents containing %d dollars. Happy Easter!", presents, money);
#endif
#if defined XMAS
   if(rank > 0)
    client_print(data[0], print_chat, "Your rank is #%d with %d presents containing %d dollars. Happy Xmas!", rank, presents, xp);
   else
    client_print(data[0], print_chat, "Your rank hasn't been calculated yet, but you collected %d presents containing %d dollars. Happy Xmas!", presents, money);
#endif
    
  } else
  {
   client_print(data[0], print_chat, "Your rank hasn't been calculated yet or you didn't pickup any presents.");
  }
 }
 
 return PLUGIN_HANDLED;
}
//%%% Show Next Rank %%%
stock database_showNextRank(id)
{
 static authid[32], strQuery[256];
 
 get_user_authid(id, authid, 31);
 
 formatex(strQuery, 255, "SELECT rank, presentAmount FROM presentStats WHERE authid = '%s';", authid);
 
 //Send the playerid with the query
 new data[1];
 data[0] = id;
 
 SQL_ThreadQuery(g_loginData, "database_nextRankCallbackOne", strQuery, data, 1);
}
public database_nextRankCallbackOne(failstate, Handle:query, error[], errnum, data[], size)
{
 //new queryerror[256];
 //SQL_QueryError (query, queryerror, 255);
 //server_print("Data is -> id: %d [*] queryerror: %s", data[0], queryerror);
 
 //Check if the user is still ingame
 if(!is_user_connected(data[0]))
  return PLUGIN_HANDLED;
  
 new rank, presents;
 static strQuery[256];
 
 if(failstate)
 {
  client_print(data[0], print_chat, "The presents statistics are currently offline.");  
 } else
 {
  //Check if the query did match a row
  if(SQL_NumResults(query) != 0)
  {
   //We only need to get 2 columns, next row is impossible and undesirable
   rank   = SQL_ReadResult(query, 0);
   presents  = SQL_ReadResult(query, 1);
   
   //You can't be better than #1
   if(rank == 1)
   {
    client_print(data[0], print_chat, "You are #1. There isn't anyone above you!");
    return PLUGIN_HANDLED;
   }
   
   //Make a new query that checks for the next ranking person.
   formatex(strQuery, 255, "SELECT rank, presentAmount FROM presentStats WHERE presentAmount > %d ORDER BY presentAmount ASC LIMIT 1", presents);
   
   //Pack the id and amount of presents and do the query
   new newData[2];
   newData[0] = data[0];
   newData[1] = presents;
   
   SQL_ThreadQuery(g_loginData, "database_nextRankCallbackTwo", strQuery, newData, 2);
    
  } else
  {
   client_print(data[0], print_chat, "Your rank hasn't been calculated yet or you didn't pickup any presents.");
  }
 }
 
 return PLUGIN_HANDLED;
}
public database_nextRankCallbackTwo(failstate, Handle:query, error[], errnum, data[], size)
{
 //new queryerror[256];
 //SQL_QueryError (query, queryerror, 255);
 //server_print("Data is -> id: %d [*] queryerror: %s", data[0], queryerror);
 
 //Check if the user is still ingame
 if(!is_user_connected(data[0]))
  return PLUGIN_HANDLED;
  
 if(failstate)
 {
  client_print(data[0], print_chat, "The presents statistics are currently offline.");
 } else
 {
  //Check if the query did match a row
  if(SQL_NumResults(query) != 0)
  {
   //Get two columns, one row
   new aboveRank = SQL_ReadResult(query, 0);
   new abovePresents = SQL_ReadResult(query, 1);
   
   //Output the final message to the client
   client_print(data[0], print_chat, "You need %d more presents to go to #%d.", ((abovePresents - data[1]) + 1), aboveRank );
  } else
  {
   client_print(data[0], print_chat, "Your rank hasn't been calculated yet or you didn't pickup any presents.");
  }
 }
 
 return PLUGIN_HANDLED;
}
//%%% Update player record %%%
stock database_updateRecord(id, xp)
{
 //Check for database connection
 if(g_connection == Empty_Handle)
  return;
 
 static authid[32], query[256], errorMessage[2], errorNum;
 
 get_user_authid(id, authid, 31);
 
 formatex(query, 255, "INSERT INTO presentStats VALUES('%s', 0, 1, %d) ON DUPLICATE KEY UPDATE presentAmount=presentAmount+1, moneyAmount=moneyAmount+%d;", authid, xp, xp); 
 
 //We discard the successfullness
 SQL_SimpleQuery (g_connection, query, errorMessage, 1, errorNum);
}
#endif
//----------------------------------------------------------------------------
//        Helpers
//----------------------------------------------------------------------------
stock printChatAndConsole(id, text[], ...)
{
 static buffer[128];
 
 vformat(buffer, 127, text, 3);
 
 client_print(id, print_chat, "%s", buffer);
 client_print(id, print_console, "%s", buffer);
}
stock formatPrecache_model(name[], ...)
{
 static buffer[256];
 
 vformat(buffer, 255, name, 2);
 
 precache_model(buffer);
}
micke1101 is offline
MaximusBrood
Veteran Member
Join Date: Sep 2005
Location: The Netherlands
Old 04-25-2008 , 08:24   Re: Xmas and Easter Presents Spawner (with SQL support)
Reply With Quote #37

I'm not really into AMXX scripting anymore, so this plugin is more or less discontinued.
If anyone would want to restart the project: you're more than welcome if you have to needed experience.

The SQL version of this plugin is fucked up, because it relies on other plugins that were only available on my own server (on which the ranking system worked great, by the way ;)). That would be the first issue to iron out.

If you want to continue the project; the latest version can be found on my SVN (user and pass are both: guest). You can PM me to get write access if you are serious about it.
__________________
Released six formerly private plugins. Not active here since ages.
MaximusBrood is offline
fjollerik
Member
Join Date: Jul 2007
Location: Denmark
Old 11-26-2008 , 15:18   Re: Xmas and Easter Presents Spawner
Reply With Quote #38

Quote:
Originally Posted by MaximusBrood View Post
Presents spawner with SQL stats!

As an extra I integrated my presents plugin with a MySQL database, this is the result:

General info about the Easter contest
Top 10 of the best collecting players on Gotjuice



The PHP sourcecode will be uploaded soon.

So when are you gonna upload it?? its 2008 now...
If you dont wanna update your plugin any more.. then delete your "updates"
fjollerik is offline
crazyeffect
Veteran Member
Join Date: Jul 2008
Location: Belgium
Old 11-27-2008 , 13:07   Re: Xmas and Easter Presents Spawner (with SQL support)
Reply With Quote #39

Dutch translation:

Quote:
[nl]
MAXSPAWNS_REACHED = Kan de spawn locatie niet toevoegen, maximaal aantal spawns in de server. (%d)
ADD_SUCCESS = Je momentele locatie is opgeslagen als een spawnlocatie.
REMOVED_ALL = Alle cadeau's zijn verwijderd!
EASTEREGG_TOUCH = Je hebt een paasei gevonden!
XMASPRESENT_TOUCH = Je hebt een kerstmis cadeau gevonden!
EASTEREGG_TOUCH_CSTRIKE = Je hebt een paasei gevonden -> $%d
XMASPRESENT_TOUCH_CSTRIKE = Je hebt en kerstmis cadeau gevonden -> $%d
Hope i helped

-

I should suggest you make this plugin MULTILANGUAL!

If you need help, PM me...
__________________
crazyeffect is offline
Send a message via MSN to crazyeffect
MaximusBrood
Veteran Member
Join Date: Sep 2005
Location: The Netherlands
Old 11-28-2008 , 03:49   Re: Xmas and Easter Presents Spawner (with SQL support)
Reply With Quote #40

That's a horrible translation (I'm Dutch myself), I hope you don't translate anytime soon.
Anyway, I've really abandonned AMXX scripting, so I'm not going to put life into this again.
__________________
Released six formerly private plugins. Not active here since ages.

Last edited by MaximusBrood; 11-28-2008 at 19:46.
MaximusBrood is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 05:04.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode