Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * ## LEASE ATENTAMENTE PARA NO CONVERTIRSE EN LAMMER!!.: :D ##
- *
- * Estè Simple FILTERSCRIPT esta hecho especialmente para www.forum.sa-mp.com
- * NO Publicar estè FILTERSCRIPT en Otros foros de SA-MP y hacerse pasar por el creador del CODE.
- *
- * Codigo Creado Por OTACON
- *
- * CREDITOS:
- * OTACON: Realizacion y Idea de creacion del code.
- * TÙ: Modificacion libremente respetando lo mencionado ;).
- *
- * NOTA: Menos Creditos para los que me los critican.. JO'PUTAS! :D xD ;)
- *
- * Prohibido TOTALMENTE el Robo de Créditos o la
- * Publicación de este FILTERSCRIPT sin Mi Permiso.
- */
- /*
- * ## READ CAREFULLY TO AVOID BECOMING LAMMER!.: :D ##
- *
- * This simple FILTERSCRIPT is made especially for www.forum.sa-mp.com
- * DO NOT Post the FILTERSCRIPT in Other SAMP forums and impersonating the creator of the CODE.
- *
- * Code Created By OTACON
- *
- * CREDITS:
- * OTACON: Idea Making and code creation.
- * YOUR: Modification freely respecting the above ;).
- *
- * NOTE: Less Credits for those who criticize me.. JO'PUTAS! :D xD ;)
- *
- * FULLY spaces Theft Credit or
- * Publication of this FILTERSCRIPT without my permission.
- */
- #include <a_samp>
- #include <zcmd>
- #include <sscanf2>
- #define MAX_NPC (1000)
- #define DIALOG_NPC (10)
- enum B_bots{
- b_name[24],
- b_mode,
- b_vehicle,
- b_seat,
- b_skin,
- b_weapons,
- Float:nPos[4],
- b_actors,
- id_actors,
- b_descripction[24],
- Text3D:bText,
- Float:b_armour,
- };
- new bDataBots[MAX_NPC][B_bots];
- enum A_bots{
- bool:EditorNPC,
- bool:RecNPC,
- bool:SaveNPC,
- bool:SelectNPC,
- };
- new InfoDataBots[MAX_PLAYERS][A_bots],
- more_bots, select_bots;
- COMMAND:npc(playerid, params[]){
- new bData[1024];
- strcat(bData,"{CB0000}INSTRUCCIONES DE USO:\n");
- strcat(bData,"{FFE300}encendido del editor:\n {FFFFFF}presiona la tecla 'Y' para configurar los datos del npc y encender el editor.\n");
- strcat(bData,"{FFE300}grabacion del npc:\n {FFFFFF}una vez encendido el editor vuelve a presionar la tecla 'Y' para grabar al npc. \n");
- strcat(bData,"{FFE300}finalizar la grabacion:\n {FFFFFF}para finalizar la grabacion activa presiona la tecla 'N' para finalizarla. \n");
- strcat(bData,"{FFE300}apagado del editor:\n {FFFFFF}parta apagar el editor presiona la tecla 'C' para apagarlo, haciendo esta \n");
- strcat(bData,"{FFFFFF}accion reiniciaras el editor y crearas un archivo 'filterscript' \n");
- strcat(bData,"{FFFFFF}con los datos necesarios para conectar los npc's creados. \n");
- ShowPlayerDialog(playerid, DIALOG_NPC+2, DIALOG_STYLE_MSGBOX,\
- "{FFE300}Sistema de grabacion de npc:", bData, "cerrar", "mas...");
- return true;
- }
- COMMAND:npcedit(playerid, params[]){
- if(IsPlayerInAnyVehicle(playerid)){CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");\
- return SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}Usted se encuentra ne un vehiculo, {FFE300}baje del vehiculo para editarlo{FFFFFF}!.");}
- if(InfoDataBots[playerid][RecNPC]){CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");\
- return SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}Usted se encuentra grabando un npc, {FFFFFF}termina la grabacion para editarlo{FFFFFF}!.");}
- new bData[1024];
- strcat(bData,"{FFE300}editar: {FFFFFF}texto \n");
- strcat(bData,"{FFE300}editar: {FFFFFF}armour \n");
- strcat(bData,"{FFE300}editar: {FFFFFF}weapon \n");
- strcat(bData,"{FFE300}editar: {FFFFFF}skin \n");
- strcat(bData,"{FFE300}editar: {FFFFFF}coche \n");
- strcat(bData,"{FFE300}seleccionar npc \n");
- strcat(bData,"{FFFFFF}**coming soon* {FFDC00}reproducir \n");
- ShowPlayerDialog(playerid, DIALOG_NPC+3, DIALOG_STYLE_TABLIST,\
- "{FFE300}Sistema de grabacion de npc:", bData, "seleccionar", "cancelar");
- return true;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys){
- new bData[1024],
- bSeat,
- bModel,
- bVehicle,
- bSkin,
- bWeapons,
- Float:bPos[4],
- Float:p_armour,
- File:bDatas;
- bSeat = GetPlayerVehicleSeat(playerid);
- bVehicle = GetPlayerVehicleID(playerid);
- bModel = GetVehicleModel(bVehicle);
- bSkin = GetPlayerSkin(playerid);
- bWeapons = GetPlayerWeapon(playerid);
- GetPlayerArmour(playerid, p_armour);
- if(newkeys & KEY_YES){
- if(!InfoDataBots[playerid][EditorNPC]){
- if(more_bots>=MAX_NPC-GetPlayerPoolSize())
- return SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}Usted ya ha creado demasiados npc, o hay bastantes usuarios{FFFFFF}!.");
- ShowPlayerDialog(playerid,DIALOG_NPC+0, DIALOG_STYLE_INPUT, "{FFE300}Sistema de grabacion de npc:", "\
- {FFFFFF}INFO: Escribe un nombre para el npc que vas a crear a continuacion: \n\
- {CB0000}NOTA: no ir por debajo de 4, ni ir por arriba de 24, caracteres,", "aceptar", "cancelar");
- }else{
- if(bDataBots[more_bots][b_mode]==PLAYER_RECORDING_TYPE_ONFOOT){
- if(IsPlayerInAnyVehicle(playerid))
- return SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}Usted ha elegido el mode de grabacion {FFFFFF}a pie, {FFE300}baje del vehiculo{FFFFFF}!.");
- if(InfoDataBots[playerid][RecNPC])
- return SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}Usted ya se encuentra grabando un npc{FFFFFF}!.");
- InfoDataBots[playerid][RecNPC] = true;
- InfoDataBots[playerid][SaveNPC] = false;
- InfoDataBots[playerid][SelectNPC] = false;
- GetPlayerPos(playerid, bPos[0],bPos[1],bPos[2]);
- GetPlayerFacingAngle(playerid, bPos[3]);
- bDataBots[more_bots][nPos][0] = bPos[0];
- bDataBots[more_bots][nPos][1] = bPos[1];
- bDataBots[more_bots][nPos][2] = bPos[2];
- bDataBots[more_bots][nPos][3] = bPos[3];
- bDataBots[more_bots][b_skin] = bSkin;
- bDataBots[more_bots][b_weapons] = bWeapons;
- bDataBots[more_bots][b_armour] = p_armour;
- bDataBots[more_bots][b_descripction][0] ='\0';
- select_bots = 0;
- StartRecordingPlayerData(playerid,bDataBots[more_bots][b_mode],bDataBots[more_bots][b_name]);
- format(bData,sizeof(bData),"{FFFFFF}INFO: {FFE300}grabacion del npc: {FFFFFF}%s [%d/%d], {00A700}conmenzada.", bDataBots[more_bots][b_name], more_bots, MAX_NPC-GetPlayerPoolSize()-GetPlayerPoolSize());
- SendClientMessage(playerid,-1,bData);
- SendClientMessage(playerid,-1,"{FFDC00}NOTA: Ahora todos tus movimientos seran grabados para el npc{FFFFFF}!.");
- }
- else if(bDataBots[more_bots][b_mode]==PLAYER_RECORDING_TYPE_DRIVER){
- if(!IsPlayerInAnyVehicle(playerid))
- return SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}Usted ha elegido el mode de grabacion {FFFFFF}en vehiculo, {FFE300}suba a un vehiculo{FFFFFF}!.");
- if(InfoDataBots[playerid][RecNPC])
- return SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}Usted ya se encuentra grabando un npc{FFFFFF}!.");
- InfoDataBots[playerid][RecNPC] = true;
- InfoDataBots[playerid][SaveNPC] = false;
- InfoDataBots[playerid][SelectNPC] = false;
- GetVehiclePos(bVehicle, bPos[0],bPos[1],bPos[2]);
- GetVehicleZAngle(bVehicle, bPos[3]);
- bDataBots[more_bots][nPos][0] = bPos[0];
- bDataBots[more_bots][nPos][1] = bPos[1];
- bDataBots[more_bots][nPos][2] = bPos[2];
- bDataBots[more_bots][nPos][3] = bPos[3];
- bDataBots[more_bots][b_vehicle] = bModel;
- bDataBots[more_bots][b_seat] = bSeat;
- bDataBots[more_bots][b_skin] = bSkin;
- bDataBots[more_bots][b_weapons] = bWeapons;
- bDataBots[more_bots][b_armour] = p_armour;
- bDataBots[more_bots][b_descripction][0] ='\0';
- select_bots = 0;
- StartRecordingPlayerData(playerid,bDataBots[more_bots][b_mode],bDataBots[more_bots][b_name]);
- format(bData,sizeof(bData),"{FFFFFF}INFO: {FFE300}grabacion del npc: {FFFFFF}%s [%d/%d], {00A700}conmenzada.", bDataBots[more_bots][b_name], more_bots, MAX_NPC-GetPlayerPoolSize());
- SendClientMessage(playerid,-1,bData);
- SendClientMessage(playerid,-1,"{FFDC00}NOTA: Ahora todos tus movimientos seran grabados para el npc{FFFFFF}!.");
- }
- }
- }
- if(newkeys & KEY_NO){
- if(InfoDataBots[playerid][EditorNPC]){
- if(InfoDataBots[playerid][RecNPC]){
- StopRecordingPlayerData(playerid);
- format(bData,sizeof(bData),"{FFFFFF}INFO: {FFE300}grabacion del npc: {FFFFFF}%s [%d/%d], {CB0000}detenida.", bDataBots[more_bots][b_name], more_bots, MAX_NPC-GetPlayerPoolSize());
- SendClientMessage(playerid,-1,bData);
- InfoDataBots[playerid][RecNPC] = false;
- InfoDataBots[playerid][EditorNPC] = false;
- InfoDataBots[playerid][SaveNPC] = true;
- InfoDataBots[playerid][SelectNPC] = false;
- format(bData,sizeof(bData),"%s.pwn",bDataBots[more_bots][b_name]);
- if(fexist(bData)) fremove(bData);
- bDatas=fopen(bData, io_append);
- if(bDatas){
- format(bData,sizeof(bData),"\r\n#define RECORDING \"%s\"\r\n",bDataBots[more_bots][b_name]);
- fwrite(bDatas, bData);
- format(bData,sizeof(bData),"#define RECORDING_TYPE (%d)\r\n\r\n",bDataBots[more_bots][b_mode]);
- fwrite(bDatas, bData);
- fwrite(bDatas, " #include <a_npc>\r\n");
- fwrite(bDatas, " main(){}\r\n");
- fwrite(bDatas, " public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);\r\n\r\n");
- fwrite(bDatas, " #if RECORDING_TYPE == 1\r\n");
- fwrite(bDatas, " public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);\r\n");
- fwrite(bDatas, " public OnNPCExitVehicle() StopRecordingPlayback();\r\n");
- fwrite(bDatas, " #else\r\n");
- fwrite(bDatas, " public OnNPCSpawn() StartRecordingPlayback(RECORDING_TYPE, RECORDING);\r\n");
- fwrite(bDatas, " #endif\r\n");
- fclose(bDatas);
- }
- bDataBots[more_bots][id_actors] = CreateObject(18631, bDataBots[more_bots][nPos][0],bDataBots[more_bots][nPos][1],bDataBots[more_bots][nPos][2],0,0,0);
- new asd[10];
- if(bDataBots[more_bots][b_mode]==PLAYER_RECORDING_TYPE_ONFOOT) asd="actor",\
- bDataBots[more_bots][b_actors] = CreateActor(bDataBots[more_bots][b_skin], bDataBots[more_bots][nPos][0],bDataBots[more_bots][nPos][1],bDataBots[more_bots][nPos][2], bDataBots[more_bots][nPos][3]);
- else if(bDataBots[more_bots][b_mode]==PLAYER_RECORDING_TYPE_DRIVER) asd="vehiculo",\
- bDataBots[more_bots][b_actors] = CreateVehicle(bDataBots[more_bots][b_vehicle], bDataBots[more_bots][nPos][0],bDataBots[more_bots][nPos][1],bDataBots[more_bots][nPos][2], bDataBots[more_bots][nPos][3],random(200),random(200),99999);
- format(bData,sizeof(bData),"{FFFFFF}INFO: {FFDC00}se ha creado un '{FFFFFF}%s' {FFDC00}para simular la posicion inicial del npc grabado{FFFFFF}!.", asd);
- SendClientMessage(playerid,-1,bData);
- format(bData,sizeof(bData),"{FFFFFF}INFO: {FFE300}cantidad de npc creados hasta el momento: {FFFFFF}[%d/%d].", more_bots, MAX_NPC-GetPlayerPoolSize());
- SendClientMessage(playerid,-1,bData);
- }
- }
- }
- if(newkeys & KEY_CROUCH){
- if(!InfoDataBots[playerid][EditorNPC]){
- if(InfoDataBots[playerid][SaveNPC]){
- if(more_bots == 0)
- return SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFDC00}Usted no ha grabado ningun npc, hasta el momento{FFFFFF}!.");
- format(bData,sizeof(bData),"%s.pwn","filterscripts_NPC");
- if(fexist(bData)) fremove(bData);
- bDatas=fopen(bData, io_append);
- if(bDatas){
- fwrite(bDatas, " // Sistema de grabacion de npc - By OTACON //\r\n");
- fwrite(bDatas, "#include <a_samp>\r\n\r\n");
- for(new bSlots=1; bSlots<more_bots+1; bSlots++){
- if(bDataBots[bSlots][b_mode]==PLAYER_RECORDING_TYPE_DRIVER){
- format(bData,sizeof(bData),"new bVehicle_%s; \r\n", bDataBots[bSlots][b_name]);
- fwrite(bDatas, bData);
- }
- }
- for(new bSlots=1; bSlots<more_bots+1; bSlots++){
- if(strlen(bDataBots[bSlots][b_descripction])>=4 && strlen(bDataBots[bSlots][b_descripction])<=24){
- format(bData,sizeof(bData),"new Text3D:bText_%s[MAX_PLAYERS]; \r\n", bDataBots[bSlots][b_name]);
- fwrite(bDatas, bData);
- }
- }
- fwrite(bDatas, "\r\n");
- fwrite(bDatas, "public OnFilterScriptInit(){\r\n");
- format(bData,sizeof(bData)," SendRconCommand(\"maxnpc %d\"); \r\n", more_bots+1);
- fwrite(bDatas, bData);
- for(new bSlots=1; bSlots<more_bots+1; bSlots++){
- format(bData,sizeof(bData)," ConnectNPC(\"%s\",\"%s\"); \r\n", bDataBots[bSlots][b_name], bDataBots[bSlots][b_name]);
- fwrite(bDatas, bData);
- }
- for(new bSlots=1; bSlots<more_bots+1; bSlots++){
- if(bDataBots[bSlots][b_mode]==PLAYER_RECORDING_TYPE_DRIVER){
- format(bData,sizeof(bData)," bVehicle_%s = AddStaticVehicle(%d, %f,%f,%f,%f,%d,%d); \r\n", bDataBots[bSlots][b_name], bDataBots[bSlots][b_vehicle], bDataBots[bSlots][nPos][0],bDataBots[bSlots][nPos][1],bDataBots[bSlots][nPos][2],bDataBots[bSlots][nPos][3], random(200), random(200));
- fwrite(bDatas, bData);
- }
- }
- fwrite(bDatas, " return true;\r\n");
- fwrite(bDatas, "}\r\n\r\n");
- fwrite(bDatas, "public OnPlayerSpawn(playerid){\r\n");
- fwrite(bDatas, " if(IsPlayerNPC(playerid)){\r\n");
- fwrite(bDatas, " new bName[MAX_PLAYER_NAME];\r\n");
- fwrite(bDatas, " GetPlayerName(playerid, bName, sizeof(bName));\r\n");
- for(new bSlots=1; bSlots<more_bots+1; bSlots++){
- format(bData,sizeof(bData)," if(!strcmp(bName, \"%s\")){ \r\n", bDataBots[bSlots][b_name]);
- fwrite(bDatas, bData);
- fwrite(bDatas, " // coloca aqui las funciones para el npc\r\n");
- if(strlen(bDataBots[bSlots][b_descripction])>=4 && strlen(bDataBots[bSlots][b_descripction])<=24){
- format(bData,sizeof(bData)," Delete3DTextLabel(bText_%s[playerid]); \r\n", bDataBots[bSlots][b_name]);
- fwrite(bDatas, bData);
- format(bData,sizeof(bData)," bText_%s[playerid] = Create3DTextLabel(\"_\",-1, %f,%f,%f,10,-1,0);); \r\n", bDataBots[bSlots][b_name], bDataBots[bSlots][nPos][0],bDataBots[bSlots][nPos][1],bDataBots[bSlots][nPos][2]);
- fwrite(bDatas, bData);
- format(bData,sizeof(bData)," Attach3DTextLabelToPlayer(bText_%s[playerid], playerid, 0.0, 0.0, 0.2); \r\n", bDataBots[bSlots][b_name]);
- fwrite(bDatas, bData);
- format(bData,sizeof(bData)," Update3DTextLabelText(bText_%s[playerid], -1, \"%s\"); \r\n", bDataBots[bSlots][b_name], bDataBots[bSlots][b_descripction]);
- fwrite(bDatas, bData);
- }
- if(bDataBots[bSlots][b_armour]>0.0){
- format(bData,sizeof(bData)," SetPlayerArmour(playerid, %f); \r\n", bDataBots[bSlots][b_armour]);
- fwrite(bDatas, bData);
- }
- format(bData,sizeof(bData)," SetPlayerSkin(playerid, %d); \r\n", bDataBots[bSlots][b_skin]);
- fwrite(bDatas, bData);
- if(bDataBots[bSlots][b_weapons]>0){
- format(bData,sizeof(bData)," GivePlayerWeapon(playerid, %d, 99999); \r\n", bDataBots[bSlots][b_weapons]);
- fwrite(bDatas, bData);
- }
- if(bDataBots[bSlots][b_mode]==PLAYER_RECORDING_TYPE_ONFOOT){
- format(bData,sizeof(bData)," SetPlayerPos(playerid, %f,%f,%f); \r\n", bDataBots[bSlots][nPos][0],bDataBots[bSlots][nPos][1],bDataBots[bSlots][nPos][2]);
- fwrite(bDatas, bData);
- format(bData,sizeof(bData)," SetPlayerFacingAngle(playerid, %f); \r\n", bDataBots[bSlots][nPos][3]);
- fwrite(bDatas, bData);
- }
- if(bDataBots[bSlots][b_mode]==PLAYER_RECORDING_TYPE_DRIVER){
- format(bData,sizeof(bData)," PutPlayerInVehicle(playerid, bVehicle_%s, %d); \r\n", bDataBots[bSlots][b_name], bDataBots[bSlots][b_seat]);
- fwrite(bDatas, bData);
- }
- fwrite(bDatas, " }\r\n");
- }
- fwrite(bDatas, " }\r\n");
- fwrite(bDatas, " return true;\r\n");
- fwrite(bDatas, "}\r\n");
- fwrite(bDatas, " // Sistema de grabacion de npc - By OTACON //\r\n");
- fclose(bDatas);
- for(new bSlots=1; bSlots<more_bots+1; bSlots++){
- if(bDataBots[bSlots][b_mode]==PLAYER_RECORDING_TYPE_ONFOOT) DestroyActor(bDataBots[bSlots][b_actors]);
- else if(bDataBots[bSlots][b_mode]==PLAYER_RECORDING_TYPE_DRIVER) DestroyVehicle(bDataBots[bSlots][b_actors]);
- DestroyObject(bDataBots[bSlots][id_actors]);
- bDataBots[bSlots][nPos][0] = 0.0;
- bDataBots[bSlots][nPos][1] = 0.0;
- bDataBots[bSlots][nPos][2] = 0.0;
- bDataBots[bSlots][nPos][3] = 0.0;
- bDataBots[bSlots][b_vehicle] = -1;
- bDataBots[bSlots][b_seat] = -1;
- bDataBots[bSlots][b_mode] = -1;
- bDataBots[bSlots][b_skin] = -1;
- bDataBots[bSlots][b_weapons] = -1;
- bDataBots[bSlots][b_name][0] ='\0';
- bDataBots[bSlots][b_armour] = 0.0;
- bDataBots[bSlots][b_descripction][0] = '\0';
- Delete3DTextLabel(bDataBots[bSlots][bText]);
- }
- InfoDataBots[playerid][RecNPC] = false;
- InfoDataBots[playerid][EditorNPC] = false;
- InfoDataBots[playerid][SaveNPC] = false;
- InfoDataBots[playerid][SelectNPC] = false;
- more_bots = 0;
- select_bots = 0;
- SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}Sistema de grabacion de npc, {CB0000}apagado{FFFFFF}!.");
- SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}Sistema de grabacion de npc, {FFFFFF}reiniciado{FFFFFF}!.");
- CallLocalFunction("OnPlayerCommandText","is",playerid,"/npc");
- }
- }
- }
- }
- return true;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
- new bData[300],
- Float:bPos[4],
- bWeapon[32],
- bTexto[24];
- switch(dialogid){
- case DIALOG_NPC+0:{
- if(response){
- if(!sscanf(inputtext, "s[24]", bTexto)){
- if(strlen(bTexto)>=4 && strlen(bTexto)<=24){
- more_bots++;
- format(bDataBots[more_bots][b_name],24,"%s",bTexto);
- format(bData,sizeof(bData),"{FFFFFF}INFO: {FFE300}usted ha establecido el nombre: {FFFFFF}%s {FFE300}para el npc: {FFFFFF}%d.", bDataBots[more_bots][b_name], more_bots);
- SendClientMessage(playerid,-1,bData);
- SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}Ahora selecciona el modo en que grabaras el npc{FFFFFF}!.");
- ShowPlayerDialog(playerid,DIALOG_NPC+1, DIALOG_STYLE_MSGBOX, "{FFE300}Sistema de grabacion de npc:", "\
- {FFFFFF}INFO: Ahora selecciona el modo en que grabaras el npc: ", "a pie", "en vehiculo");
- }else{
- ShowPlayerDialog(playerid,DIALOG_NPC+0, DIALOG_STYLE_INPUT, "{FFE300}Sistema de grabacion de npc:", "\
- {FFFFFF}INFO: Escribe un nombre para el npc que vas a crear a continuacion: \n\
- {CB0000}NOTA: no ir por debajo de 4, ni ir por arriba de 24, caracteres,", "aceptar", "cancelar");
- }
- }else{
- ShowPlayerDialog(playerid,DIALOG_NPC+0, DIALOG_STYLE_INPUT, "{FFE300}Sistema de grabacion de npc:", "\
- {FFFFFF}INFO: Escribe un nombre para el npc que vas a crear a continuacion: \n\
- {CB0000}NOTA: no ir por debajo de 4, ni ir por arriba de 24, caracteres,", "aceptar", "cancelar");
- }
- }else CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");
- }
- case DIALOG_NPC+1:{
- if(response){
- bDataBots[more_bots][b_mode] = PLAYER_RECORDING_TYPE_ONFOOT;
- InfoDataBots[playerid][EditorNPC] = true;
- SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}usted ha establecido el modo de grabacion {FFFFFF}a pie.");
- SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}Sistema de grabacion de npc, {00A700}encendido{FFFFFF}!.");
- }else{
- bDataBots[more_bots][b_mode] = PLAYER_RECORDING_TYPE_DRIVER;
- InfoDataBots[playerid][EditorNPC] = true;
- SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}usted ha establecido el modo de grabacion {FFFFFF}en vehiculo.");
- SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}Sistema de grabacion de npc, {00A700}encendido{FFFFFF}!.");
- }
- }
- case DIALOG_NPC+2:{
- if(!response) CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");
- }
- case DIALOG_NPC+3:{
- if(response){
- switch(listitem){
- case 0:{
- if(select_bots == 0){CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");\
- return SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}Usted no ha seleccionado ningun npc grabado, hasta el momento{FFFFFF}!.");}
- if(bDataBots[select_bots][b_mode]==PLAYER_RECORDING_TYPE_DRIVER){CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");\
- return SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}Este npc no esta grabado a pie{FFFFFF}!.");}
- ShowPlayerDialog(playerid,DIALOG_NPC+4, DIALOG_STYLE_INPUT, "{FFE300}Sistema de grabacion de npc:", "\
- {FFFFFF}INFO: Escribe una breve descripcion para el npc grabado seleccionado: \n\
- {CB0000}NOTA: no ir por debajo de 4, ni ir por arriba de 24, caracteres,", "aceptar", "cancelar");
- }
- case 1:{
- if(select_bots == 0){CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");\
- return SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}Usted no ha seleccionado ningun npc grabado, hasta el momento{FFFFFF}!.");}
- if(bDataBots[select_bots][b_mode]==PLAYER_RECORDING_TYPE_DRIVER){CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");\
- return SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}Este npc no esta grabado a pie{FFFFFF}!.");}
- if(bDataBots[select_bots][b_armour]>0.0) format(bData,sizeof(bData),"{FFFFFF}INFO: estado de armadura: {00A700}tiene armadura.{FFFFFF}");
- else format(bData,sizeof(bData),"{FFFFFF}INFO: estado de armadura: {CB0000}no tiene armadura.{FFFFFF}");
- ShowPlayerDialog(playerid,DIALOG_NPC+5, DIALOG_STYLE_MSGBOX, "{FFE300}Sistema de grabacion de npc:", bData, "aceptar", "cancelar");
- }
- case 2:{
- if(select_bots == 0){CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");\
- return SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}Usted no ha seleccionado ningun npc grabado, hasta el momento{FFFFFF}!.");}
- if(bDataBots[select_bots][b_mode]==PLAYER_RECORDING_TYPE_DRIVER){CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");\
- return SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}Este npc no esta grabado a pie{FFFFFF}!.");}
- GetWeaponName(bDataBots[select_bots][b_weapons], bWeapon, sizeof(bWeapon));
- format(bData,sizeof(bData),"{FFFFFF}\n\t\t * visualizando armamento: [ %s ] \n\n\
- \t\t{FFE300}>>: selecciona la opcion que prefieras: \n\
- opcion - armamento '>>' \n\
- opcion - armamento '<<' \n\
- opcion - armamento 'random' \n", bWeapon);
- ShowPlayerDialog(playerid, DIALOG_NPC+6, DIALOG_STYLE_LIST, "{FFE300}Sistema de grabacion de npc:", bData, "seleccionar", "finalizar");
- }
- case 3:{
- if(select_bots == 0){CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");\
- return SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}Usted no ha seleccionado ningun npc grabado, hasta el momento{FFFFFF}!.");}
- if(bDataBots[select_bots][b_mode]==PLAYER_RECORDING_TYPE_DRIVER){CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");\
- return SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}Este npc no esta grabado a pie{FFFFFF}!.");}
- format(bData,sizeof(bData),"{FFFFFF}\n\t\t * visualizando vestimenta: [ %d / 311 ] \n\n\
- \t\t{FFE300}>>: selecciona la opcion que prefieras: \n\
- opcion - vestimenta '>>' \n\
- opcion - vestimenta '<<' \n\
- opcion - vestimenta 'random' \n",bDataBots[select_bots][b_skin]);
- ShowPlayerDialog(playerid, DIALOG_NPC+7, DIALOG_STYLE_LIST, "{FFE300}Sistema de grabacion de npc:", bData, "seleccionar", "finalizar");
- }
- case 4:{
- if(select_bots == 0){CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");\
- return SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}Usted no ha seleccionado ningun npc grabado, {FFFFFF}!.");}
- if(bDataBots[select_bots][b_mode]==PLAYER_RECORDING_TYPE_ONFOOT){CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");\
- return SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}Este npc no esta grabado en vehiculo{FFFFFF}!.");}
- format(bData,sizeof(bData),"{FFFFFF}\n\t\t * visualizando vehiculo: [ %d / 609 ] \n\n\
- \t\t{FFE300}>>: selecciona la opcion que prefieras: \n\
- opcion - vehiculo '>>' \n\
- opcion - vehiculo '<<' \n\
- opcion - vehiculo 'random' \n",bDataBots[select_bots][b_vehicle]);
- ShowPlayerDialog(playerid, DIALOG_NPC+8, DIALOG_STYLE_LIST, "{FFE300}Sistema de grabacion de npc:", bData, "seleccionar", "finalizar");
- }
- case 5:{
- if(more_bots == 0){CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");\
- return SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFDC00}Usted no ha grabado ningun npc, hasta el momento{FFFFFF}!.");}
- InfoDataBots[playerid][SelectNPC] = true;
- SelectObject(playerid);
- SendClientMessage(playerid,-1,"{FFFFFF}INFO: {FFE300}ahora selecciona a un npc para su edicion{FFFFFF}!.");
- SendClientMessage(playerid,-1,"{FFDC00}NOTA: para cambiar la camara cuando estas en modo edicion,");
- SendClientMessage(playerid,-1,"{FFDC00}manten la tecla 'BARRA' y mueve el 'mouse' para cambiarla!.");
- }
- case 6: CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");
- }
- }else CallLocalFunction("OnPlayerCommandText","is",playerid,"/npc");
- }
- case DIALOG_NPC+4:{
- if(response){
- if(!sscanf(inputtext, "s[24]", bTexto)){
- if(strlen(bTexto)>=4 && strlen(bTexto)<=24){
- format(bDataBots[select_bots][b_descripction],24,"%s",bTexto);
- Delete3DTextLabel(bDataBots[select_bots][bText]);
- bDataBots[select_bots][bText] = Create3DTextLabel(\"_",-1, bDataBots[select_bots][nPos][0],bDataBots[select_bots][nPos][1],bDataBots[select_bots][nPos][2],10,-1,0);
- Update3DTextLabelText(bDataBots[select_bots][bText], -1, bDataBots[select_bots][b_name]);
- format(bData,sizeof(bData),"{FFFFFF}INFO: {FFDC00}texto de la descripcion: {FFFFFF}'%s' para el {FFFFFF}'npc id:%d'FFFFFF}!.", bDataBots[select_bots][b_descripction],select_bots);
- SendClientMessage(playerid,-1,bData);
- CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");
- }else{
- ShowPlayerDialog(playerid,DIALOG_NPC+4, DIALOG_STYLE_INPUT, "{FFE300}Sistema de grabacion de npc:", "\
- {FFFFFF}INFO: Escribe una breve descripcion para el npc grabado seleccionado: \n\
- {CB0000}NOTA: no ir por debajo de 4, ni ir por arriba de 24, caracteres,", "aceptar", "cancelar");
- }
- }else{
- ShowPlayerDialog(playerid,DIALOG_NPC+4, DIALOG_STYLE_INPUT, "{FFE300}Sistema de grabacion de npc:", "\
- {FFFFFF}INFO: Escribe una breve descripcion para el npc grabado seleccionado: \n\
- {CB0000}NOTA: no ir por debajo de 4, ni ir por arriba de 24, caracteres,", "aceptar", "cancelar");
- }
- }else CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");
- }
- case DIALOG_NPC+5:{
- if(response){
- if(bDataBots[select_bots][b_armour]<=0.0) bDataBots[select_bots][b_armour] = 100.0;
- else bDataBots[select_bots][b_armour] = 0.0;
- if(bDataBots[select_bots][b_armour]>0.0) format(bData,sizeof(bData),"{FFFFFF}INFO: estado de armadura: {00A700}tiene armadura.{FFFFFF}");
- else format(bData,sizeof(bData),"{FFFFFF}INFO: estado de armadura: {CB0000}no tiene armadura.{FFFFFF}");
- ShowPlayerDialog(playerid,DIALOG_NPC+5, DIALOG_STYLE_MSGBOX, "{FFE300}Sistema de grabacion de npc:", bData, "aceptar", "cancelar");
- }else CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");
- }
- case DIALOG_NPC+6:{
- if(response){
- switch(listitem){
- case 0..2: CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");
- case 3:{
- bDataBots[select_bots][b_weapons]++;
- switch(bDataBots[select_bots][b_weapons]){
- case 19,20,21: bDataBots[select_bots][b_weapons] = 22;
- }
- }
- case 4:{
- bDataBots[select_bots][b_weapons]--;
- switch(bDataBots[select_bots][b_weapons]){
- case 19,20,21: bDataBots[select_bots][b_weapons] = 18;
- }
- }
- case 5:{
- new rand = random(46);
- switch(rand){
- case 0..46:{
- switch(rand){
- case 19,20,21: bDataBots[select_bots][b_weapons] = 22;
- default: bDataBots[select_bots][b_weapons] = rand;
- }
- }
- }
- }
- }
- if(bDataBots[select_bots][b_weapons]>=46) bDataBots[select_bots][b_weapons] = 46;
- else if(bDataBots[select_bots][b_weapons]<=0) bDataBots[select_bots][b_weapons] = 0;
- GetWeaponName(bDataBots[select_bots][b_weapons], bWeapon, sizeof(bWeapon));
- format(bData,sizeof(bData),"{FFFFFF}\n\t\t * visualizando armamento: [ %s ] \n\n\
- \t\t{FFE300}>>: selecciona la opcion que prefieras: \n\
- opcion - armamento '>>' \n\
- opcion - armamento '<<' \n\
- opcion - armamento 'random' \n", bWeapon);
- ShowPlayerDialog(playerid, DIALOG_NPC+6, DIALOG_STYLE_LIST, "{FFE300}Sistema de grabacion de npc:", bData, "seleccionar", "finalizar");
- }else CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");
- }
- case DIALOG_NPC+7:{
- if(response){
- switch(listitem){
- case 0..2: CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");
- case 3: bDataBots[select_bots][b_skin]++;
- case 4: bDataBots[select_bots][b_skin]--;
- case 5: bDataBots[select_bots][b_skin]=random(311);
- }
- if(bDataBots[select_bots][b_skin]>=311) bDataBots[select_bots][b_skin] = 311;
- else if(bDataBots[select_bots][b_skin]<=0) bDataBots[select_bots][b_skin] = 0;
- GetActorPos(bDataBots[select_bots][b_actors], bPos[0],bPos[1],bPos[2]);
- GetActorFacingAngle(bDataBots[select_bots][b_actors], bPos[3]);
- DestroyActor(bDataBots[select_bots][b_actors]);
- bDataBots[select_bots][b_actors] = CreateActor(bDataBots[select_bots][b_skin], bPos[0],bPos[1],bPos[2],bPos[3]);
- format(bData,sizeof(bData),"{FFFFFF}\n\t\t * visualizando vestimenta: [ %d / 311 ] \n\n\
- \t\t{FFE300}>>: selecciona la opcion que prefieras: \n\
- opcion - vestimenta '>>' \n\
- opcion - vestimenta '<<' \n\
- opcion - vestimenta 'random' \n",bDataBots[select_bots][b_skin]);
- ShowPlayerDialog(playerid, DIALOG_NPC+7, DIALOG_STYLE_LIST, "{FFE300}Sistema de grabacion de npc:", bData, "seleccionar", "finalizar");
- }else CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");
- }
- case DIALOG_NPC+8:{
- if(response){
- switch(listitem){
- case 0..2: CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");
- case 3: bDataBots[select_bots][b_vehicle]++;
- case 4: bDataBots[select_bots][b_vehicle]--;
- case 5:{
- new rand = random(610);
- switch(rand){
- case 400..609: bDataBots[select_bots][b_vehicle] = rand;
- }
- }
- }
- if(bDataBots[select_bots][b_vehicle]>=609) bDataBots[select_bots][b_vehicle] = 609;
- else if(bDataBots[select_bots][b_vehicle]<=400) bDataBots[select_bots][b_vehicle] = 400;
- GetVehiclePos(bDataBots[select_bots][b_actors], bPos[0],bPos[1],bPos[2]);
- GetVehicleZAngle(bDataBots[select_bots][b_actors], bPos[3]);
- DestroyVehicle(bDataBots[select_bots][b_actors]);
- bDataBots[select_bots][b_actors] = CreateVehicle(bDataBots[select_bots][b_vehicle], bPos[0],bPos[1],bPos[2],bPos[3],random(200),random(200),99999);
- format(bData,sizeof(bData),"{FFFFFF}\n\t\t * visualizando vehiculo: [ %d / 609 ] \n\n\
- \t\t{FFE300}>>: selecciona la opcion que prefieras: \n\
- opcion - vehiculo '>>' \n\
- opcion - vehiculo '<<' \n\
- opcion - vehiculo 'random' \n",bDataBots[select_bots][b_vehicle]);
- ShowPlayerDialog(playerid, DIALOG_NPC+8, DIALOG_STYLE_LIST, "{FFE300}Sistema de grabacion de npc:", bData, "seleccionar", "finalizar");
- }else CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");
- }
- }
- return false;
- }
- public OnPlayerSelectObject(playerid, type, objectid, modelid, Float:fX, Float:fY, Float:fZ){
- new bData[200];
- if(type==SELECT_OBJECT_GLOBAL_OBJECT){
- if(InfoDataBots[playerid][SelectNPC]){
- select_bots = objectid;
- CancelEdit(playerid);
- InfoDataBots[playerid][SelectNPC] = false;
- format(bData,sizeof(bData),"{FFFFFF}INFO: {FFDC00}Usted ha seleccionado al {FFFFFF}npc id:%d' {FFDC00}para su edicion{FFFFFF}!.", select_bots);
- SendClientMessage(playerid,-1,bData);
- CallLocalFunction("OnPlayerCommandText","is",playerid,"/npcedit");
- }
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement