Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums



(Advanced Search)

Forum Statistics
» Members: 7,844
» Latest member: rr2483533
» Forum threads: 2,377
» Forum posts: 12,276

Full Statistics

Online Users
There are currently 233 online users.
» 0 Member(s) | 230 Guest(s)
Bing, Google, DuckDuckGo

Latest Threads
The size of the output am...
Forum: Questions and Suggestions
Last Post: wartacho
11 hours ago
» Replies: 1
» Views: 210
Why your server's economy...
Forum: General Discussions
Last Post: wartacho
11 hours ago
» Replies: 0
» Views: 31
Battlezone 2050 - Circa 2...
Forum: Gamemodes
Last Post: SwisherSweet
Today, 03:43 AM
» Replies: 1
» Views: 41
World War 3 - TDM - Circa...
Forum: Gamemodes
Last Post: SwisherSweet
Today, 03:24 AM
» Replies: 0
» Views: 28
Vortex Gaming server
Forum: Ex-Yu
Last Post: pmemorex2016
Yesterday, 02:32 PM
» Replies: 0
» Views: 27
ZombieX Survival 0.3.7
Forum: Advertisements
Last Post: fazpharma148
Yesterday, 11:47 AM
» Replies: 0
» Views: 27
The status of the INPC SD...
Forum: Support
Last Post: DLCode
2026-01-07, 07:33 AM
» Replies: 0
» Views: 61
SAMP server trailer
Forum: Videos and Screenshots
Last Post: pmemorex2016
2026-01-06, 02:34 PM
» Replies: 0
» Views: 59
PROJECT: LOS ANGELES — TH...
Forum: Advertisements
Last Post: DevonH
2026-01-03, 04:04 AM
» Replies: 9
» Views: 1,058
I recommend Xiaomi Rednot...
Forum: Tech
Last Post: NoxxeR
2026-01-03, 01:31 AM
» Replies: 0
» Views: 96

 
  HELP! How to Get Status If The Vehicle go Flipped while destroyed?
Posted by: PutuSuhartawan - 2021-07-08, 11:03 AM - Forum: Pawn Scripting - Replies (4)

I saw a gamemode that supports anti-vehicle explode during a flip which is usually a scene of gasoline spilling and a fire burning. But here the purpose that will be discussed is the opposite. How can the vehicle flip itself back to its normal condition if the vehicle has really flipped and is about to explode?


  How to call a function an address?
Posted by: oukibt - 2021-07-06, 09:36 PM - Forum: Programming - Replies (1)

Hi I am trying to call a function at an address from a plugin but I am getting a crash.

Code:
PLUGIN_EXPORT int PLUGIN_CALL AmxLoad(AMX* amx)
{
? ? VirtualUnlock((LPVOID)0x48B5B0, 0x20);

? ? ((int(__fastcall*)(char*))0x48B5B0)("query");
? ? return 1;
}

https://cdn.discordapp.com/attachments/5...nknown.png

I think, this is GetConsoleVariableInt function


  Need help
Posted by: misteryatt - 2021-07-06, 06:41 PM - Forum: Pawn Scripting - No Replies

Hello guys, i need PPC Housing filterscript. Did anyone here have it? I already googled and search on samp forums archive theres no working download link. thanks.



Ps: Idk which section to post this. Sorry if i post it in the wrong section.


  Help with command
Posted by: Pedxz - 2021-07-05, 05:31 PM - Forum: Pawn Scripting - Replies (1)

Welll, I update my command's permission to !IsPlayerAdmin, but now it doesn't want to work correctly, when i run the command it doesn't do anything.

***I changed the permission because the other one was having problems

Could you help me solve this??


Command:

Code:
CMD:setar(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_ERRO, "[ x ] Voc? n?o tem permiss?o!");

new id, sSetar[15];

if(sscanf(params, "ds[15]", id, sSetar)) return SendClientMessage(playerid, COLOR_ERRO, "[ x ] Uso correto: /Setar [ ID ] [ Administrador / Moderador / Ajudante ]");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_ERRO, "[ x ] Ningu?m online com esse ID!");

