| Welcome, Guest |
You have to register before you can post on our site.
|
| Online Users |
There are currently 397 online users. » 0 Member(s) | 393 Guest(s) Google, Bing, Yandex, Applebot
|
|
|
| Toggleable HUD / Underground MP changes |
|
Posted by: Corne - 2025-01-01, 09:52 PM - Forum: Questions and Suggestions
- Replies (1)
|
 |
So, my main suggestion was that it would be very nice to be able to toggle the HUD (cash, health, weapon, minimap, etc). Underground Multiplayer has done this in the past as an extension to SA-MP as well.
But then I was thinking, while we're at it, why not look into all the changes that Underground MP did? Other changes like being able to give cars any color you want are pretty amazing too. Has there ever been any communication from the Open MP team with the former Underground MP dev team about this?
It would/could break compatibility with SA-MP clients, but this could be a config setting like 0.3.7 compatibility, right?
|
|
|
|
| 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.
|
|
|
|
|