Azt szeretném kérni hogy valaki ki tudná javitani ebben a szriptben a hibákat.
#include <a_samp>
#include <filemanager.inc>
new recording[MAX_PLAYERS] = 5;
new rids[51]=0;
new pnpcid[MAX_PLAYERS]=-1;
new caridnpcfuck[MAX_PLAYERS];
new strfuck[32];
new isnpcincar[51]=0;
new namesplit[51][51];
new fuckerskin[51];
new n00b;
new Text3D:bitch[MAX_PLAYERS];
forward lulz(); //UPDATE SKINS - it is timer because some gamemodes change skin on spawn lol
public OnFilterScriptInit()
{
print(\"\\n----------------------------------\");
print(\"InGame NPC editor by Kurence loaded!\");
print(\"----------------------------------\\n\");
for(new i=0;i<51;i++){
new filename[64],scriptname[32];
format(filename,sizeof(filename),\"daddycar%d.cfg\",i);
format(scriptname,sizeof(scriptname),\"scriptfiles/daddycar%d.cfg\",i);
if(!fexist(filename)) file_create(scriptname);
format(filename,sizeof(filename),\"daddyskin%d.cfg\",i);
format(scriptname,sizeof(scriptname),\"scriptfiles/daddyskin%d.cfg\",i);
if(!fexist(filename)) file_create(scriptname);
}
for(new i=0;i<51;i++){
new filename[64],nickname[32],scriptname[32];
format(filename,sizeof(filename),\"daddycar%d.cfg\",i);
new File:fuckingfile=fopen(filename, io_read);
new value[32];
fread(fuckingfile,value);
fclose(fuckingfile);
caridnpcfuck=strval(value);
format(filename,sizeof(filename),\"daddyskin%d.cfg\",i);
fuckingfile=fopen(filename, io_read);
fread(fuckingfile,value);
fclose(fuckingfile);
fuckerskin=strval(value);
format(filename,sizeof(filename),\"npcmodes/recordings/daddycar%d.rec\",i);
format(nickname,sizeof(nickname),\"Kurence%d\",i);
format(scriptname,sizeof(scriptname),\"daddycar%d\",i);
if(file_exists(filename)) ConnectNPC(nickname,scriptname);
format(filename,sizeof(filename),\"npcmodes/recordings/daddyfoot%d.rec\",i);
format(scriptname,sizeof(scriptname),\"daddyfoot%d\",i);
if(file_exists(filename)) ConnectNPC(nickname,scriptname);
}
SetTimer(\"lulz\",1000,1);
return 1;
}
public OnFilterScriptExit()
{
print(\"\\n------------------------------------\");
print(\"InGame NPC editor by Kurence unloaded!\");
print(\"------------------------------------\\n\");
for(new i;i<MAX_PLAYERS;i++){
GetPlayerName(i,strfuck,sizeof(strfuck));
new fuckername[32];
GetPlayerName(i,fuckername,sizeof(fuckername));
if(IsPlayerNPC(i) && !strcmp(\"Kurence\",fuckername,false,7))Kick(i);
}
return 1;
}
public OnPlayerCommandText(playerid,cmdtext[]){
new cmd[128], idx;
cmd = strtok(cmdtext, idx);
if(!strcmp(\"/knicks\",cmdtext)){
if(n00b==0){
for(new i;i<MAX_PLAYERS;i++){
GetPlayerName(i,strfuck,sizeof(strfuck));
if(IsPlayerNPC(i) && !strcmp(\"Kurence\",strfuck,false,7)){
GetPlayerName(i,strfuck,sizeof(strfuck));
bitch = Create3DTextLabel(strfuck,0x28BA9AFF,0,0,0,200,-1,0);
Attach3DTextLabelToPlayer(bitch,i,0,0,0.3);
}
}
SendClientMessage(playerid,0x00FF0000,\"NPC nicknames enabled\");
n00b=1;
return 1;
}
else{
for(new i;i<MAX_PLAYERS;i++){
Delete3DTextLabel(bitch);
}
SendClientMessage(playerid,0x00FF0000,\"NPC nicknames disabled\");
n00b=0;
return 1;
}
}
if(!strcmp(\"/knpchelp\",cmdtext)){
SendClientMessage(playerid,0xFF000000,\"In-Game NPC maker by Kurence\");
SendClientMessage(playerid,0x00FF0000,\"COMMANDS:\");
SendClientMessage(playerid,0x00FF0000,\"/knpc [iD 0-50] - start/stop recording npc (PLAYER_RECORDING_TYPE will depend on your current state (on foot/driver)\");
SendClientMessage(playerid,0x00FF0000,\"/knpclist - show list of currently connected NPC\'s\");
SendClientMessage(playerid,0x00FF0000,\"/kremove [iD 0-50] - remove NPC (or use \'/kremove all\' to remove all NPCs)\");
SendClientMessage(playerid,0x00FF0000,\"/knicks - show/hide nicknames of NPC\'s\");
SendClientMessage(playerid,0x00FF0000,\"/knpchelp - show list of commands\");
return 1;
}
if(!strcmp(\"/knpclist\",cmd)){
new tmp[128];
tmp = strtok(cmdtext, idx);
SendClientMessage(playerid,0xFF000000,\"[NPCID] [NICKNAME] [PLAYERID]\");
for(new i;i<MAX_PLAYERS;i++){
if(IsPlayerConnected(i)){
GetPlayerName(i,strfuck,sizeof(strfuck));
if(!strcmp(\"Kurence\",strfuck,false,7)){
split(strfuck,namesplit,\'e\');
new msg[64];
format(msg,sizeof(msg),\"%d %s %d\",strval(namesplit[2]),strfuck,i);
SendClientMessage(playerid,0xFF000000,msg);
}
}
}
return 1;
}
if (!strcmp(\"/kremove\",cmd)){
new tmp[128];
tmp = strtok(cmdtext, idx);
if(!strcmp(\"all\",tmp) && strlen(tmp)==3){
SendClientMessage(playerid,0xFF000000,\"Removing all NPC\'s...\");
for(new i;i<MAX_PLAYERS;i++){
GetPlayerName(i,strfuck,sizeof(strfuck));
if(!strcmp(\"Kurence\",strfuck,false,7))Kick(i);
new filename[64];
format(filename,sizeof(filename),\"npcmodes/recordings/daddycar%d.rec\",i);
if(file_exists(filename)) file_delete(filename);
format(filename,sizeof(filename),\"npcmodes/recordings/daddyfoot%d.rec\",i);
if(file_exists(filename)) file_delete(filename);
}
return 1;
}
if(!strlen(tmp)) return SendClientMessage(playerid,0xFF000000,\"Usage: /kremove [iD] - Valid IDs: 0-50 or /kremove all\");
if(strval(tmp)>50 || strval(tmp)<0) return SendClientMessage(playerid,0xFF000000,\"Usage: /kremove [iD] - Valid IDs: 0-50 or /kremove all\");
new remmsg[64];
format(remmsg,sizeof(remmsg),\"Removing NPC with ID %d\",strval(tmp));
for(new i;i<MAX_PLAYERS;i++){
GetPlayerName(i,strfuck,sizeof(strfuck));
new fuckername[32];
format(fuckername,sizeof(fuckername),\"Kurence%d\",strval(tmp));
if (!strcmp(fuckername,strfuck)) Kick(i);
}
SendClientMessage(playerid,0x00FF0000,remmsg);
new filename[64];
format(filename,sizeof(filename),\"npcmodes/recordings/daddycar%d.rec\",strval(tmp));
if(file_exists(filename)) file_delete(filename);
format(filename,sizeof(filename),\"npcmodes/recordings/daddyfoot%d.rec\",strval(tmp));
if(file_exists(filename)) file_delete(filename);
return 1;
}
if (!strcmp(\"/knpc\",cmd)){
new tmp[128];
tmp = strtok(cmdtext, idx);
if(pnpcid[playerid]!=-1){
if(recording[playerid] == 1){
StopRecordingPlayerData(playerid);
recording[playerid] = 5;
new filenamefuck[64],daddyslittlegirl[64];
format(filenamefuck,sizeof(filenamefuck),\"npcmodes/recordings/daddyfoot%d.rec\",pnpcid[playerid]);
file_delete(filenamefuck);
format(filenamefuck,sizeof(filenamefuck),\"npcmodes/recordings/daddycar%d.rec\",pnpcid[playerid]);
file_delete(filenamefuck);
format(filenamefuck,sizeof(filenamefuck),\"scriptfiles/daddyfoot%d.rec\",pnpcid[playerid]);
format(daddyslittlegirl,sizeof(daddyslittlegirl),\"npcmodes/recordings/daddyfoot%d.rec\",pnpcid[playerid]);
file_move(filenamefuck,daddyslittlegirl);
new fuckernamelulz[32];
format(fuckernamelulz,sizeof(fuckernamelulz),\"Kurence%d\",pnpcid[playerid]);
format(daddyslittlegirl,sizeof(daddyslittlegirl),\"daddyfoot%d\",pnpcid[playerid]);
ConnectNPC(fuckernamelulz,daddyslittlegirl);
rids[pnpcid[playerid]]=0;
pnpcid[playerid]=-1;
recording[playerid] = 5;
}
if(recording[playerid] == 2){
StopRecordingPlayerData(playerid);
recording[playerid] = 5;
new filenamefuck[64],daddyslittlegirl[64];
format(filenamefuck,sizeof(filenamefuck),\"npcmodes/recordings/daddycar%d.rec\",pnpcid[playerid]);
file_delete(filenamefuck);
format(filenamefuck,sizeof(filenamefuck),\"npcmodes/recordings/daddyfoot%d.rec\",pnpcid[playerid]);
file_delete(filenamefuck);
format(filenamefuck,sizeof(filenamefuck),\"scriptfiles/daddycar%d.rec\",pnpcid[playerid]);
format(daddyslittlegirl,sizeof(daddyslittlegirl),\"npcmodes/recordings/daddycar%d.rec\",pnpcid[playerid]);
file_move(filenamefuck,daddyslittlegirl);
new fuckernamelulz[32];
format(fuckernamelulz,sizeof(fuckernamelulz),\"Kurence%d\",pnpcid[playerid]);
format(daddyslittlegirl,sizeof(daddyslittlegirl),\"daddycar%d\",pnpcid[playerid]);
ConnectNPC(fuckernamelulz,daddyslittlegirl);
for(new i;i<MAX_PLAYERS;i++){
GetPlayerName(i,strfuck,sizeof(strfuck));
new namelulzomg[32];
format(namelulzomg,sizeof(namelulzomg),\"Kurence%d\",pnpcid[playerid]);
if (!strcmp(namelulzomg,strfuck)) PutPlayerInVehicle(i,caridnpcfuck[pnpcid[playerid]],0);
}
rids[pnpcid[playerid]]=0;
pnpcid[playerid]=-1;
recording[playerid] = 5;
}
}else{
if(!strlen(tmp)) return SendClientMessage(playerid,0xFF000000,\"Usage: /knpc [iD] - Valid IDs: 0-50\");
if(strval(tmp)>50 || strval(tmp)<0) return SendClientMessage(playerid,0xFF000000,\"Usage: /knpc [iD] - Valid IDs: 0-50\");
if(rids[strval(tmp)]==1) return SendClientMessage(playerid,0xFF000000,\"Someone is already creating NPC with this ID!\");
if(GetPlayerState(playerid) == 1){
caridnpcfuck[strval(tmp)] = -5;
new filename[32];
fuckerskin[strval(tmp)]=GetPlayerSkin(playerid);
format(filename,sizeof(filename),\"daddyfoot%i\",strval(tmp));
StartRecordingPlayerData(playerid, PLAYER_RECORDING_TYPE_ONFOOT,filename);
recording[playerid]=1;
rids[strval(tmp)]=1;
new msg[64];
new filename2[64];
format(filename2,sizeof(filename2),\"daddyskin%i.cfg\",strval(tmp));
new File:fuckingfile=fopen(filename2, io_write);
new value[64];
format(value,sizeof(value),\"%d\",GetPlayerSkin(playerid));
fwrite(fuckingfile,value);
fclose(fuckingfile);
isnpcincar[strval(tmp)] = 0;
format(msg,sizeof(msg),\"Creating On-Foot NPC with ID %d... Use /knpc again when done\",strval(tmp));
SendClientMessage(playerid,0x00FF0000,msg);
pnpcid[playerid]=strval(tmp);
for(new i;i<MAX_PLAYERS;i++){
GetPlayerName(i,strfuck,sizeof(strfuck));
new fuckername[32];
format(fuckername,sizeof(fuckername),\"Kurence%d\",strval(tmp));
if (!strcmp(fuckername,strfuck)) Kick(i);
}
}
else if(GetPlayerState(playerid) == 2){
new filename[32];
isnpcincar[strval(tmp)] = 1;
format(filename,sizeof(filename),\"daddycar%d\",strval(tmp));
StartRecordingPlayerData(playerid, PLAYER_RECORDING_TYPE_DRIVER, filename);
recording[playerid]=2;
rids[strval(tmp)]=1;
new msg[64];
fuckerskin[strval(tmp)]=GetPlayerSkin(playerid);
format(msg,sizeof(msg),\"Creating In-Car NPC with ID %d... Use /knpc again when done\",strval(tmp));
SendClientMessage(playerid,0x00FF0000,msg);
caridnpcfuck[strval(tmp)] = GetPlayerVehicleID(playerid);
new filename2[64];
format(filename2,sizeof(filename2),\"daddycar%d.cfg\",strval(tmp));
new File:fuckingfile=fopen(filename2, io_write);
new value[64];
format(value,sizeof(value),\"%d\",GetPlayerVehicleID(playerid));
fwrite(fuckingfile,value);
fclose(fuckingfile);
format(filename2,sizeof(filename2),\"daddyskin%d.cfg\",strval(tmp));
fuckingfile=fopen(filename2, io_write);
format(value,sizeof(value),\"%d\",GetPlayerSkin(playerid));
fwrite(fuckingfile,value);
fclose(fuckingfile);
pnpcid[playerid]=strval(tmp);
for(new i;i<MAX_PLAYERS;i++){
GetPlayerName(i,strfuck,sizeof(strfuck));
new fuckername[32];
format(fuckername,sizeof(fuckername),\"Kurence%d\",strval(tmp));
if (!strcmp(fuckername,strfuck)) Kick(i);
}
}
}
return 1;
}
return 0;
}
public OnPlayerConnect(playerid){
pnpcid[playerid]=-1;
if(IsPlayerNPC(playerid)) SpawnPlayer(playerid);
GetPlayerName(playerid,strfuck,sizeof(strfuck));
if(!strcmp(\"Kurence\",strfuck,false,7)){
split(strfuck,namesplit,\'e\');
if(n00b==1){
GetPlayerName(playerid,strfuck,sizeof(strfuck));
bitch[playerid] = Create3DTextLabel(strfuck,0x28BA9AFF,0,0,0,200,-1,0);
Attach3DTextLabelToPlayer(bitch[playerid],playerid,0,0,0.3);
}
if(GetVehicleModel(caridnpcfuck[strval(namesplit[2])])!=0) PutPlayerInVehicle(playerid,caridnpcfuck[strval(namesplit[2])],0);
}
return 1;
}
public OnPlayerEnterVehicle(playerid,vehicleid){
if(recording[playerid] == 1){
StopRecordingPlayerData(playerid);
recording[playerid] = 5;
new filenamefuck[64],daddyslittlegirl[64];
format(filenamefuck,sizeof(filenamefuck),\"npcmodes/recordings/daddyfoot%d.rec\",pnpcid[playerid]);
file_delete(filenamefuck);
format(filenamefuck,sizeof(filenamefuck),\"npcmodes/recordings/daddycar%d.rec\",pnpcid[playerid]);
file_delete(filenamefuck);
format(filenamefuck,sizeof(filenamefuck),\"scriptfiles/daddyfoot%d.rec\",pnpcid[playerid]);
format(daddyslittlegirl,sizeof(daddyslittlegirl),\"npcmodes/recordings/daddyfoot%d.rec\",pnpcid[playerid]);
file_move(filenamefuck,daddyslittlegirl);
new fuckernamelulz[32];
format(fuckernamelulz,sizeof(fuckernamelulz),\"Kurence%d\",pnpcid[playerid]);
format(daddyslittlegirl,sizeof(daddyslittlegirl),\"daddyfoot%d\",pnpcid[playerid]);
ConnectNPC(fuckernamelulz,daddyslittlegirl);
rids[pnpcid[playerid]]=0;
pnpcid[playerid]=-1;
}
return 1;
}
public OnPlayerDisconnect(playerid,reason){
GetPlayerName(playerid,strfuck,sizeof(strfuck));
if(!strcmp(\"Kurence\",strfuck,false,7) && n00b==1 && IsPlayerNPC(playerid)){
Delete3DTextLabel(bitch[playerid]);
}
if(recording[playerid]!=5){
StopRecordingPlayerData(playerid);
recording[playerid] = 5;
if(pnpcid[playerid]!=-1)rids[pnpcid[playerid]]=0;
pnpcid[playerid]=-1;
}
return 1;
}
public lulz(){
for(new i;i<MAX_PLAYERS;i++){
GetPlayerName(i,strfuck,sizeof(strfuck));
if(!strcmp(\"Kurence\",strfuck,false,7)){
split(strfuck,namesplit,\'e\');
if(GetPlayerSkin(i) != fuckerskin[strval(namesplit[2])]){
SetPlayerSkin(i,fuckerskin[strval(namesplit[2])]);
}
}
}
}
public OnPlayerStateChange(playerid,newstate,oldstate){ // The same as OnPlayerExitVehicle (
if(oldstate==PLAYER_STATE_DRIVER && newstate==PLAYER_STATE_ONFOOT){
if(recording[playerid] == 2){
StopRecordingPlayerData(playerid);
recording[playerid] = 5;
new filenamefuck[64],daddyslittlegirl[64];
format(filenamefuck,sizeof(filenamefuck),\"npcmodes/recordings/daddycar%d.rec\",pnpcid[playerid]);
file_delete(filenamefuck);
format(filenamefuck,sizeof(filenamefuck),\"npcmodes/recordings/daddyfoot%d.rec\",pnpcid[playerid]);
file_delete(filenamefuck);
format(filenamefuck,sizeof(filenamefuck),\"scriptfiles/daddycar%d.rec\",pnpcid[playerid]);
format(daddyslittlegirl,sizeof(daddyslittlegirl),\"npcmodes/recordings/daddycar%d.rec\",pnpcid[playerid]);
file_move(filenamefuck,daddyslittlegirl);
new fuckernamelulz[32];
format(fuckernamelulz,sizeof(fuckernamelulz),\"Kurence%d\",pnpcid[playerid]);
format(daddyslittlegirl,sizeof(daddyslittlegirl),\"daddycar%d\",pnpcid[playerid]);
ConnectNPC(fuckernamelulz,daddyslittlegirl);
for(new i;i<MAX_PLAYERS;i++){
GetPlayerName(i,strfuck,sizeof(strfuck));
new namelulzomg[32];
format(namelulzomg,sizeof(namelulzomg),\"Kurence%d\",pnpcid[playerid]);
if (!strcmp(namelulzomg,strfuck)) PutPlayerInVehicle(i,caridnpcfuck[pnpcid[playerid]],0);
}
rids[pnpcid[playerid]]=0;
pnpcid[playerid]=-1;
}
}
return 1;
}
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= \' \'))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > \' \') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
stock split(const strsrc[], strdest[][], delimiter)
{
new i, li;
new aNum;
new len;
while(i <= strlen(strsrc))
{
if(strsrc == delimiter || i == strlen(strsrc))
{
len = strmid(strdest[aNum], strsrc, li, i, 128);
strdest[aNum][len] = 0;
li = i+1;
aNum++;
}
i++;
}
return 1;
}
Elöre is köszönöm szépen.