What's new

-Tibia 7.60 [7.6] [Fix] [Komenda] /premmy = crash? Rozwiazanie!

Status
Not open for further replies.

Thorge D

Advanced User
Joined
Jul 24, 2014
Messages
300
Reaction score
29
1. Autor: noobwar
2. Link do oryginalnego tematu:
3. Opis: Poprawka na kod dodaj?cy czas konta premium, czasami zdarzaj? si? pomy?ki co w podstawowym kodzie grozi crashem.

4. Kod:

Stary kod zamieniamy na ten:
[CPP]bool Commands::premmy(Creature* c, const std::string &cmd, const std::string &param)
{
int a;
Player* player = dynamic_cast<Player*>(c);
std::string tickTack = param.c_str();
std::string pacct;

for(a=0; a<param.length(); ++a){
if(!isdigit(param[a])){
pacct = param;
pacct.erase(a,1-param.length());
tickTack.erase(0,1+a);
break;
}
else
pacct = param.c_str();
}
unsigned long newPacc = atoi(pacct.c_str());
if(newPacc <= 0 || newPacc >= 500){
player->sendTextMessage(MSG_RED_TEXT,"Max to 500h.");
return false;
}
if(Player* toChange = game->getPlayerByName(tickTack)){
if(toChange->premiumTicks >= 1800000001){
player->sendTextMessage(MSG_SMALLINFO,"Postac ma okolo 500H pacc, nie mozesz jej wiecej doladowac.");
return false;
}
toChange->premiumTicks += 1000*60*60*newPacc;
return true;
}
else{
player->sendTextMessage(MSG_BLUE_TEXT,"Wpisz ilosc godzin oraz nick gracza np. /premmy 50 test .");
return false;
}
return false;
}[/CPP]

Dzia?anie: /premmy iloscgodzin nickgracza || /premmy 50 test

Powy?szy kod dzia?a jedynie u GM'?w i osobom upowa?nionym do u?ycia. Nie dzia?a u NPC!
Je?li chcesz aby kod dzia?a? tak?e u NPC po prostu zamiast powy?szego kodu wstaw ten:
[CPP]bool Commands::premmy(Creature* c, const std::string &cmd, const std::string &param)
{
int a;
Player* player = dynamic_cast<Player*>(c);
std::string tickTack = param.c_str();
std::string pacct;

for(a=0; a<param.length(); ++a){
if(!isdigit(param[a])){
pacct = param;
pacct.erase(a,1-param.length());
tickTack.erase(0,1+a);
break;
}
else
pacct = param.c_str();
}
unsigned long newPacc = atoi(pacct.c_str());
if(newPacc <= 0 || newPacc >= 500){
return false;
}
if(Player* toChange = game->getPlayerByName(tickTack)){
if(toChange->premiumTicks >= 1800000001){
return false;
}
toChange->premiumTicks += 1000*60*60*newPacc;
return true;
}
else{
return false;
}
return false;
}[/cpp]

- Wzorowany na kodzie dodajacym Exp [/addexp]
- Kod posiada ograniczenie dodania godzin premium do 500 godzin. Poniewa? je?li dodamy powy?ej 500 po prostu debuguje si? i posta? kt?r? chcemy do?adowac ma " -??? Godzin pacc".
Kod przetestowany nie powoduje ?adnych debug?w i crashy!
 

legado

Active User
Joined
May 20, 2012
Messages
106
Reaction score
1
Odp: [7.6] [Fix] [Komenda] /premmy = crash? Rozwiazanie!

a jak zrobi? zeby w kliencie pokazywa?o premium godziny lub dni? bo pisz? bo do?adowaniu premmy free account
 

Zielony Pixel

Senior User
Joined
Feb 8, 2010
Messages
544
Reaction score
39
Odp: [7.6] [Fix] [Komenda] /premmy = crash? Rozwiazanie!

przelogowa?e? konto i nadal free? bo po otrzymaniu pacca trzeba si? przelogowa? i sprawdzi? outfity ;p jak nie ma outfitow to moze co? ?le skopiowa?e?
 

legado

Active User
Joined
May 20, 2012
Messages
106
Reaction score
1
Odp: [7.6] [Fix] [Komenda] /premmy = crash? Rozwiazanie!

przelogowa?e? konto i nadal free? bo po otrzymaniu pacca trzeba si? przelogowa? i sprawdzi? outfity ;p jak nie ma outfitow to moze co? ?le skopiowa?e?

s? outfity wszystko dobrze zrobi?em ale na koncie pisz? free account
 
Last edited:

Zielony Pixel

Senior User
Joined
Feb 8, 2010
Messages
544
Reaction score
39
Odp: [7.6] [Fix] [Komenda] /premmy = crash? Rozwiazanie!

w silniku freepremmy = yes?
 
Status
Not open for further replies.
Top