if(!strcmp(sSetar, "administrador", true))
{
if(GetPlayerCargo(id) != C_ADMIN)
{
format(gStr, sizeof(gStr), "[BPL Staff] Voc? tornou o(a) jogador(a) %s um(a) administrador(a).", pNome(id));
SendClientMessage(playerid, COLOR_VERDECMD, gStr);

format(gStr, sizeof(gStr), "[BPL Staff] %s tornou voc? um(a) administrador(a).", GetCargoMsg(playerid));
SendClientMessage(id, COLOR_VERDECMD, gStr);

SetPVarInt(id, "pCargo", C_ADMIN), aInfo[id][Cargo] = C_ADMIN;
}
else
{
format(gStr, sizeof(gStr), "[BPL Staff] Voc? removeu os privil?gios de administrador(a) do(a) jogador(a) %s", pNome(id));
SendClientMessage(playerid, COLOR_VERDECMD, gStr);

format(gStr, sizeof(gStr), "[BPL Staff] %s removeu seus privil?gios de administrador(a).", GetCargoMsg(playerid));
SendClientMessage(id, COLOR_VERDECMD, gStr);

SetPVarInt(id, "pCargo", C_JOGADOR), aInfo[id][Cargo] = C_JOGADOR;
}
}
else if(!strcmp(sSetar, "moderador", true))
{
if(GetPlayerCargo(playerid) != C_MODERADOR)
{
format(gStr, sizeof(gStr), "[BPL Staff] Voc? tornou o(a) jogador(a) %s um(a) moderador(a).", pNome(id));
SendClientMessage(playerid, COLOR_VERDECMD, gStr);

format(gStr, sizeof(gStr), "[BPL Staff] %s tornou voc? um(a) moderador(a).", GetCargoMsg(playerid));
SendClientMessage(id, COLOR_VERDECMD, gStr);

SetPVarInt(id, "pCargo", C_MODERADOR), aInfo[id][Cargo] = C_MODERADOR;
}
else
{
format(gStr, sizeof(gStr), "[BPL Staff] Voc? removeu os privil?gios de moderador(a) do(a) jogador(a) %s", pNome(id));
SendClientMessage(playerid, COLOR_VERDECMD, gStr);

format(gStr, sizeof(gStr), "[BPL Staff] %s removeu seus privil?gios de moderador(a).", GetCargoMsg(playerid));
SendClientMessage(id, COLOR_VERDECMD, gStr);

SetPVarInt(id, "pCargo", C_JOGADOR), aInfo[id][Cargo] = C_JOGADOR;
}
}
else if(!strcmp(sSetar, "ajudante", true))
{
if(GetPlayerCargo(playerid) != C_AJUDANTE)
{
format(gStr, sizeof(gStr), "[BPL Staff] Voc? tornou o(a) jogador(a) %s um(a) ajudante.", pNome(id));
SendClientMessage(playerid, COLOR_VERDECMD, gStr);

format(gStr, sizeof(gStr), "[BPL Staff] %s tornou voc? um(a) ajudante.", GetCargoMsg(playerid));
SendClientMessage(id, COLOR_VERDECMD, gStr);

SetPVarInt(id, "pCargo", C_AJUDANTE), aInfo[id][Cargo] = C_AJUDANTE;
}
else
{
format(gStr, sizeof(gStr), "[BPL Staff] Voc? removeu os privil?gios de ajudante do(a) jogador(a) %s", pNome(id));
SendClientMessage(playerid, COLOR_VERDECMD, gStr);

format(gStr, sizeof(gStr), "[BPL Staff] %s removeu seus privil?gios de ajudante.", GetCargoMsg(playerid));
SendClientMessage(id, COLOR_VERDECMD, gStr);

SetPVarInt(id, "pCargo", C_JOGADOR), aInfo[id][Cargo] = C_JOGADOR;
}
}
return 1;
}


  looking for free dev
Posted by: gerald - 2021-07-05, 02:11 PM - Forum: Support - No Replies

i have CCRP v3.2 script i need a dev to remove the tutorial.

my discord is realpimp#4630


  Pathfinder With CA
Posted by: Axivv - 2021-07-05, 06:47 AM - Forum: Pawn Scripting - Replies (2)

