| Welcome, Guest |
You have to register before you can post on our site.
|
| Online Users |
There are currently 380 online users. » 1 Member(s) | 376 Guest(s) Yandex, Bing, Google, Mychael
|
| Latest Threads |
Is there a WebSocket plug...
Forum: General Discussions
Last Post: lyly19
2 hours ago
» Replies: 1
» Views: 244
|
UZS Zombie Survival
Forum: Advertisements
Last Post: phnx
2026-04-04, 05:32 PM
» Replies: 0
» Views: 38
|
🎮 Free SA-MP Server Hosti...
Forum: Chat
Last Post: Centnodes
2026-04-02, 02:22 AM
» Replies: 14
» Views: 3,141
|
FCNPC for open.mp
Forum: Pawn Scripting
Last Post: mentaletion
2026-04-01, 12:28 PM
» Replies: 7
» Views: 7,371
|
Samp development
Forum: Chat
Last Post: pmemorex2016
2026-03-31, 09:57 AM
» Replies: 0
» Views: 119
|
Pawno compiler (pawncc.ex...
Forum: Support
Last Post: PutuSuhartawan
2026-03-20, 11:12 PM
» Replies: 0
» Views: 166
|
[0.3.7 & 0.3.DL] Los Sant...
Forum: Advertisements
Last Post: renza1st
2026-03-16, 05:58 AM
» Replies: 0
» Views: 116
|
Las Venturas Gang Wars - ...
Forum: Advertisements
Last Post: lvgwgta
2026-03-13, 11:17 AM
» Replies: 0
» Views: 105
|
Atlanta DeathMatch/Team D...
Forum: Advertisements
Last Post: NixaSha
2026-03-10, 04:57 AM
» Replies: 1
» Views: 151
|
mysql_samp
Forum: Plugins
Last Post: NullSablex
2026-03-10, 03:33 AM
» Replies: 0
» Views: 194
|
|
|
| Open Roleplay | Biome Generator V3 |
|
Posted by: Corne - 2025-01-01, 09:24 PM - Forum: Videos and Screenshots
- No Replies
|
 |
I've posted some videos and photos of this in the past, but after many years I've picked up on this project again for my upcoming roleplaying server.
Current history so far:
V1: Was written in PAWN, world generation took 30 - 60 minutes and during that time you couldn't join the server.
V2: Was written in .NET using spaghetti code, world generation took roughly 15 minutes and during that time you could play on the server and see it happen in front of you, see Young Fir Forest & Dense Fir Forest video.
V3: Fully refactored the code in .NET and made it organized, clean and now partially supports multi-threading. World generation now takes roughly 100 seconds, does give a bit of a lag spike on the server while it is generating.
Little disclaimer: This is not yet actually for the entire world. Red County and Whetstone are near fully implemented, Flint County and Bone County still have to be done. I also have plans to add way more biomes in the future, and even underwater biomes, all of which will increase the generation time.
[Video: https://www.youtube.com/watch?v=fF0cSdKCPnw]
[Video: https://www.youtube.com/watch?v=0Q5gp7N4M0M]
[Video: https://www.youtube.com/watch?v=KvREbFi6sb0]
[Video: https://www.youtube.com/watch?v=c5YGdkrZHsE]
I also have plans for a V4 in the future. I believe I can get the world generation time down even more, but for now I am satisfied and working on other more important features for the server. The biome generator is not just meant to be a gimmick but have an actual purpose for RPG elements like crafting, gathering, hunting, woodcutting, mining, etc.
|
|
|
|
| ayuda con sistema de zonas |
|
Posted by: Nikolay_Staggs - 2024-12-31, 07:40 AM - Forum: Programación
- No Replies
|
 |
hola amigos me preguntaba si me podÃan pasarme un sistema de conquistar zonas basico como no le entiendo aun me cerbiria mucho plis lo cambio por otro sistema que tenga tengo robo a banco tengo sistema vip tengo sistema cambiar color Random a un vehiculo tengo sistema de bombas de aera lo cambio por una de esas solo necesito el sistema de conquistar zonas plis
|
|
|
|
| Problema con sistema de casa |
|
Posted by: Nikolay_Staggs - 2024-12-28, 09:50 AM - Forum: Programación
- Replies (2)
|
 |
tengo un problema con mi sistema de casas por ejemplo compro la casa ID 0 y la ID 1 bueno entro a la ID 1 y cuando salGO de la ID 1 salgo en la ID 0 no se si es porque mi servidor TDM
CMD:entrar(jugador, params[])
{
para (new i = 0; i < MAX_PROPERTY; i++) //- Sistema de casas
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, INFO_PROPERTY[i][p_POS_EXT][0], INFO_PROPERTY[i][p_POS_EXT][1], INFO_PROPERTY[i][p_POS_EXT][2]))
{
  if(INFO_PROPERTY[i][p_CLOSED] == 0)
  {
¡¡¡¡si(INFO_PROPERTY[i][p_BOUGHT] == 1 && !strcmp(PlayerName(playerid), INFO_PROPERTY[i][p_OWNER]))
{
SetPlayerPosEx(playerid, INFO_PROPERTY[i][p_POS_INT][0], INFO_PROPERTY[i][p_POS_INT][1], INFO_PROPERTY[i][p_POS_INT][2], 0.0, INFO_PROPERTY[i][p_INTERIOR], i+10);
TEMPORAL_PLAYER[playerid][t_AT_HOME] = i;
  SetCameraBehindPlayer(jugador);
  TogglePlayerControlable(reproductor, falso);
GameTextForPlayer(jugador, "~g~Cargando~n~ ~w~~h~~h~Objetos", 3000, 1);
TEMPORAL_PLAYER[playerid][t_TIMER][2] = SetTimerEx("RemoverObjectos", 3000, false, "i", playerid);
regreso 1;
}
otra cosa
{
  ShowPlayerMessage(jugador, "~y~No eres el dueño de esta propiedad", 3);
}
}
otra cosa
{
  ShowPlayerMessage(jugador, "~r~Cerrado", 3);
}
regreso 1;
}
}
regreso 1;
}
CMD:salir(jugador, params[])
{
para (new i = 0; i < MAX_PROPERTY; i++) //- Sistema de casas
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, INFO_PROPERTY[i][p_POS_INT][0], INFO_PROPERTY[i][p_POS_INT][1], INFO_PROPERTY[i][p_POS_INT][2]))
{
SetPlayerPosEx(playerid, INFO_PROPERTY[i][p_POS_EXT][0], INFO_PROPERTY[i][p_POS_EXT][1], INFO_PROPERTY[i][p_POS_EXT][2], 0.0, 0, 0);
TEMPORAL_PLAYER[playerid][t_AT_HOME] = -1;
  SetCameraBehindPlayer(jugador);
  TogglePlayerControlable(reproductor, falso);
GameTextForPlayer(jugador, "~g~Cargando~n~ ~w~~h~~h~Objetos", 3000, 1);
TEMPORAL_PLAYER[playerid][t_TIMER][2] = SetTimerEx("RemoverObjectos", 3000, false, "i", playerid);
regreso 1;
}
}
regreso 1;
}
CMD:crearcasa(jugador, params[])
{
nuevo tipo, precio, str[250];
if(sscanf(params, "dd", type, price)) volver SendClientMessage(playerid, -1, "Syntax: /crearcasa [tipo de casa] [price]");
¿si (tipo < 1 || tipo > 5) devolver SendClientMessage(playerid, -1, "Las casas est?n entre 1 y 5 espacios.");
 para (nuevo cid = 0; cid < MAX_PROPERTY; cid++)
{
¡si (!INFO_PROPERTY[cid][p_TIPO])
{
  GetPlayerPos(playerid, INFO_PROPERTY[cid][p_POS_EXT][0], INFO_PROPERTY[cid][p_POS_EXT][1], INFO_PROPERTY[cid][p_POS_EXT][2])
  INFO_PROPERTY[cid][p_TYPE] = tipo;
  INFO_PROPERTY[cid][p_BOUGHT] = 0;
  INFO_PROPERTY[cid][p_CERRADO] = 0;
switch(tipo)
{
  caso 1:
  {
INFO_PROPERTY[cid][p_POS_INT][0] = 446.7660;
INFO_PROPERTY[cid][p_POS_INT][1] = 507.1065;
INFO_PROPERTY[cid][p_POS_INT][2] = 1001.4206;
INFO_PROPERTY[cid][p_PRICE] = precio;
INFO_PROPERTY[cid][p_INTERIOR] = 12;
  }
  caso 2:
  {
INFO_PROPERTY[cid][p_POS_INT][0] = 2495.9719;
INFO_PROPERTY[cid][p_POS_INT][1] = -1693.5554;
INFO_PROPERTY[cid][p_POS_INT][2] = 1014.8061;
INFO_PROPERTY[cid][p_PRICE] = precio;
INFO_PROPERTY[cid][p_INTERIOR] = 3;
  }
  caso 3:
  {
INFO_PROPERTY[cid][p_POS_INT][0] = 2455.6968;
INFO_PROPERTY[cid][p_POS_INT][1] = -1698.3298;
INFO_PROPERTY[cid][p_POS_INT][2] = 1013.5068;
INFO_PROPERTY[cid][p_PRICE] = precio;
INFO_PROPERTY[cid][p_INTERIOR] = 2;
  }
  caso 4:
  {
INFO_PROPERTY[cid][p_POS_INT][0] = 2524.9165;
INFO_PROPERTY[cid][p_POS_INT][1] = -1679.4109;
INFO_PROPERTY[cid][p_POS_INT][2] = 1015.4873;
INFO_PROPERTY[cid][p_PRICE] = precio;
INFO_PROPERTY[cid][p_INTERIOR] = 1;
  }
  caso 5:
  {
INFO_PROPERTY[cid][p_POS_INT][0] = 2807.5103;
INFO_PROPERTY[cid][p_POS_INT][1] = -1174.0422;
INFO_PROPERTY[cid][p_POS_INT][2] = 1025.5898;
INFO_PROPERTY[cid][p_PRICE] = precio;
INFO_PROPERTY[cid][p_INTERIOR] = 8;
  }
}
  formato(str,sizeof(str),"{00A8FF}EN VENTA\n {FFFFFF}Precio:{00A8FF}%d\n {FFFFFF}ID casa:{00A8FF}%d\n {FFFFFF}Usa{00A8FF}/comprarcasa", precio, cid);
  INFO_PROPERTY[cid][p_LABEL] = Create3DTextLabel(str, -1, INFO_PROPERTY[cid][p_POS_EXT][0], INFO_PROPERTY[cid][p_POS_EXT][1], INFO_PROPERTY[cid][p_POS_EXT][2], 10.0, 0, 0);
CreateDynamicMapIcon(INFO_PROPERTY[cid][p_POS_EXT][0], INFO_PROPERTY[cid][p_POS_EXT][1], INFO_PROPERTY[cid][p_POS_EXT][2], 31, -1, 0, 0);
  ActualizarCasa(cid);
  cid = MAX_PROPERTY;
}
}
regreso 1;
}
no se que hacer porfa ayuda
|
|
|
|
| Problema con sistema de casa |
|
Posted by: Nikolay_Staggs - 2024-12-28, 08:17 AM - Forum: Programación
- No Replies
|
 |
