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

Username
  

Password
  





Search Forums



(Advanced Search)

Forum Statistics
» Members: 7,945
» Latest member: yolvimalo
» Forum threads: 2,407
» Forum posts: 12,323

Full Statistics

Online Users
There are currently 372 online users.
» 0 Member(s) | 368 Guest(s)
Yandex, Google, Bing, Baidu

Latest Threads
GTA San Andreas - The mov...
Forum: Chat
Last Post: NoxxeR
2026-02-20, 12:14 AM
» Replies: 0
» Views: 45
Servidor RP
Forum: Portuguese/Portugu?s
Last Post: GhostSpectre
2026-02-18, 11:10 PM
» Replies: 0
» Views: 47
(PC/Mobil) PrimeTurk CnR ...
Forum: Advertisements
Last Post: Shacous
2026-02-12, 04:08 PM
» Replies: 0
» Views: 81
(PC/Mobil) PrimeTurk CnR ...
Forum: Turkish
Last Post: Shacous
2026-02-12, 04:04 PM
» Replies: 0
» Views: 68
Consulta warning mismatch...
Forum: Programaci?n
Last Post: bttwsky
2026-02-12, 03:46 PM
» Replies: 0
» Views: 77
problem dialog clan membe...
Forum: Pawn Scripting
Last Post: sanmartinjorquerapablo
2026-02-12, 02:15 AM
» Replies: 3
» Views: 233
Hobby War Server (Open to...
Forum: Advertisements
Last Post: blackwolf4278
2026-02-11, 12:22 AM
» Replies: 0
» Views: 86
PROJECT: LOS ANGELES — TH...
Forum: Advertisements
Last Post: DevonH
2026-02-08, 05:53 PM
» Replies: 12
» Views: 1,563
open.mp ready DayZ gamemo...
Forum: Gamemodes
Last Post: Bombo
2026-02-08, 07:50 AM
» Replies: 0
» Views: 194
samp-essentials
Forum: Libraries
Last Post: 1NS
2026-02-07, 12:51 PM
» Replies: 0
» Views: 183

 
  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?