I found a include (https://raw.githubusercontent.com/dimmyi...finder.inc) but there is a warning: "This is an experimental pathfinder made for SA-MP totally in pawn, the same is still not recommended for use." How can I more optimize it?


  How to decrease SetPlayerWantedLevel every 5 seconds?
Posted by: XDK6 - 2021-07-04, 07:13 AM - Forum: Pawn Scripting - Replies (6)

Hi guys I need help how to decrease setplayerwanted levels for every 5 second


Question How to convert string to int?
Posted by: ViktorNas - 2021-07-04, 02:10 AM - Forum: Pawn Scripting - Replies (4)

Please tell me if there is any function that does this or how I could make a function that does this.


  How can I do an ini save for this tuning system using AttachObjectToVehicle?
Posted by: Paco_Martez - 2021-07-01, 08:25 PM - Forum: Pawn Scripting - No Replies

Hi, I don't know how to speak English very well, I'm from Argentina but ..., How can I save an .ini for this tuning system using AttachObjectToVehicle?







#include <a_samp>



#include <zcmd>



#include <sscanf2>



#include <streamer>



#include <mSelection>



#include <YSI\y_ini>











#define DRAWDISTANCE_DEFAULT 80



#define SPEEDMULTIPLIER_HIGH? ? ? ? 0.20



#define SPEEDMULTIPLIER_LOW? ? ? ? 0.01











#define MODE_NONE? ? ? ? ? 0



#define MODE_PX 1



#define MODE_PY? ? 2



#define MODE_PZ? ? ? ? ? ? 3



#define MODE_RX? ? ? ? ? ? 4



#define MODE_RY? ? ? ? ? ? 5



#define MODE_RZ? ? ? ? ? ? 6



#define MAX_OBJVEH? ? ? ? ? 7







//Defines



#define PlayerToPoint(%1,%2,%3,%4,%5)? IsPlayerInRangeOfPoint(%2,%1,%3,%4,%5)



#define? ? ? ? ? ? Message ? ? ? ? ? ? ? ? ? ? ? ? ? ? SendClientMessage



#define SendFormattedMessage(%0,%1,%2) do{new _str[128]; format(_str,128,%2); SendClientMessageEx(%0,%1,_str);}while(FALSE)



#define GivePlayerCash GivePlayerMoney



//Colores



#define Blanco 5883



#define iCOL_RED? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0xFF0000FF



//Dialogo



//Textdraws







// News



//Catalogo



new objetostu = mS_INVALID_LISTID;



//Taller



#define TG_FILE "Talleres/%d.ini"



#define TG_OBJ? ? ? ? "Objetos/%d.ini"







#define MAX_TUNE? ? ? 5000



#define MAX_GARAGES? 5000







//Dialogos



#define DIALOG_TUNING_TALLER 8431 //Ids para evitar bugs :s



//Enums











enum Attaching



{



Temp,



bool:Saved,



Timer,



bool:Enabled,



Mode,



ModelID,



ObjectID,



VehicleID,



Float:P[3],



Float:R[3],



d_ObjIdInput



};



new Attach[MAX_PLAYERS][Attaching];







enum aaa {



Float:Position[ 3 ],



? ? Text3D:tg3D,



? ? tgPickup,



}















new Talleres[ MAX_GARAGES ][ aaa ];







//Stocks







public OnFilterScriptInit()



{







objetostu = LoadModelSelectionMenu("objetostu.txt");







? for(new i = 1; i < MAX_GARAGES; i) {



? ? new file[ 50 ];



? ? format( file, sizeof( file ), TG_FILE, i );



? ? if( fexist( file ) ) {



? ? INI_ParseFile( file, "LoadTalleres", .bExtra = true, .extra = i );



? ? ? ? Talleres[ i ][ tg3D ] = Create3DTextLabel( "Usa {b9f442}/tuning {FFFFFF}para tunear tu veh?culo", -1, Talleres[ i ][ Position ][ 0 ], Talleres[ i ][ Position ][ 1 ], Talleres[ i ][ Position ][ 2 ], 15.0, 0, 1 );



Talleres[ i ][ tgPickup ] = CreatePickup( 1239, 1, Talleres[ i ][ Position ][ 0 ], Talleres[ i ][ Position ][ 1 ], Talleres[ i ][ Position ][ 2 ], -1 );



}



}



return 1; //se retorna a 1.



}











public OnFilterScriptExit()



{



for(new i=0; i<MAX_PLAYERS; i) { KillTimer(Attach[i][Timer]); }



print("\n? :C\n");







return 1;



}











public OnPlayerSpawn(playerid)



{











return 1;



}















public OnPlayerConnect(playerid)



{







? ? Attach[playerid][Saved] = true;



return true;







}







public OnPlayerModelSelection(playerid, response, listid, modelid)



{



if(listid == objetostu)



{



if(response)



{



? ? ? ? ? Atta(playerid, modelid);



GivePlayerMoney(playerid, -5000); //dinero



SendClientMessage(playerid, 0xFFFFFFFF, "Compraste un objeto para tu veh?culo.");



}



else SendClientMessage(playerid, 0xFFFFFFFF, "Has salido del catalogo de objetos.");



}



return 1;



}















public OnPlayerDisconnect(playerid, reason)



{



KillTimer(Attach[playerid][Timer]);



Attach[playerid][Mode] = MODE_NONE;



? ? Attach[playerid][Temp] = 0;



? ? Attach[playerid][ModelID] = 0;



? ? Attach[playerid][ObjectID] = 0;



? ? Attach[playerid][VehicleID] = 0;



? ? Attach[playerid][Enabled] = false;



? ? for(new i=0; i<3; i) { Attach[playerid][P][i] = 0.0; Attach[playerid][R][i] = 0.0;}



return true;



}







CMD:creditostuning(playerid, params[])



{



SendClientMessage(playerid, -1, "Sistema Creador Por Franco Londes, Franco12 en pawnscript.");



return 1;



}







CMD:creartaller( playerid, params[] ) {



? ? if( !IsPlayerAdmin( playerid ) ) return SendClientMessage( playerid,-1,? "Debes estar logeado con rcon." );



? ? new i = NextIDGarage( MAX_GARAGES ), Float:Pos[ 3 ], file[ 40 ];



GetPlayerPos( playerid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ] );



format( file, sizeof( file ), TG_FILE, i );



if( fexist( file ) ) return SendClientMessage( playerid,-1, "Esta ID ya existe." );



Talleres[ i ][ Position ][ 0 ] = Pos[ 0 ];



Talleres[ i ][ Position ][ 1 ] = Pos[ 1 ];



Talleres[ i ][ Position ][ 2 ] = Pos[ 2 ];



Talleres[ i ][ tg3D ] = Create3DTextLabel( "Usa {b9f442}/tuning {FFFFFF}para tunear tu veh?culo", -1, Talleres[ i ][ Position ][ 0 ], Talleres[ i ][ Position ][ 1 ], Talleres[ i ][ Position ][ 2 ], 15.0, 0, 1 );



Talleres[ i ][ tgPickup ] = CreatePickup( 1239, 1, Talleres[ i ][ Position ][ 0 ], Talleres[ i ][ Position ][ 1 ], Talleres[ i ][ Position ][ 2 ], -1 );



SaveTalleres( i );



return true;



}