tengo un problema con mi sistema de casas por ejemplo compro la casa ID 0 y la ID 1 bueno entro a la ID 1 y cuando salGO de la ID 1 salgo en la ID 0 no se si es porque mi servidor TDM
CMD:entrar(jugador, params[])
{
para (new i = 0; i < MAX_PROPERTY; i++) //- Sistema de casas
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, INFO_PROPERTY[i][p_POS_EXT][0], INFO_PROPERTY[i][p_POS_EXT][1], INFO_PROPERTY[i][p_POS_EXT][2]))
{
  if(INFO_PROPERTY[i][p_CLOSED] == 0)
  {
¡¡¡¡si(INFO_PROPERTY[i][p_BOUGHT] == 1 && !strcmp(PlayerName(playerid), INFO_PROPERTY[i][p_OWNER]))
{
SetPlayerPosEx(playerid, INFO_PROPERTY[i][p_POS_INT][0], INFO_PROPERTY[i][p_POS_INT][1], INFO_PROPERTY[i][p_POS_INT][2], 0.0, INFO_PROPERTY[i][p_INTERIOR], i+10);
TEMPORAL_PLAYER[playerid][t_AT_HOME] = i;
  SetCameraBehindPlayer(jugador);
  TogglePlayerControlable(reproductor, falso);
GameTextForPlayer(jugador, "~g~Cargando~n~ ~w~~h~~h~Objetos", 3000, 1);
TEMPORAL_PLAYER[playerid][t_TIMER][2] = SetTimerEx("RemoverObjectos", 3000, false, "i", playerid);
regreso 1;
}
otra cosa
{
  ShowPlayerMessage(jugador, "~y~No eres el dueño de esta propiedad", 3);
}
}
otra cosa
{
  ShowPlayerMessage(jugador, "~r~Cerrado", 3);
}
regreso 1;
}
}
regreso 1;
}
CMD:salir(jugador, params[])
{
para (new i = 0; i < MAX_PROPERTY; i++) //- Sistema de casas
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, INFO_PROPERTY[i][p_POS_INT][0], INFO_PROPERTY[i][p_POS_INT][1], INFO_PROPERTY[i][p_POS_INT][2]))
{
SetPlayerPosEx(playerid, INFO_PROPERTY[i][p_POS_EXT][0], INFO_PROPERTY[i][p_POS_EXT][1], INFO_PROPERTY[i][p_POS_EXT][2], 0.0, 0, 0);
TEMPORAL_PLAYER[playerid][t_AT_HOME] = -1;
  SetCameraBehindPlayer(jugador);
  TogglePlayerControlable(reproductor, falso);
GameTextForPlayer(jugador, "~g~Cargando~n~ ~w~~h~~h~Objetos", 3000, 1);
TEMPORAL_PLAYER[playerid][t_TIMER][2] = SetTimerEx("RemoverObjectos", 3000, false, "i", playerid);
regreso 1;
}
}
regreso 1;
}
CMD:crearcasa(jugador, params[])
{
nuevo tipo, precio, str[250];
if(sscanf(params, "dd", type, price)) volver SendClientMessage(playerid, -1, "Syntax: /crearcasa [tipo de casa] [price]");
¿si (tipo < 1 || tipo > 5) devolver SendClientMessage(playerid, -1, "Las casas est?n entre 1 y 5 espacios.");
 para (nuevo cid = 0; cid < MAX_PROPERTY; cid++)
{
¡si (!INFO_PROPERTY[cid][p_TIPO])
{
  GetPlayerPos(playerid, INFO_PROPERTY[cid][p_POS_EXT][0], INFO_PROPERTY[cid][p_POS_EXT][1], INFO_PROPERTY[cid][p_POS_EXT][2])
  INFO_PROPERTY[cid][p_TYPE] = tipo;
  INFO_PROPERTY[cid][p_BOUGHT] = 0;
  INFO_PROPERTY[cid][p_CERRADO] = 0;
switch(tipo)
{
  caso 1:
  {
INFO_PROPERTY[cid][p_POS_INT][0] = 446.7660;
INFO_PROPERTY[cid][p_POS_INT][1] = 507.1065;
INFO_PROPERTY[cid][p_POS_INT][2] = 1001.4206;
INFO_PROPERTY[cid][p_PRICE] = precio;
INFO_PROPERTY[cid][p_INTERIOR] = 12;
  }
  caso 2:
  {
INFO_PROPERTY[cid][p_POS_INT][0] = 2495.9719;
INFO_PROPERTY[cid][p_POS_INT][1] = -1693.5554;
INFO_PROPERTY[cid][p_POS_INT][2] = 1014.8061;
INFO_PROPERTY[cid][p_PRICE] = precio;
INFO_PROPERTY[cid][p_INTERIOR] = 3;
  }
  caso 3:
  {
INFO_PROPERTY[cid][p_POS_INT][0] = 2455.6968;
INFO_PROPERTY[cid][p_POS_INT][1] = -1698.3298;
INFO_PROPERTY[cid][p_POS_INT][2] = 1013.5068;
INFO_PROPERTY[cid][p_PRICE] = precio;
INFO_PROPERTY[cid][p_INTERIOR] = 2;
  }
  caso 4:
  {
INFO_PROPERTY[cid][p_POS_INT][0] = 2524.9165;
INFO_PROPERTY[cid][p_POS_INT][1] = -1679.4109;
INFO_PROPERTY[cid][p_POS_INT][2] = 1015.4873;
INFO_PROPERTY[cid][p_PRICE] = precio;
INFO_PROPERTY[cid][p_INTERIOR] = 1;
  }
  caso 5:
  {
INFO_PROPERTY[cid][p_POS_INT][0] = 2807.5103;
INFO_PROPERTY[cid][p_POS_INT][1] = -1174.0422;
INFO_PROPERTY[cid][p_POS_INT][2] = 1025.5898;
INFO_PROPERTY[cid][p_PRICE] = precio;
INFO_PROPERTY[cid][p_INTERIOR] = 8;
  }
}
  formato(str,sizeof(str),"{00A8FF}EN VENTA\n {FFFFFF}Precio:{00A8FF}%d\n {FFFFFF}ID casa:{00A8FF}%d\n {FFFFFF}Usa{00A8FF}/comprarcasa", precio, cid);
  INFO_PROPERTY[cid][p_LABEL] = Create3DTextLabel(str, -1, INFO_PROPERTY[cid][p_POS_EXT][0], INFO_PROPERTY[cid][p_POS_EXT][1], INFO_PROPERTY[cid][p_POS_EXT][2], 10.0, 0, 0);
CreateDynamicMapIcon(INFO_PROPERTY[cid][p_POS_EXT][0], INFO_PROPERTY[cid][p_POS_EXT][1], INFO_PROPERTY[cid][p_POS_EXT][2], 31, -1, 0, 0);
  ActualizarCasa(cid);
  cid = MAX_PROPERTY;
}
}
regreso 1;
}
no se que hacer porfa ayuda
|
|
|
|
| pomoc |
|
Posted by: Miro_Tkalac - 2024-12-27, 01:38 PM - Forum: Ex-Yu
- No Replies
|
 |
