void cUOTxSendSkills::fromChar( P_CHAR pChar ) { if( !pChar ) return; for( Q_UINT8 i = 0; i < ALLSKILLS; ++i ) addSkill( i, pChar->skill( i ), pChar->baseSkill( i ), cUOTxSendSkills::Up ); }
void cDragItems::dropOnTrainer( P_CLIENT client, P_ITEM pItem, P_CHAR pTrainer ) { P_CHAR pChar = client->player(); if( pItem->id() != 0xEED ) { pTrainer->talk( "You need to give me gold if you want me to train you!" ); bounceItem( client, pItem ); return; } pTrainer->talk( "I thank thee for thy payment. That should give thee a good start on thy way. Farewell!" ); Q_UINT8 skill = pTrainer->trainingplayerin(); Q_INT32 skillSum = pChar->getSkillSum(); Q_INT32 skillDelta = pTrainer->getTeachingDelta( pChar, skill, skillSum ); goldsfx( client->socket(), pItem->amount() ); if( pItem->amount() > skillDelta ) { pItem->ReduceAmount( skillDelta ); bounceItem( client, pItem ); } else { skillDelta = pItem->amount(); Items->DeleItem( pItem ); } pChar->setBaseSkill( skill, pChar->baseSkill( skill ) + skillDelta ); Skills->updateSkillLevel( pChar, skill ); updateskill( client->socket(), skill ); // we will not reset the trainer id here because he may want to give him more money }