//==============================================================================



CMD:eliminartaller( playerid, params[] ) {



? ? if( !IsPlayerAdmin( playerid ) ) return SendClientMessage( playerid, -1, "Debes estar logeado con rcon." );



new i = GetNearestTalleres( playerid );



if( i == -1 ) return SendClientMessage( playerid, -1,? "No est?s en el taller (pickup)." );







Talleres[ i ][ Position ][ 0 ] = 0.0;



Talleres[ i ][ Position ][ 1 ] = 0.0;



Talleres[ i ][ Position ][ 2 ] = 0.0;







DestroyPickup( Talleres[ i ][ tgPickup ] );



Delete3DTextLabel( Talleres[ i ][ tg3D ] );







? ? new file[ 50 ];



format( file, sizeof( file ), TG_FILE, i );



if( fexist( file ) ) { fremove( file ); }







SendClientMessage( playerid, -1, "Taller eliminado." );



return true;



}











CMD:tuning(playerid, params[])



{



if( GetNearestTalleres( playerid ) == -1 ) return SendClientMessage( playerid, -1, "No est?s en el taller de tuning." );



if( !IsPlayerInAnyVehicle(playerid) ) return SendClientMessage(playerid, 0xFF0000FF, "No est?s en un veh?culo.");



ShowPlayerDialog(playerid, DIALOG_TUNING_TALLER, DIALOG_STYLE_LIST, "Menu Tuning", "Comprar Objeto\nEditar Posici?n de Objeto\nRemover Objeto", "Seleccionar", "Cancelar");



return 1;



}







CMD:4532434343(playerid, params[])



{



? ? if( !Attach[playerid][Saved] ) {



? ? ShowModelSelectionMenu(playerid, objetostu, "Venta de Objetos");



return true;



}



new modelid;



Atta(playerid, modelid);



return true;



}



?



public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])



