parger
Умник
Добрый вечер, у меня возникла проблема, в моде DiamondRP не сохраняются скиллы, как исправить?
PHP:
pSkill1,
pSkill2,
pSkill3,
pSkill4,
pSkill5,
pSkill6,
pShowSkillpl,
pShowSkillact,
pGunSkill[6],
pTemp[playerid][pShowSkillact] = -1;
pTemp[playerid][pShowSkillpl] = -1;
pTemp[playerid][pGunSkill][0] = pData[playerid][pSkill1];
pTemp[playerid][pGunSkill][1] = pData[playerid][pSkill2];
pTemp[playerid][pGunSkill][2] = pData[playerid][pSkill3];
pTemp[playerid][pGunSkill][3] = pData[playerid][pSkill4];
pTemp[playerid][pGunSkill][4] = pData[playerid][pSkill5];
pTemp[playerid][pGunSkill][5] = pData[playerid][pSkill6];
new gunids[56],ammos[56],cnt,pgun[128];
for (new i;i<13;i++)
{
new weapid,ammo;
GetPlayerWeaponData(playerid,i,weapid,ammo);
if(weapid && ammo && gGuns[playerid][i] == weapid && gAmmos[playerid][i] <= ammo)
{
if(!cnt)
{
format(gunids,sizeof(gunids),"%d",gGuns[playerid][i]);
format(ammos,sizeof(ammos),"%d",gAmmos[playerid][i]);
}
else
{
format(gunids,sizeof(gunids),"%s|%d",gunids,gGuns[playerid][i]);
format(ammos,sizeof(ammos),"%s|%d",ammos,gAmmos[playerid][i]);
}
cnt++;
if(cnt >= 6) break;
}
}
if(!pTemp[playerid][pLogined] || !pTemp[playerid][pJoined]) return 1;
if(strlen(gunids) && strlen(ammos)) format(pgun,sizeof(pgun),"%s:%s",gunids,ammos);
new query[532];
pData[playerid][pSkill1] = pTemp[playerid][pGunSkill][0];
pData[playerid][pSkill2] = pTemp[playerid][pGunSkill][1];
pData[playerid][pSkill3] = pTemp[playerid][pGunSkill][2];
pData[playerid][pSkill4] = pTemp[playerid][pGunSkill][3];
pData[playerid][pSkill5] = pTemp[playerid][pGunSkill][4];
pData[playerid][pSkill6] = pTemp[playerid][pGunSkill][5];
format(query,sizeof(query),"UPDATE `accounts` SET `skill1`='%s', `skill2`='%s', `skill3`='%s', `skill4`='%s', `skill5`='%s', `skill6`='%s',`health` = '%.2f',`money` = %d,`jail`='%d',`gun`='%s',`otigral`='%d',`status`='0' WHERE `nickname`='%s'"
,pData[playerid][pSkill1],pData[playerid][pSkill2],pData[playerid][pSkill3],pData[playerid][pSkill4],pData[playerid][pSkill5],pData[playerid][pSkill6]
,pData[playerid][pHealth],pData[playerid][pMoney],pData[playerid][pJail],pgun,pTemp[playerid][pGiveExp],pData[playerid][pNickname]);
sql_query(zConn, query, QUERY_THREADED);
SetPlayerDataToDefault(playerid);
return 1;
}
SetPlayerSkills(playerid);
if(!strcmp(cmd,"/skill",true) || !strcmp(cmd,"/skill",true))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp) || !isNumeric(tmp)) return SendClientMessage(playerid,CGRAY,"{"#cYELLOW"}• [Подсказка]: {"#cWHITE"}/skill [ID игрока]");
new actplayerid = strval(tmp);
if(!IsPlayerConnected(actplayerid)) return SendClientMessage(playerid,CGRAY,"Неверный ID игрока");
if(GetPlayerDistanceToPlayer(playerid,actplayerid) > 3.0 || GetPlayerVirtualWorld(playerid) != GetPlayerVirtualWorld(actplayerid)) return SendClientMessage(playerid,CGRAY,"Вы далеко друг от друга");
new mes[256];
format(mes,sizeof(mes),"Вы предложили {"#cWHITE"}%s {"#cINFO"} показать выписку из тира",pData[actplayerid][pNickname]);
SendClientMessage(playerid,CINFO,mes);
format(mes,sizeof(mes),"%s {"#cINFO"}хочет показать Вам выписку из тира. Что бы подтвердить нажмите {"#cGREEN"}Y{"#cINFO"}, иначе {"#cRED"}N",pData[playerid][pNickname]);
SendClientMessage(actplayerid,CWHITE,mes);
pTemp[actplayerid][pShowSkillpl] = playerid;
pTemp[actplayerid][pShowSkillact] = actplayerid;
}
if(pTemp[playerid][pShowSkillact] == playerid)
{
new acter = pTemp[playerid][pShowSkillpl];
new strkill[1006];
new points[6];
points[0] = 100 - pTemp[acter][pGunSkill][0];
points[1] = 100 - pTemp[acter][pGunSkill][1];
points[2] = 100 - pTemp[acter][pGunSkill][2];
points[3] = 100 - pTemp[acter][pGunSkill][3];
points[4] = 100 - pTemp[acter][pGunSkill][4];
points[5] = 100 - pTemp[acter][pGunSkill][5];
format(strkill,1000,"{FFFFFF}SDPistol:\t[%s]%d\nDeagle:\t[%s]%d \nShotGun:\t[%s]%d\nMP5\t\t[%s]%d \nAK47:\t\t[%s]%d\nM4A1:\t\t[%s]%d",
ToDevelopSkills(pTemp[acter][pGunSkill][0],points[0]),pTemp[acter][pGunSkill][0],
ToDevelopSkills(pTemp[acter][pGunSkill][1],points[1]),pTemp[acter][pGunSkill][1],
ToDevelopSkills(pTemp[acter][pGunSkill][2],points[2]),pTemp[acter][pGunSkill][2],
ToDevelopSkills(pTemp[acter][pGunSkill][3],points[3]),pTemp[acter][pGunSkill][3],
ToDevelopSkills(pTemp[acter][pGunSkill][4],points[4]),pTemp[acter][pGunSkill][4],
ToDevelopSkills(pTemp[acter][pGunSkill][5],points[5]),pTemp[acter][pGunSkill][5]);
ShowPlayerDialog(playerid,0000,DIALOG_STYLE_MSGBOX,"{FFFF00}Навыки владения оружием",strkill,"Закрыть","");
new mese[64];
format(mese,sizeof(mese),"показал выписку из тира %s'y",pData[playerid][pNickname]);
MeAction(acter,mese);
pTemp[playerid][pShowSkillact] = -1;
}
pData[playerid][pSkill1] = sql_get_field_assoc_int_ex(pldata, 0, "skill1");
pData[playerid][pSkill2] = sql_get_field_assoc_int_ex(pldata, 0, "skill2");
pData[playerid][pSkill3] = sql_get_field_assoc_int_ex(pldata, 0, "skill3");
pData[playerid][pSkill4] = sql_get_field_assoc_int_ex(pldata, 0, "skill4");
pData[playerid][pSkill5] = sql_get_field_assoc_int_ex(pldata, 0, "skill5");
pData[playerid][pSkill6] = sql_get_field_assoc_int_ex(pldata, 0, "skill6");
stock WeaponSkill(playerid)
{
SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL_SILENCED, pTemp[playerid][pGunSkill][0]);
SetPlayerSkillLevel(playerid, WEAPONSKILL_DESERT_EAGLE, pTemp[playerid][pGunSkill][1]);
SetPlayerSkillLevel(playerid, WEAPONSKILL_SHOTGUN, pTemp[playerid][pGunSkill][2]);
SetPlayerSkillLevel(playerid, WEAPONSKILL_MP5, pTemp[playerid][pGunSkill][3]);
SetPlayerSkillLevel(playerid, WEAPONSKILL_AK47, pTemp[playerid][pGunSkill][4]);
SetPlayerSkillLevel(playerid, WEAPONSKILL_M4, pTemp[playerid][pGunSkill][5]);
return true;
}
stock UpdateWeaponSkill(playerid)
{
SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL_SILENCED, pTemp[playerid][pGunSkill][0]*10);
SetPlayerSkillLevel(playerid, WEAPONSKILL_DESERT_EAGLE, pTemp[playerid][pGunSkill][1]*10);
SetPlayerSkillLevel(playerid, WEAPONSKILL_SHOTGUN, pTemp[playerid][pGunSkill][2]*10);
SetPlayerSkillLevel(playerid, WEAPONSKILL_MP5, pTemp[playerid][pGunSkill][3]*10);
SetPlayerSkillLevel(playerid, WEAPONSKILL_AK47, pTemp[playerid][pGunSkill][4]*10);
SetPlayerSkillLevel(playerid, WEAPONSKILL_M4, pTemp[playerid][pGunSkill][5]*10);
return true;
}
stock SetPlayerSkills(playerid)
{
SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL_SILENCED, pTemp[playerid][pGunSkill][0]*10);
SetPlayerSkillLevel(playerid, WEAPONSKILL_DESERT_EAGLE, pTemp[playerid][pGunSkill][1]*10);
SetPlayerSkillLevel(playerid, WEAPONSKILL_SHOTGUN, pTemp[playerid][pGunSkill][2]*10);
SetPlayerSkillLevel(playerid, WEAPONSKILL_MP5, pTemp[playerid][pGunSkill][3]*10);
SetPlayerSkillLevel(playerid, WEAPONSKILL_AK47, pTemp[playerid][pGunSkill][4]*10);
SetPlayerSkillLevel(playerid, WEAPONSKILL_M4, pTemp[playerid][pGunSkill][5]*10);
return true;
}
Последнее редактирование:
