Pickup error
#1

Okay, I'm working on the house system, when I create the first house pickup, it works, then I create the second house pickup, the first is destroyed and the second is created, I see nothing wrong, I can't understand, here is my code, please take a look:
PHP код:
new CharacterHouse[MAX_HOUSES][chInfo];
enum chInfo{
    
chOwnerName[MAX_PLAYER_NAME],
    
chID
    
Float:chExteriorX,
    
Float:chExteriorY,
    
Float:chExteriorZ,
    
Float:chExteriorA,
    
chExteriorVW,
    
Float:chInteriorX,
    
Float:chInteriorY,
    
Float:chInteriorZ,
    
Float:chInteriorA,
    
chInteriorID,
    
chInteriorVW,
    
chPickup
};
CMD:hedit(playeridparams[]){
    new 
choice[32], houseidamount;
    if(
Character[playerid][Admin] < 2) return System_Scm(playeridPERMISSIONONLYTYPE_ERROR);
    if(
sscanf(params"s[32]ii"choicehouseidamount)) return System_Scm(playerid"/house [choice] [houseid] [amount DEFAULT:0]"TYPE_NOTICE), System_Scm(playerid"choice: 'create', 'move', 'interior'. "TYPE_NOTICE);
    if(
houseid 1) return System_Scm(playerid"House ID can lon hon 0."TYPE_ERROR);
    if(!
strcmp(choice"create")){
        if(
CharacterHouse[houseid][chID] != 0) return System_Scm(playerid"This house was created."TYPE_ERROR);
        new 
Float:XFloat:YFloat:ZFloat:AexVW;
        
GetPlayerPos(playeridXYZ);
        
GetPlayerFacingAngle(playeridA);
        
exVW GetPlayerVirtualWorld(playerid);
        
CreateHouse(houseidXYZAexVW);
    }
    else if(!
strcmp(choice"move")){
        if(
CharacterHouse[houseid][chID] == 0) return System_Scm(playerid"This house was not created."TYPE_ERROR);
        new 
Float:XFloat:YFloat:ZFloat:AexVW;
        
GetPlayerPos(playeridXYZ);
        
GetPlayerFacingAngle(playeridA);
        
exVW GetPlayerVirtualWorld(playerid);
        
MoveHouse(houseidXYZAexVW);
    }
    else if(!
strcmp(choice"interior")){
        
GetPlayerPos(playeridCharacterHouse[houseid][chInteriorX], CharacterHouse[houseid][chInteriorY], CharacterHouse[houseid][chInteriorZ]);
        
GetPlayerFacingAngle(playeridCharacterHouse[houseid][chInteriorA]);
        
CharacterHouse[houseid][chInteriorID] = GetPlayerInterior(playerid);
        
CharacterHouse[houseid][chInteriorVW] = houseid;
    }
    return 
1;
}
CreateHouse(houseidFloat:hPosXFloat:hPosYFloat:hPosZFloat:entranceFAhVW){
    new 
query[256];
    
DestroyPickup(CharacterHouse[houseid][chPickup]);
    
CharacterHouse[houseid][chPickup] = CreatePickup(127323hPosXhPosYhPosZ-0.3hVW);
    
CharacterHouse[houseid][chID] = houseid;
    
CharacterHouse[houseid][chExteriorX] = hPosX;
    
CharacterHouse[houseid][chExteriorY] = hPosY;
    
CharacterHouse[houseid][chExteriorZ] = hPosZ;
    
CharacterHouse[houseid][chExteriorA] = entranceFA;
    
CharacterHouse[houseid][chExteriorVW] = hVW;
    
mysql_format(MHandlequerysizeof(query), "INSERT INTO `houses` (`ID`, `OwnerName`, `ExteriorX`, `ExteriorY`, `ExteriorZ`, `ExteriorAngle`) VALUES (%d, '%e', %0.4f, %0.4f, %0.4f, %0.4f)",
    
CharacterHouse[houseid][chID],
    
CharacterHouse[houseid][chOwnerName], 
    
CharacterHouse[houseid][chExteriorX], 
    
CharacterHouse[houseid][chExteriorY], 
    
CharacterHouse[houseid][chExteriorZ], 
    
CharacterHouse[houseid][chExteriorA]);
    
mysql_query(MHandlequery);
    
printf(query);
    return 
1;
}
MoveHouse(houseidFloat:hPosXFloat:hPosYFloat:hPosZFloat:entranceFAhVW){
    new 
query[256];
    
DestroyPickup(CharacterHouse[houseid][chPickup]);
    
CharacterHouse[houseid][chPickup] = CreatePickup(127323hPosXhPosYhPosZ-0.3hVW);
    
CharacterHouse[houseid][chID] = houseid;
    
CharacterHouse[houseid][chExteriorX] = hPosX;
    
CharacterHouse[houseid][chExteriorY] = hPosY;
    
CharacterHouse[houseid][chExteriorZ] = hPosZ;
    
CharacterHouse[houseid][chExteriorA] = entranceFA;
    
CharacterHouse[houseid][chExteriorVW] = hVW;
    
mysql_format(MHandlequerysizeof(query), "UPDATE `houses` SET `ExteriorX` = %0.4f, `ExteriorY` = %0.4f, `ExteriorZ` = %0.4f, `ExteriorAngle` = %0.4f, `ExteriorVW` = %d WHERE `ID` = %d LIMIT 1",
    
CharacterHouse[houseid][chExteriorX],
    
CharacterHouse[houseid][chExteriorY],
    
CharacterHouse[houseid][chExteriorZ],
    
CharacterHouse[houseid][chExteriorA],
    
CharacterHouse[houseid][chExteriorVW],
    
CharacterHouse[houseid][chID]);
    
mysql_query(MHandlequery);
    
printf(query);
    return 
1;

Reply
#2

Why do you have DestroyPickup(CharacterHouse[houseid][chPickup]); In CreateHouse?
Reply
#3

Quote:
Originally Posted by jasperschellekens
Посмотреть сообщение
Why do you have DestroyPickup(CharacterHouse[houseid][chPickup]); In CreateHouse?
Because it may have the same pickup which is already created, so I destroy it just in case.
Reply
#4

I think thats the reason why it destroys it.
Try to remove it and test if it works.
Reply
#5

Okay. But I just wonder why the houseid input is different everytime I type, but it destroy another pickup.
Reply
#6

I typed /hedit move 2 [amount: 1] and now, here it is. It doesn't destroy pickup of the same house id.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)