strozdrav posto sam iz austrije nece mi ucitati server izbaci mi da poseljem zahtjev za white listu a neznam gdje to pa ako moze netko pomoci
|
|
|
|
Problema con sistema de casa |
|
Posted by: Nikolay_Staggs - 2024-12-26, 07:06 AM - Forum: Pawn Scripting
- Replies (2)
|
 |
tengo un problema con mi sistema de casas por ejemplo compro la casa ID 0 y la ID 1 bueno entro a la ID 1 y cuando sale de la ID 1 salgo en la ID 2 no se si es un servidor TDM
CMD:entrar(jugador, params[])
{
para (new i = 0; i < MAX_PROPERTY; i++) //- Sistema de casas
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, INFO_PROPERTY[i][p_POS_EXT][0], INFO_PROPERTY[i][p_POS_EXT][1], INFO_PROPERTY[i][p_POS_EXT][2]))
{
  if(INFO_PROPERTY[i][p_CLOSED] == 0)
  {
¡¡if(INFO_PROPERTY[i][p_BOUGHT] == 1 && !strcmp(PlayerName(playerid), INFO_PROPERTY[i][p_OWNER]))
{
SetPlayerPosEx(playerid, INFO_PROPERTY[i][p_POS_INT][0], INFO_PROPERTY[i][p_POS_INT][1], INFO_PROPERTY[i][p_POS_INT][2], 0.0, INFO_PROPERTY[i][p_INTERIOR], i+10);
TEMPORAL_PLAYER[playerid][t_AT_HOME] = i;
  SetCameraBehindPlayer(jugador);
  TogglePlayerControlable(reproductor, falso);
GameTextForPlayer(jugador, "~g~Cargando~n~ ~w~~h~~h~Objetos", 3000, 1);
TEMPORAL_PLAYER[playerid][t_TIMER][2] = SetTimerEx("RemoverObjectos", 3000, false, "i", playerid);
regreso 1;
}
otra cosa
{
  ShowPlayerMessage(jugador, "~y~No eres el dueño de esta propiedad", 3);
}
}
otra cosa
{
  ShowPlayerMessage(jugador, "~r~Cerrado", 3);
}
regreso 1;
}
}
regreso 1;
}
CMD:salir(jugador, params[])
{
para (new i = 0; i < MAX_PROPERTY; i++) //- Sistema de casas
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, INFO_PROPERTY[i][p_POS_INT][0], INFO_PROPERTY[i][p_POS_INT][1], INFO_PROPERTY[i][p_POS_INT][2]))
{
SetPlayerPosEx(playerid, INFO_PROPERTY[i][p_POS_EXT][0], INFO_PROPERTY[i][p_POS_EXT][1], INFO_PROPERTY[i][p_POS_EXT][2], 0.0, 0, 0);
TEMPORAL_PLAYER[playerid][t_AT_HOME] = -1;
  SetCameraBehindPlayer(jugador);
  TogglePlayerControlable(reproductor, falso);
GameTextForPlayer(jugador, "~g~Cargando~n~ ~w~~h~~h~Objetos", 3000, 1);
TEMPORAL_PLAYER[playerid][t_TIMER][2] = SetTimerEx("RemoverObjectos", 3000, false, "i", playerid);
regreso 1;
}
}
regreso 1;
}
no se que hacer
|
|
|
|
| DOF2.1 (DOF2 Updated) |
|
Posted by: Collw - 2024-12-25, 06:01 AM - Forum: Libraries
- Replies (2)
|
 |