{



if(response)// Si se pulsa el primer bot?n.



{



switch(dialogid)// Si s?lo tiene un cuadro de di?logo, entonces esto no es necesario, pero es m?s Organizado para cuando se implementan m?s cuadros de di?logo.



{



case DIALOG_TUNING_TALLER:// Nuestro dialogo



? ? ? ? {



? ? ? ? ? switch(listitem)// Comprueba Si a Sido Seleccionado



? ? ? ? {



? ? ? ? ? ? case 0:// El Primer Boton Incluido



? ? ? ? ? ? {



? ? ? ? ? ? ? ? ? ? ShowModelSelectionMenu(playerid, objetostu, "Venta de Objetos");



? ? ? ? ? ? }



? ? ? ? ? ? case 1: // Esto es el segundo boton



? ? ? ? ? ? {



SendClientMessage(playerid, -1, "Usa /ayudatuning para editar la posici?n del objeto, /terminartuning para acabar");



? ? ? ? ? ? }



? ? ? ? ? ? case 2: // El Tercer boton



? ? ? ? ? ? {



SendClientMessage(playerid, -1, "Has eliminado el objeto");



DestroyObject(Attach[playerid][ObjectID]);



? ? ? ? ? ? }



? ? ? ? }



? ? ? ? }



}



? ? }



return 1;



}



//=========================================================================================================================================================







//=====================================================================================================================================================



GetNearestTalleres( playerid ) {



? ? for(new i = 1; i < MAX_GARAGES; i) {



? ? ? ? if( IsPlayerInRangeOfPoint( playerid, 10.0, Talleres[ i ][ Position ][ 0 ], Talleres[ i ][? Position ][ 1 ], Talleres[ i ][ Position ][ 2 ] ) ) { return i; }



}



return -1;



}



//========================================================================================================================================================



stock NextIDGarage(const len) {



? ? new id = (-1);



? ? for( new loop = ( 0 ), provjera = ( -1 ), Data_[ 64 ] = "\0"; loop != len; loop ) {



? ? ? provjera = ( loop );



? ? ? format( Data_, ( sizeof Data_ ), TG_FILE, provjera );



? ? ? if(!fexist(Data_)) {



? ? ? ? ? id = ( provjera );



? ? ? ? ? break; } }



? return ( id );



}



//==============================================================================



forward SaveTalleres( id );



public SaveTalleres( id ) {



new iFile[ 40 ];



? ? format( iFile, sizeof( iFile ), TG_FILE, id );



new INI:File = INI_Open( iFile );



INI_WriteFloat( File, "Position1", Talleres[ id ][ Position ][ 0 ] );



INI_WriteFloat( File, "Position2", Talleres[ id ][ Position ][ 1 ] );



INI_WriteFloat( File, "Position3", Talleres[ id ][ Position ][ 2 ] );



INI_Close( File );



return 1;



}



//==============================================================================



forward LoadTalleres( id, name[], value[] );



public LoadTalleres( id, name[], value[] ) {



INI_Float( "Position1", Talleres[ id ][ Position ][ 0 ] );



INI_Float( "Position2", Talleres[ id ][ Position ][ 1 ] );



INI_Float( "Position3", Talleres[ id ][ Position ][ 2 ] );



? ? return true;



}



//==============================================================================



forward Atta(playerid, modelid);



//==============================================================







public Atta(playerid, modelid)



{



? ? Attach[playerid][Timer] = SetTimerEx("OnPlayerUpdateEx", 50, true, "d", playerid);



? ?



? ? //==================================================================================







? ? Attach[playerid][Mode] = MODE_NONE;



? ? Attach[playerid][Temp] = 0;



? ? Attach[playerid][VehicleID] = 0;



? ? for(new i=0; i<3; i) { Attach[playerid][P][i] = 0.0; Attach[playerid][R][i] = 0.0;}



? ?



? ? //======================================================================================







? ? Attach[playerid][Enabled] = true;



Attach[playerid][ModelID] = modelid;



Attach[playerid][ObjectID] = CreateObject(Attach[playerid][ModelID], 0, 0, -1000, 0, 0, 0, DRAWDISTANCE_DEFAULT);



Attach[playerid][VehicleID] = GetPlayerVehicleID(playerid);



AttachObjectToVehicle(Attach[playerid][ObjectID], Attach[playerid][VehicleID], 0, 0, 0, 0, 0, 0);



? ? EditDynamicObject(playerid, ObjectID);



Attach[playerid][Saved] = false;



return true;



}







