alex9987 scrie: ↑04 Ian 2021, 19:04
[Reizo] scrie: ↑04 Ian 2021, 18:59
Asa, daca am inteles bn problema ta, poti sa o rezolvi rapid din python:
In primul rand modifica AddStat astfel:
def AddStat(self, stat):
global maxvalue
if int(self.editLineDict[stat].GetText()) > maxvalue:
self.editLineDict[stat].SetText("%d" % maxvalue)
points = int(self.editLineDict[stat].GetText())
net.SendChatPacket("/%s+ %s" % (str(stat), str(points)))
Acum, cand adaugi mai mult de maxvalue iti va seta maxvalue, asa nu ai probleme, daca de asta ai nevoie, ca nu prea inteleg mult din ce ai zis acl
Ok mersi am sa incerc, numa sa imi zici in ce fisier gasesc acea funcite!
Deci daca plusez statusu prin click normal nu merge mai mult de 125 de puncte puse, dar daca il pun din sistem si pun 80 si dau + de 2 ori imi pune 160 puncte deci peste limita

)
Daca nu merge cu ce ti-am dat incearca comanda asta:
ACMD(do_stat)
{
char arg1[256], arg2[256];
two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2));
int val = 0;
str_to_number(val, arg2);
if (!*arg1 || val <= 0)
return;
if (ch->IsPolymorphed())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You cannot change your state as long as you are transformed."));
return;
}
if (ch->GetPoint(POINT_STAT) <= 0)
return;
BYTE idx = 0;
if (!strcmp(arg1, "st"))
idx = POINT_ST;
else if (!strcmp(arg1, "dx"))
idx = POINT_DX;
else if (!strcmp(arg1, "ht"))
idx = POINT_HT;
else if (!strcmp(arg1, "iq"))
idx = POINT_IQ;
else
return;
if (ch->GetRealPoint(idx) >= MAX_STAT)
return;
if (val > ch->GetPoint(POINT_STAT))
val = ch->GetPoint(POINT_STAT);
if (ch->GetRealPoint(idx) + val > MAX_STAT)
val = MAX_STAT - ch->GetRealPoint(idx);
ch->SetRealPoint(idx, ch->GetRealPoint(idx) + val);
ch->SetPoint(idx, ch->GetPoint(idx) + val);
ch->ComputePoints();
ch->PointChange(idx, 0);
if (idx == POINT_IQ)
ch->PointChange(POINT_MAX_HP, 0);
else if (idx == POINT_HT)
ch->PointChange(POINT_MAX_SP, 0);
ch->PointChange(POINT_STAT, -val);
ch->ComputePoints();
}
Si: net.SendChatPacket("/stat %s %s" % (str(stat), str(points)))