I was looking for alternatives to DOF2 that are compatible with the latest versions of the Pawno compiler (3.10.10 and 3.10.11), but I couldn't find any viable options. Since I couldn't adapt to using y_ini or similar libraries, I decided to use the latest available version of DOF2 and update it to suit my needs. I named it DOF2.1.
https://github.com/xWendorion/DOF2.1-Include/releases
The library is fully compatible with both San Andreas Multiplayer and Open Multiplayer. Feel free to improve or adapt it to meet your specific requirements.
|
|
|
|
| Multiple trailers support |
|
Posted by: BGTrucker - 2024-12-15, 10:57 PM - Forum: Questions and Suggestions
- No Replies
|
 |
Hey all. Sorry if my suggestion sounds stupid, but since Silent Patch added the ability to attach multiple trailers and create a real roadtrain in single player for year now, I think it's time to somehow make that possible in multiplayer too, so trucking servers and their players can benefit from that and finally go to the next level of trucking. I'm not into programming but I'm sure it's possible, I've tried attaching multiple trailers in SAMP with a script before I found out about Silent Patch, and also with Silent Patch, it works but the problem is that the second trailer gets respawned after some time. Other than that everything works fine as far as I remember. I'm saying that because it was years ago when I tried it. Anyway, You know what I mean, that's it from me. Think about it, and keep up the good work.
|
|
|
|
|