CMD:ayudatuning(playerid, params[])



{



SendClientMessage(playerid, -1, "Usa /posx, /posy, /posz, para cambiar la posici?n del objeto.");



SendClientMessage(playerid, -1, "Usa /rotx, /roty, /rotz, para cambiar la rotaci?n del objeto. /terminartuning para terminar.");



return 1;



}







CMD:posx(playerid, params[])



{



? ? if(!Attach[playerid][Enabled]) { SendClientMessage(playerid, 0xFF0000FF, "?No est?s en el taller de tuning!."); }



? ? else { Attach[playerid][Mode] = MODE_PX; SendClientMessage(playerid, -1, "[X]Bien, usa las teclas Izquierda/Derecha para editar, /terminartuning para acabar."); }



return true;



}



CMD:posy(playerid, params[])



{



? ? if(!Attach[playerid][Enabled]) { SendClientMessage(playerid, 0xFF0000FF, "?No est?s en el taller de tuning!."); }



? ? else { Attach[playerid][Mode] = MODE_PY; SendClientMessage(playerid, -1, "[Y]Bien, usa las teclas Izquierda/Derecha para editar, /terminartuning para acabar."); }



return true;



}



CMD:posz(playerid, params[])



{



? ? if(!Attach[playerid][Enabled]) { SendClientMessage(playerid, 0xFF0000FF, "?No est?s en el taller de tuning!."); }



? ? else { Attach[playerid][Mode] = MODE_PZ; SendClientMessage(playerid, -1, "[Z]Bien, usa las teclas Izquierda/Derecha para editar, /terminartuning para acabar."); }



return true;



}



CMD:rotx(playerid, params[])



{



? ? if(!Attach[playerid][Enabled]) { SendClientMessage(playerid, 0xFF0000FF, "?No est?s en el taller de tuning!."); }



? ? else { Attach[playerid][Mode] = MODE_RX; SendClientMessage(playerid, -1, "[RX]Bien, usa las teclas Izquierda/Derecha para editar, /terminartuning para acabar."); }



return true;



}



CMD:roty(playerid, params[])



{



? ? if(!Attach[playerid][Enabled]) { SendClientMessage(playerid, 0xFF0000FF, "?No est?s en el taller de tuning!."); }



? ? else { Attach[playerid][Mode] = MODE_RY; SendClientMessage(playerid, -1, "[RY]Bien, usa las teclas Izquierda/Derecha para editar, /terminartuning para acabar."); }



return true;



}



CMD:rotz(playerid, params[])



{



? ? if(!Attach[playerid][Enabled]) { SendClientMessage(playerid, 0xFF0000FF, "?No est?s en el taller de tuning!."); }



? ? else { Attach[playerid][Mode] = MODE_RZ; SendClientMessage(playerid, -1, "[RZ]Bien, usa las teclas Izquierda/Derecha para editar, /terminartuning para acabar."); }



return true;



}



CMD:terminartuning(playerid, params[])



{



? ? if(!Attach[playerid][Enabled]) { SendClientMessage(playerid, 0xFF0000FF, "?No est?s en el taller de tuning!."); }



? ? else { Attach[playerid][Mode] = MODE_NONE; SendClientMessage(playerid, 0xFF00FFFF, "Tuning Finalizado."); KillTimer(Attach[playerid][Timer]); }



? ? return true;



}















forward OnPlayerUpdateEx(playerid);



public OnPlayerUpdateEx(playerid)



{



if(Attach[playerid][Mode] == MODE_NONE) return true;







? ? new KEYS, UD, LR; GetPlayerKeys( playerid, KEYS, UD, LR );







new Float:SPDM = 0.1;







if(KEYS == 128) { SPDM = SPEEDMULTIPLIER_HIGH; }



else if (KEYS == 4) { SPDM = SPEEDMULTIPLIER_LOW; }







? ? if(LR > 0) { UpdateVObject(playerid, SPDM); }



else if(LR < 0) { UpdateVObject(playerid, -SPDM); }



? ? return 1;



}











forward UpdateVObject(playerid, Float:value);



public UpdateVObject(playerid, Float:value)



{



DestroyObject(Attach[playerid][ObjectID]);



Attach[playerid][ObjectID] = CreateObject(Attach[playerid][ModelID], 0, 0, 6, 0, 0, 0, DRAWDISTANCE_DEFAULT);







switch(Attach[playerid][Mode])



{



? ? case MODE_PX: {



? ? ? ? Attach[playerid][P][0] = value;



? ? ? ? new string[64];



? ? ? ? format(string, sizeof(string), "Editando Posicion [X]",Attach[playerid][P][0]);



? ? ? ? GameTextForPlayer(playerid, string, 10000, 3);



}



case MODE_PY: {



? ? Attach[playerid][P][1] = value;



? ? ? ? new string[64];



? ? ? ? format(string, sizeof(string), "Editando Posicion [Y]",Attach[playerid][P][1]);



? ? ? ? GameTextForPlayer(playerid, string, 10000, 3);



}



case MODE_PZ: {



? ? Attach[playerid][P][2] = value;



? ? ? ? new string[64];



? ? ? ? format(string, sizeof(string), "Editando Posicion [Z]",Attach[playerid][P][1]);



? ? ? ? GameTextForPlayer(playerid, string, 10000, 3);



}



case MODE_RX: {



? ? ? ? if(Attach[playerid][R][0] value*10 <= 360.0 && Attach[playerid][R][0] value*10 >= 0.0) { Attach[playerid][R][0] = value*10; }



? ? ? ? new string[64];



? ? ? ? format(string, sizeof(string), "Editando Rotacion [X]",Attach[playerid][P][0]);



? ? ? ? GameTextForPlayer(playerid, string, 10000, 3);



}



case MODE_RY: {



? ? if(Attach[playerid][R][1] value*10 <= 360.0 && Attach[playerid][R][1] value*10 >= 0.0) { Attach[playerid][R][1] = value*10; }



? ? ? ? new string[64];



? ? ? ? format(string, sizeof(string), "Editando Rotacion [Y]",Attach[playerid][R][1]);



? ? ? ? GameTextForPlayer(playerid, string, 10000, 3);



}



case MODE_RZ: {



? ? if(Attach[playerid][R][2] value*10 <= 360.0 && Attach[playerid][R][2] value*10 >= 0.0) { Attach[playerid][R][2] = value*10; }



? ? ? ? new string[64];



? ? ? ? format(string, sizeof(string), "Editando Rotacion [Z]",Attach[playerid][R][2]);



? ? ? ? GameTextForPlayer(playerid, string, 10000, 3);



}



}



AttachObjectToVehicle(Attach[playerid][ObjectID], Attach[playerid][VehicleID], Attach[playerid][P][0], Attach[playerid][P][1], Attach[playerid][P][2], Attach[playerid][R][0], Attach[playerid][R][1], Attach[playerid][R][2]);



return true;



}


  help with mysql plugin error
Posted by: Lyonkrs - 2021-07-01, 08:45 AM - Forum: Pawn Scripting - Replies (2)

The error log

Code:
cache_delete:?invalid?cache?id?'0'




This is my Pawn Code:

Code:
CMD:actorlist(playerid, params[])

{

new list[1024], skin, Float:AcX, Float:AcY, Float:AcZ, id, Descriptions[48];

new query[1024];

new Cache: actorlist;

mysql_format(SQLHandle, query, sizeof(query), "SELECT * FROM `actor`");

mysql_query(SQLHandle, query);

new rows = cache_num_rows();

if(rows)

{

format(list, sizeof(list), "ID\tSkin\tDescriptions\tDistance\n");

for(new i; i < rows; )

{

cache_get_value_name_int(i, "ID", id);

cache_get_value_name_int(i, "SkinID", skin);

cache_get_value_name_float(i,"X", AcX);

cache_get_value_name_float(i,"Y", AcY);

cache_get_value_name_float(i,"Z", AcZ);

cache_get_value_name(i,"Descriptions", Descriptions);

new Float: distance = GetPlayerDistanceFromPoint(playerid, AcX, AcY, AcZ);

format(list, sizeof(list), "%s%d\t%d\t%s\t%.2f\n", list, id, skin, Descriptions, distance);

}

ShowPlayerDialog(playerid, DIALOG_ACTOR_LIST, DIALOG_STYLE_TABLIST_HEADERS, "Actor List Manager", list, "Manage", "Close");

}

else

{

SendClientMessage(playerid, COLOR_GREY, "ERROR: There's no Actor list on server");

return 1;

}

cache_delete(actorlist);

return 1;

}





The system is works perfectly but why it's giving error?